A simple top-down 2D shooter game written in C++ and OpenGL 4.5.
Currently there is an effort to separate the engine source code from the game itself to improve flexibility for future possible projects.
At the current stage of full refactor, the game does not offer any gameplay (not like it ever did). But there are plans to create completely destructible tile-based maps and dynamic environment.
The project supports building with CMake as it allows cross-platform development and is relatively easy to use:
# clone the repository
cd monoshot
git submodule update --init
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -G "<GENERATOR>" ..
Replace <GENERATOR>
with your favourite build generator. Recommended choices are listed below:
Ninja
,Unix Makefiles
,MinGW Makefiles
.
On Windows, there is a possibility that it will even work with Visual Studio generated .sln
file,
however this option has never been properly tested or supported.
After the configuration is complete, build the code with:
cmake --build .
Monoshot requires C++20 capable compiler such as GCC 13+ or Clang 14+ (preferably supporting
<format>
library).
All libraries are fetched either by git submodules or by CMake and their use is compliant with their respective licences:
- EnTT - Entity Component System (
MIT
) - ImGui - Graphical User Interface (
MIT
) - glad - OpenGL symbol loader/generator (
MIT
+Public Domain
,WTFPL
orCC0
) - glfw - Window and OpenGL context creation API (
zlib
/libpng
) - glm - OpenGL mathematics library (
Happy Bunny License
orMIT
) - inifile-cpp -Config files handling (
MIT
) - spdlog - Logging library (
MIT
) - stbi - Image loading/decoding from file/memory (
Public Domain
orMIT
) - tinyfiledialogs - Native window dialogs and
popups (
zlib
)
This project is licensed under MIT, a free and open-source license. For more information, please see the license file.
NOTE:
thesis
branch is licensed under its own EULA, which is not applicable here. At the same time, MIT license does not pertain tothesis
branch.