Kenneth Cornett (Czara) Project
Czengine is a Vulkan SDL project. Originally, Czengine started as a passion project to build the same game engine in C#, C++, and Rust. I decided to focus mainly on C++, because, I am building it with the intent to design my own game. Czengine is currently written using the C++23 standard from GNU. I am developing it on Windows using MinGW. I am using Premake5 to build the makefiles used to build the executable of the project. Forewarning though, I am illiterate with Lua, so my Premake5 file is relatively rough to look at, currently.
The project is using Dear ImGui for implementing an interface, and I'm utilizing the Viewport + Docking branch of Dear ImGui. I am using TOML++ and PugiXML to process documents. I wrote my own logging library which outputs to log files. Log files generated are either time-based or size-based.
Library | Version | Source Code Built in Project |
---|---|---|
C++ | 23 | - |
Python | 3.12 | - |
Premake | 5 | - |
Vulkan | 1.3.283.0 | No |
SDL2 | 2.30.0 | No |
SDL2_ttf | 2.22.0 | No |
Dear ImGui | 1.90.8 | Yes |
TOML++ | 3.4.0 | Yes |
PugiXML | 1.14 | Yes |
GoogleTest | 1.15.2 | Yes |
JoMock | - | Yes |
- After cloning repository locally, also execute
git submodule update --init --recursive
to recursively install submodules.- I plan to add this to the
setup.py
at some point, but it isn't necessary just yet.
- I plan to add this to the
- Install Premake5
- Install MinGW
- Create a symlink for MinGW's
mingw32-make.exe
to a file namedmake.exe
in the same directory. - Install Python 3.12, After Python 3.12 is installed, follow sub-steps below
- Execute
python scripts/src/setup/setup.py
and follow text prompts.- This installs dependencies used by project. (Excluding git submodules)
- Run the command
python -m pip install ./scripts
. This installs theczengine
command line tool for building and launching Czengine. - Now try
czengine --help
. It should print out the commands [czengine] can execute. - Now try
czengine build --help
. It should print out the help guide for thebuild
command.
- Execute
- Open CLI Utility (Terminal on Unix) and execute
czengine build --target CzenginePlusPlus
- This should execute
premake5 gmake2
andmake CzenginePlusPlus CXX=g++ config=debug_win64
- This should execute
- Ensure Vulkan library can be found by Premake5's makefiles
- Review Dear ImGui Vulkan Implementation. (I should be able to pull windows out of window.) <---- Next task(s)
- Start writing unit tests for key features (In Progress)
- Integrate Linear Math library (most likely Eigen)
- Work on Render Pipeline
- Replace usage of
build.sh
with another Python script/flag (Finished) - Add installs for Python and Premake5
- Combine Python
setup.py
as another command inczengine.py
.