Welcome to the Mosaic Game Engine — a modern, lightweight, cross-platform game engine built with ❤️ and C++20.
This is my second journey into building a game engine from scratch, and the goal is simple: learn deeply, build something beautiful, and invite others to create with me.
- 🔧 Modern C++20 codebase
- 🌍 Cross-platform support: Windows, Linux, and Web
- 🚀 High-performance rendering: Vulkan for native platforms, WebGPU for the web
- 🧱 Modular architecture:
- Engine runtime (DLL)
- Editor
- Testbed
- Unit and integration tests
We use:
- CMake for build configuration
- VCPKG for cross-platform package management
- External dependencies not available on VCPKG are added as Git submodules under the
vendor/
directory
Robust testing using Google Test (GTest):
- ✅ Unit tests for math, serialization, and core utilities
- 🔗 Integration tests for systems like the render pipeline and asset importers
To maintain consistency and code quality, we follow our own style conventions based on the Google C++ Style Guide.
Please read this before contributing! Clean code helps everyone 😄
You're more than welcome to contribute — in fact, you're strongly encouraged to! This project is just getting started and there's a lot of room to grow. If you're passionate about:
- Game engine architecture
- Modern rendering APIs
- Cross-platform development
- Tooling, UI/UX in game editors
- ...or just want to learn C++ with a real-world project
Then jump in! 🙌
All skill levels are welcome. Open issues, suggest features, fix bugs, or just ask questions — let’s build this together.
Instructions coming soon — stay tuned!
Mosaic comes under the permissive MIT License to encourage contributions. See the LICENSE.md file for more information.
Thanks for stopping by! 🌟
— Di Cioccio William Karol