Vulkan4D DEV STATUS :
in active development (Not ready for public use just yet)
Here's the Discord Server for Vulkan4D related discussions : https://discord.gg/5aY3ZBW
What is Vulkan4D ?
Vulkan4D is a game engine meant for large scale open worlds with high fidelity graphics.
- Pure C++17 game engine (C++20 coming soon)
- 100% Ray-traced using Vulkan's VK_KHR_ray_tracing extension
- Build games for 64-bit Windows and Linux platforms with dedicated ray-tracing-capable GPU
- Developed from the ground up for optimal use of the Vulkan API and Ray-Tracing
- Specialized for completely dynamic or procedural worlds with user-created content
- Fully Modular and supports Modding out of the box
Games made using V4D are fully ray-traced and will only support Ray-tracing enabled GPUs (RTX and RDNA2)
Is Vulkan4D a good choice for your project ?
You may use V4D if one of these apply to your project :
- You are making a realistic space game with full size planets
- You are making a large scale open-world MMO
- You want high fidelity graphics with full Ray-Tracing support
- You need double precision physics
- You want your game to support Modding out of the box
- Your game world is very dynamic and cannot afford having baked lighting/assets
- You don't want any loading screen in your game
You should NOT use V4D if one of these apply to your project :
- You are making a game for Consoles or Mobile devices
- You want MAC/OSX or 32-bit support
- You are making a game that can run on integrated graphics
- You are a level designer who just wants to drag and drop assets in a scene
- You are making a 2D game
Requirements for development
- Vulkan 1.2 capable dedicated GPU and driver
- Linux 64-bit system with
gcc9.3+ (Manjaro works great)
Support for Windows 10 & MSVC coming soon
Support for MAC/OSX or 32-bit OS is not planned
Requirements for playing / testing
- 64-bit Windows 10 or Linux
- Vulkan capable dedicated GPU with at least 4 gb or VRAM
- Recent GPU drivers with Vulkan 1.2+ support
- CPU with at least 4 cores
- At least 8 gb or system RAM
We are NOT planning to natively support MAC/OSX, Mobile, Consoles or 32-bit OS
However, we plan to support cloud gaming / streaming in the future for other platforms
Most (if not all) current game engines are optimized for fixed-map games with limited scale where level designers place assets in a scene using an editor, and very often rely on pre-baked graphics.
This means that other game engines are not meant for Large-scale Procedural Dynamic Open-World games with lots of user-created contents.
But that is where Vulkan4D shines !
Vulkan4D is also designed from the ground up for realistic large scale space games/simulators with Full Ray-Tracing pipelines.
- Vulkan Renderer with full Ray Tracing support
- Double precision physics system
- Flexible Modular system
- Advanced data streaming utilities
- Advanced Multiplayer integration utilities
- In-game coding framework
Our five commandments
As a developer for this project or for a resulting game, you will respect our 5 Commandments.
- Thou shall obey physics We will not sacrifice nor compromise realism for arcade-style gameplays.
- Thou shall not see "Loading" Immersive, seamless transitions, no loading screens, EVER.
- Thou shall not see a skybox Actual clouds, stars, planets, etc. are rendered.
- Thou shall be within thy self Focused on fully immersive, first person view.
- Thou shall not hit invisible walls What you can see, you can touch !
Building Vulkan4D library or project
(Only supported on Linux 64-bit at the moment)
openssl>= 1.1.0 (and
libssl-devpackage on debian systems)
Download V4D and First Build
# from project parent directory git clone --recursive firstname.lastname@example.org:Vulkan4D/v4d_project.git cd v4d_project tools/cleanbuild.sh
Unit tests will run after the build
You may want to make it your own git repository
# from project directory tools/initNewGitRepository.sh git remote add origin <Your Repository Url> git push -u -f origin master
A Vulkan4D Project consists of the following directory structure :
.vscodeoptional project settings for the Visual-Studio-Code IDE
build/created automatically to contain generated/build files
crosscompileyour optional cross-compilation scripts
res/optional directory to contain project resources
src/contains ALL source files
tmp/optional temporary directory
tools/optional submodule containing useful V4D tools - DO NOT EDIT
workspace/optional directory containing your workspace and tools
.editorconfigoptional project settings for general IDEs / GitHub
.gitmodulesgit configuration files
CMakeLists.txtProject/V4D Builder Template
README.mdthis documentation file
src directory will contain all source files, libraries, compiled resources and modules used for your project. It consists of the following structure in addition to your own libraries and source files :
openssl/V4D depends on the OpenSSL library >= 1.1.0
v4d/contains everything related to the V4D Engine, including your own modules
./core/submodule for the Core of V4D - DO NOT EDIT ANYTHING IN CORE
./modules/You may remove unneeded modules or add your own mods here
./xvk/Vulkan dynamic loader - V4D depends on it - DO NOT EDIT XVK
./v4dconfig.hhYou may edit macros here for compiling a custom v4d.dll
config.hhYou may edit/add macros here for your own project configuration
*.cppSource code for your app/game
settings.hhDefines the structure of a settings.ini configuration file
tests.cxxYour unit tests
Files/Directories that you will typically write your code in are in bold.
V4D Modules (modding system)
Vulkan4D is modular and built from the ground up to fully support Modding.
A module may contain resources and shared libraries that are loaded at runtime into the application.
See modding documentation in the sample module repository
Not yet determined.
V4D is most likely going to be Open-source, with limited commercial use. Developers/companies that contribute to its development may get a free/reduced price license for commercial use depending on the scale and usability of their contribution.