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.exe
to launch the editor. - Run
Game.exe
to 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 currenlty transitionning to Sharpmake to generate its solution and projects for all platforms.
There is currently two options available:
For now you can still use the old vgframework.sln
solution for Visual Studio 2022.
It should work until it's too much work to maintain, but you will miss some compilation targets like Win64 ClangCL.
You can generate the solutions using Sharpmake\generates_projects_XXX.bat
where XXX
is your development environement.
e.g. Sharpmake\generates_projects_XXX.bat
will generate vgframework_vs2022.sln
in the root folder.
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 |
Use the 'Platform' combo to select target architecture and graphics API:
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.22621.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/GJ data/Textures/GJ |
JOYxt |
data/Meshes/VGF_Bo data/Textures/VGF_Boy |
JOYxt |
data/Meshes/GrosCovid data/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 |
---|---|
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 |