Redsap Rush is a 3D Space shooter game in developpement. It is being developped for Windows as a Win32 app in C++ and HLSL using the DirectX12 graphic library and Microsoft Game/Direct Input.
Redsap Rush contains two main branches.
redsap_rush__the_trench build the normal game scene using the #define START_SCENE EStartScene::TheTrench in the file .\App\CMake_Source\Public\Gen_App\Config.h.in.
physic_demo_01 build the physic demo scene using the #define START_SCENE EStartScene::PhysicDemo1 in the file .\App\CMake_Source\Public\Gen_App\Config.h.in.
main simply correspond to the project code up to date, and may point to either scenes, but currently point to redsap_rush__the_trench.
To build Redsap Rush from these sources, you need to :
- Git clone the complete solution.
- Generate the visual studio solution.
- Build the project.
- Copy the Assets folder in the build directory.
In addition to DirectX12 and Game/Direct input, Redsap rush depend on Assimp for mesh loading and Tracy for profiling.
Both are included into the visual studio project and built with Redsap Rush. To ensure your project is valid. please git clone recursively, as theses two projects are linked via git submodule.
Generating the visual studio solution can be by either :
Simply run RegenerateAll.bat at the project root. this will automatically run CleanBuild.bat and then Generate_CMake.bat.
Write these lines in your CLI with the current context being the project's root directory.
mkdir "Build"
cd Build
cmake ..
Run the newly created ./Build/RedSap_Rush.sln and build the App project in Debug or Release for the x64 platform.
Generating the visual studio solution can be by either :
Simply run CopyAssets.bat at the project root. This will copy the ./App/Assets folder to both the ./Build/App/Debug and and ./Build/App/Release folders.
Copy the ./App/Assets folder to the newly generated ./Build/App/Debug or ./Build/App/Release folder, alonside the generated App.exe application (depending on if you build debug or release).
This should result in a newly present Assets folder in the same directory as the App.exe application.
Redsap Rush can behave in various manners depending on a few CMake build options, these can be changed in the file .\App\CMake_Source\Public\Gen_App\Config.h.in. Any change to this file will trigger a CMake visual studio solution regeneration during the next build.
Redsap Rush currently has two scenes, but only run one or the other, this is because there is currently no menu to change scenes. The starting scene can be the to the Redsap Rush game scene with this line :
#define START_SCENE EStartScene::TheTrench
Alternatively you can make the project run the physic demo scene with the line :
#define START_SCENE EStartScene::PhysicDemo1
Redsap Rush currently has two control schemes, but only use one or the other, this is because there is currently no menu to change controls.
You can set the input method to keyboard and mouse using the line :
#define USE_START_INPUT EMainInputDevice::MouseKeyboard
Alternatively you can set the input method to Xbox controller with the line :
#define USE_START_INPUT EMainInputDevice::GamePad
The Redsap Rush app will use assets from either the project folder via using hard link generated by CMake, or locally, where the App.exe is located on the disk.
You can set App.exe to use project Assets folder with the line :
#define USE_${APP_NAME}_PROJECT_ASSETS true
Alternatively you can set App.exe to use the local Assets folder with the line :
#define USE_${APP_NAME}_PROJECT_ASSETS false
The Redsap Rush app can draw the physic colliders in the 3D scene depending on their physic type, this option needs to be enabled globally, and then each physic type can be debug drawn or ignored.
To enable physic debugging, set DEBUG_PHYSIC to 1 (was 0) :
#define DEBUG_PHYSIC 1
To enable or disable a physic type, set to 1, or 0 to disable said type. For exemple this will draw the collision primitives of WORLD_DYNAMIC objects in the scene :
#define DEBUG_PHYSIC_WORLD_DYNAMIC 1
