Yet another work-in-progress game and graphic engine project.
Build status
Getting started
Licence
Extern libs
Assets
Misc
| Configuration | Debug | Development | Release | Final |
|---|---|---|---|---|
| ARM64EC MSVC DX12 | ||||
| ARM64EC MSVC Vulkan | ||||
| Win64 MSVC DX12 | ||||
| Win64 MSVC Vulkan | ||||
| Win64 ClangCL DX12 | ||||
| Win64 ClangCL Vulkan |
You have two options depending on whether you want to build from source or use the provided executables:
- Run
editor.exeto launch the editor. - Run
game.exeto start the game.
By default, VGFramework uses the precompiled binaries: editor.exe, game.exe, and the DLLs located in the bin/ folder.
When you build locally, executable files will be created in your build/ folder.
The program will use these locally built files if they are present; otherwise, it will fallback to the precompiled binaries.
- Sync the depot.
- Install the required SDKs and configure the environment variables.
- Generate solution and open it in your favorite development environment.
- Select solution Configuration and Platform
- Select the solution folder for Working Directory
- Build & Run
Debug, Development and Release versions will start with the editor:
Press F5 to enter game mode and F11 to maximize game view and press ESC to go back Editor mode.
Final versions are compiled without the editor, they will start directly in game mode and maximized.
First run might take a few seconds because files are cooking.
VGFramework is using Sharpmake to generate its solution and projects files for all supported platforms.\
You can generate the solutions using sharpmake\generates_projects_XXX.bat where XXX is your development environment.
e.g. sharpmake\generates_projects_Windows.bat will generate vgframework_vs2022.sln for Windows in the root folder.
| Config | Platform | Format | Files |
|---|---|---|---|
| generate_projects_Windows.bat | Windows | Visual Studio 2022 | *.sln; *.vxcproj; *.vcxproj.filters |
| generate_projects_macOS.bat | macOS | XCode | *.xcodeproj |
| generate_projects_Linux.bat | Linux | Make | Makefile |
Recommended IDE is VS Studio 2022 Community and project files currently provided are compatible with this version.
However, the engine is currently being ported to other platforms than Windows so ultimately a project generator solution will be used.
To compile the solution you will need the following components if they are not already installed:
- MSVC v143 - VS 2022 C++ x64/x86 build tools (latest)
- C++ ATL for latest v143 build tools (x86 & x64)
You will also need if you want to build the ARM64EC versions:
- MSVC v143 - VS 2022 C++ ARM64/ARM64EC build tools (latest)
- C++ ATL for latest v143 build tools (ARM64/ARM64EC)
Use the 'Configuration' combo to select build configuration:
| Config | #define | Runtime | Optimization | Inlining | Edit & Continue | Assert |
|---|---|---|---|---|---|---|
| Debug | VG_DEBUG |
/MDd | /Od | /Ob0 | Yes | Yes |
| Development | VG_DEVELOPMENT |
/MD | /Od | /Ob0 | Yes | Yes |
| Release | VG_RELEASE |
/MD | /O2 | /Ob2 | No | Yes |
| Final | VG_FINAL |
/MD | /O2 | /Ob2 | No | No |
The recommended default configuration is Development as it's a good compromise between debugging information, performance and it allow 'Edit & Continue'.
Use the 'Platform' combo to select target architecture and graphics API:
The recommended default solution under Windows is Win64 MSVC DX12 as it's the primary OS, compiler, and API used by the author.
Set your working directory to $(SolutionDir) so that the program can find data and code.
✨ You can keep shift pressed while moving objects to duplicate them.
The SDKs are not included with the sources. You need to install them.
| Name |
Version |
|---|---|
| Win10 SDK | 10.0.26100.0 |
| Vulkan SDK ✨ | 1.3.290.0 |
✨ Only required to build Vulkan version. $(VULKAN_SDK) should point the Vulkan SDK installation dir (e.g., C:\SDK\Vulkan\1.3.290.0).
The external libraries are included with the sources for convenience. Follow the link for details about the licence used.
| Name |
Version |
|---|---|
| D3D12 Memory Allocator | |
| D3D12 HDR Sample | |
| Dear ImGui | 1.91.8 WIP |
| DirectX Shader Compiler | August 2023 |
| Dirent | 1.23.2 |
| fmt | 10.1.1 |
| FXAA | 3.11 |
| hlslpp | 3.5.3 4dd067b |
| IconFont CppHeaders | |
| ImGuiFileDialog | 0.6.7 |
| ImGuizmo | 1.83 |
| JoltPhysics | 5.0.0 |
| meta_enum_lite | 2.0 (Custom) |
| optick ✨ | 1.3.1 |
| px_sched | |
| Sharpmake | 0.75.0 (Custom) |
| SoLoud | August 2024 |
| stb | 2.30 |
| tinyXML2 | 10.0.0 |
| UFBX | 0.14.3 |
| Vulkan Memory Allocator | 3.0.1 |
| WinPixEventRuntime | 1.0.231030001 |
✨ Optick viewer can be tricky to build but you can download the binaries for optick 1.3.1 from https://github.com/bombomby/optick/releases/tag/1.3.1.0 or build them more easily from https://github.com/vimontgames/optick.
The code in src folder is licensed under the MIT License. Please refer to LICENCE.md for more details.
External libraries in the extern folder use permissive licenses. Please refer to the Extern libs section for details about the licenses used.
Most assets are using permissive licenses, while some are restricted to use only within the context of VGFramework development. Please refer to the Assets section for more details about the licenses used.
The assets in the following folders are licensed under the Creative Commons Non-Commercial (CC BY-NC 4.0) License, with the additional restriction that they may only be used within the context of VGFramework development.
Please refer to the ASSETS_LICENSE.md for more details.
| Asset folders |
Author |
|---|---|
data/Meshes/GJdata/Textures/GJ |
JOYxt |
data/Meshes/VGF_Bodata/Textures/VGF_Boy |
JOYxt |
data/Meshes/GrosCoviddata/Textures/GrosCovid |
JOYxt |
The following assets are provided under permissive licenses. Please follow the provided links for details about those licenses:
| Name |
Version |
|---|---|
| Font-Awesome | 6.x |
| Rowdies | |
| RubikMonoOne | |
| UbuntuMono | 1.0 |
| Name |
Author |
|---|---|
| 3D Football | prabath-weerapana |
| Baseball Bat | sepandjahrominejad |
| FootBall american | orsbone |
| Katana samurai sword | kizaru |
| Luigi | Anthony Yanez |
| Traffic Cone | hinndia |
| Soccergoal | NorbertVarga |
| Name |
Author |
|---|---|
| Concrete020 | ambientcg.com |
| Name |
Author |
|---|---|
| Free HDR Map 779 | hdri-skies.com |
| Name |
Author |
|---|---|
| FX - Swoosh - normal | bolkmar |
| Large sword swing | Luis0413 |
| Tally Dub | Brotheration Records |
| Chainsaw | pblzr |
| Retro Bonus Pickup | suntemple |
These tools are not mandatory but can be useful for development.
| Name |
Info |
|---|---|
| Radeon Developer Panel | GPU debugging & profiling |
| RenderDoc | GPU debugging |





