vkEngine, my long term "game engine" project. Might end up as an actual game at some point, no idea when.
This started long long ago in 2004, with OpenGL and ATI GPU demos... My only game that has actually used this "engine" was my Tetris game/graphics demo.
I also have the OpenGL version, this is a far more evolved codebase than that though, the OpenGL version I should archive the repo as I haven't touched it in quite some time.
I love doing everything my self with as little external library dependencies as possible.
This is an on-going learning experience for me and for anyone else that can learn from my code, I try to keep it clean and readable.
"Building square wheels to better appreciate the round ones."
- Improve audio (needs pops/clicks fixed)
- Improve physics (more collision object support?)
- Streamline post processing effects (it's kind of tacked on right now)
- Improve networking (this kind of works, but physics system is a problem as is security, server here)
- 3D model animation?
- ???
- Profit?
External dependencies for building this (versions as of this writing, newer should work):
libvorbis
1.3.7libogg
1.3.5OpenXR
1.2Vulkan
1.3.231.1
Note: recursive clone to fetch submodules
W/A/S/D
Typical strafe movementQ/E
RollUp/Down arrows
PitchLeft/Right arrows
YawSpace
Fire projectileControl
Fire "laser"Z
"Explode" asteroid field (used for testing physics)O
Generate new random play areaP
Pauses all physics except for camera
Mouse interacts with UI, but also controls ship pitch/yaw.
Should be pretty straightforward cmake:
cmake -S. -B out -GNinja
or use a preset:
cmake -S. --preset "Linux x64 Release"
cmake -S. --preset "Windows x64 Release"
cmake -S. --preset "Android Release"
Note: Android building has only been tested on Windows. It should work on Linux, I just don't have the Android SDK installed there.