Skip to content

A multithreaded, high performance, fully functional game engine written in C++. ⚡️

License

Notifications You must be signed in to change notification settings

sparky-game/volt

Volt Logo
Volt

Write games, don’t play them

itch.io
Buy Me A Coffee

License C++ Standard Size Release CLAs signed Blazing Speed
OpenSSF Best Practices

CI

(…)

Table of Contents

Project management

GitHub is the system we use to track feature requests, bug reports and other requested work. Different projects are created to separate concerns and responsabilities:

  • Roadmap
  • User feedback (Coming soon!)

Documentation

The documentation of Volt includes:

Usage

Volt is first and foremost a statically linked library that acts as the engine itself.

(…)

It also provides a builtin application that acts as the official editor, where you can customize every aspect of your project, debug it, build it and ship it to the end user.

(…)

Build from source

In order to build Volt from source, preparation is needed so as to the environment is properly setup and ready.

Get the code

First, download the codebase of the project. It’s important to do so via the OFFICIAL Git repository hosted on GitHub, and not through any tarball or compressed archive to ensure no tampering is done with the code. Appart from that, any ref can be checked out, being master (the trunk of all dev progress), a tagged commit (e.g. v1.0), an actively maintained version branch (e.g. v1.0.y/stable) or a LTS version branch (e.g. v1.0.y/lts) the preferred ones.

To clone the official repo as well as all its submodules, issue the following command:

git clone --recurse-submodules https://github.com/sparky-game/volt

Alternatively, to update an existing clone you can issue the following commands:

git pull
git submodule update --init --recursive

Configuration

This project uses CMake as its build system, so make sure to have it installed and available to use before proceeding.

cmake -B build [-D...]

If wanted to debug Volt as part of the development process, we can use the CMAKE_BUILD_TYPE variable to target the Debug build type (its set to Release by default). Note that this procedure only applies to single-configuration generators; if that isn’t your case (i.e. Ninja Multi-Config, Visual Studio, Xcode, etc.), you can already change between build types without worrying about it.

Both C and C++ compilers can be manually specified by using the CMAKE_C_COMPILER and CMAKE_CXX_COMPILER variables. By default, the project gives priority to Clang ahead of other compilers.

If cross-compiling is our thing, we can use the CMAKE_TOOLCHAIN_FILE variable to specify the target we want to build Volt for (e.g. cmake/cross/mingw-x86_64.cmake to cross-compile to MinGW x86_64 target, i.e. Win64).

Compilation and linkage

This step is orchestrated by the native build tool. After the project has been configured and build files have been generated, the only thing left is to compile and link all defined targets of Volt.

cmake --build build

(…)

Licensing

Copyright (C) 2024 Wasym A. Alonso. All rights reserved.

Volt is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License Version 3 (GNU AGPL-3.0) as published by the Free Software Foundation (FSF) on November 19th 2007.
Volt is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License Version 3 for more details.
For more information, see https://www.gnu.org/licenses/agpl-3.0.

As mentioned above, Volt is licensed under the GNU AGPL-3.0, which means that any games or software created using Volt are also subject to the same license. This implies that if you develop a game or application using Volt, it must also be released as free software under the GNU AGPL-3.0. This ensures that the freedoms to use, study, modify and share the software are preserved for everyone.

If you prefer to release your game or application under a different, more commercially friendly license, there is an option available. You can obtain a commercial license for Volt that does not require you to release your games under the GNU AGPL-3.0. This license is available for purchase, allowing you more flexibility in how you distribute and monetize your work.

For more details and to acquire the commercial license, please visit its product page in itch.io.