2.5D top-down space shooter just destroy as much asteroids as you can before getting your ship wreck.
A - to move left
D - to move right
F1(on release) - standard shader
F2(on release) - grey scale
F3(on release) - color inversion
Basic gameplay parameters can be change form config.lua
return {
canonShootingFrequency = 2, -- shoots per second
canonBulletsVelocity = 20, -- meters per second
spaceShipForwardVelocity = 10, -- meters per second
asteroidsAngularVelocityRange = {-math.pi, math.pi}, -- radians per second
explosionDuration = 0.1, -- seconds
manoeuveringEnginesThrust = 100000, -- newtons
spaceShipMass = 5000, -- kilograms
initialAsteroidAppearanceFrequency = 1, -- number per seconds
asteroidAppearanceFrequencyIncrease = 0.01 -- number per seconds
}
All third-party libraries are located in external folder:
- entt - best header-only entity-component-system (ECS).
- sol2 - best lua binding for C++
- spdlog - awesome logging library
- stb - used for textures loading
- tinyobjloader - used for obj loading
- glm - mathematics library for graphics
- SDL2
- SDL2 mixer
- glew
to build project you need to dowload submodules from external folder after then you can generate project using cmake:
git clone --recursive https://github.com/kwarkGorny/3DGame.git
cd 3DGame
mkdir build
cd build
cmake ..
cmake --build . --config Release
- Gui
- Spaceships
- Skybox
- Sounds
- Music
- Asteroids and bullet where created using MagicaVoxel.
ToDo