Introduction
MOS is a lightweight cross-platform game engine/library, written in modern C++.
Features
- Minimal and documented codebase.
- Integration with Blender
- 3D mesh rendering
- Spot and directional lighting
- Physically based material model
- Global illumination approximation
- Particle rendering
- Text rendering
- Post processing effects
- Collision detection
- 3D audio playback, with obstruction model
- Asset management
- IO management
Companion projects
-
MOS Skeleton: An example project to quickly get up and running.
-
MOS Blender export: Export scripts/addon for Blender 2.80, to export models, levels and other entities.
Source code
A convenient way to get and use the project, is to add it as a git submodule:
git submodule add https://github.com/morganbengtsson/mos.git
git submodule update --init --recursive
Building
The project is preferably used as a sub project with CMake as so, in your CMakeLists.txt:
add_subdirectory(externals/mos)
target_link_libraries(${PROJECT_NAME} PUBLIC mos)
Dependencies
MOS is dependent on the following projects:
- GLAD: OpenGL context creation
- GLFW: Window creation and input events
- GLM: Mathematics
- JSON for Modern C++: JSON parsing
- OpenAL soft: 3D audio
- STB: Image decoding