ColumbaEngine is a completely free and open source game engine built with modern C++ and a pure Entity Component System (ECS) architecture. Whether you're building 2D games, prototyping ideas, or learning game engine development, ColumbaEngine provides a solid foundation without any licensing fees or royalties.
- 100% Free and Open Source - No hidden costs, no royalties, no licensing fees. Ever.
- Pure ECS Architecture - Built from the ground up with data-oriented design for maximum performance
- Cross-Platform - Deploy your games to Linux, Windows, and the web (with more platforms coming)
- Transparent Development - All development happens in the open with community input
- No Vendor Lock-in - Your project is yours. Use any tools, modify the engine, distribute freely
- Modern C++17 - Clean, maintainable codebase using modern C++ best practices
- Built-in Editor - Visual scene creation without external dependencies
- Lightweight - Pay only for what you use - unused systems have zero overhead
curl -sSL https://raw.githubusercontent.com/Gallasko/ColumbaEngine/main/scripts/install/install-engine.sh | bashOr clone and run locally:
git clone https://github.com/Gallasko/ColumbaEngine.git
cd ColumbaEngine/scripts/install
./install-engine.shClick for detailed manual installation steps
- C++ compiler with C++17 support (GCC, Clang, or MSVC)
- CMake 3.18+
- Git
The installation script will handle these automatically, but for manual installation:
- SDL2 (
libsdl2-dev) - SDL2-TTF (
libsdl2-ttf-dev) - OpenGL (
libgl1-mesa-devon Linux)
Linux/macOS:
# Install dependencies (Ubuntu/Debian example)
sudo apt update
sudo apt install cmake libgl1-mesa-dev libsdl2-dev libsdl2-ttf-dev
# Clone and build
git clone --recursive https://github.com/Gallasko/ColumbaEngine.git
cd ColumbaEngine
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build . -j$(nproc)Windows (MinGW):
# Ensure MinGW-64 and CMake are installed and in PATH
git clone --recursive https://github.com/Gallasko/ColumbaEngine.git
cd ColumbaEngine
mkdir build && cd build
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release ..
cmake --build . -jWebAssembly (Emscripten):
# Install Emscripten first: https://emscripten.org/docs/getting_started/downloads.html
cd ColumbaEngine
mkdir build-web && cd build-web
emcmake cmake ..
cmake --build . -j
emrun ./ColumbaEngine.htmlFull documentation is available at: columbaengine.readthedocs.io
- Pure ECS Architecture - Data-oriented design with efficient component management
- Complete 2D Rendering - Production-ready 2D graphics pipeline
- 3D Support - Coming soon
- Built-in Scene Editor - Visual scene creation and management
- Custom Scripting (PgScript) - Flexible scripting language for game logic
- Pay-for-what-you-use - No performance overhead for unused systems
- Event System - Efficient inter-system communication
- Taskflow Integration - Parallel system execution with profiling support
- Linux (Ubuntu, Fedora, Arch)
- Windows (MinGW-64)
- WebAssembly (Emscripten)
- macOS (Community contributions welcome)
ColumbaEngine is perfect for:
- Indie developers looking for a lightweight, performant engine
- Students learning game engine architecture and ECS patterns
- Hobbyists who want full control over their game engine
- C++ developers seeking a modern, well-structured codebase
- Anyone who believes in open source and wants to contribute to a growing community
- Full Tetris Clone - Complete implementation showcasing engine capabilities
- More Examples - Available at pigeoncodeur.itch.io
The installation script supports various options:
# Install specific version
./install-engine.sh --version v1.0.0
# Custom installation directory (no sudo required)
./install-engine.sh --prefix ~/.local
# Specify number of build jobs
./install-engine.sh --jobs 4
# All options
./install-engine.sh --version main --prefix ~/.local --jobs 8After installation, verify everything works:
# Run validation script
./scripts/install/validate-installation.sh
# Or test manually
cd ~/ColumbaEngine-install/test-app
./build.sh
./ColumbaEngineTestAppEnable Taskflow profiling to analyze system scheduling:
# Linux/macOS
export TF_ENABLE_PROFILER=profile.json
./ColumbaEngine
# Windows PowerShell
$env:TF_ENABLE_PROFILER="profile.json"
.\ColumbaEngine.exeWe're actively seeking contributors to help build a thriving community around ColumbaEngine!
- Documentation - Help us improve tutorials and API documentation
- Platform Support - Test and improve cross-platform compatibility
- System Stabilization - Help stabilize and optimize existing systems
- Editor Enhancement - Contribute to the built-in scene editor
- Examples & Tutorials - Create sample projects and learning resources
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Follow our coding style guide
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
See CONTRIBUTING.md for detailed guidelines.
Stage: Early Development - Expect breaking changes (with migration guides)
This project is under active development. While the 2D pipeline is production-ready, APIs may change as we refine the engine architecture. We provide migration guides for breaking changes.
Installation script fails
- Ensure you have sudo privileges for system installation
- Try installing to user directory:
./install-engine.sh --prefix ~/.local - Check detailed installation guide
Build errors
- Verify all dependencies are installed
- Check CMake version:
cmake --version(requires 3.18+) - Review build logs in the build directory
Performance issues
- Build in Release mode:
cmake -DCMAKE_BUILD_TYPE=Release .. - Enable profiling to identify bottlenecks (see Profiling section)
For more help, please:
- Check the documentation
- Open an issue
- Join our community discussions
This project is licensed under the MIT License - see the LICENSE file for details.
- SDL2 team for the excellent multimedia library
- Taskflow team for the parallel execution framework
- All contributors and community members
Ready to build something amazing? Get started with ColumbaEngine today!
# Start your journey
curl -sSL https://raw.githubusercontent.com/Gallasko/ColumbaEngine/main/scripts/install/install-engine.sh | bashStar this repository to support the project!