A Modular and Cross-Platform Game Engine in C++
VectorEngine is a fully modular, cross-platform game engine built from scratch in C++. Designed for flexibility and efficiency, the engine provides optimized memory management, custom logging, event handling, input mapping, a math library, and an OpenGL-based rendering system.
This project is part of the ANI-PJ 4098: Génie logiciel et Gameplay course, where the objective is to develop a complete and structured game engine. The final application will include a 3D racing game prototype with vehicle controls, shooting mechanics, obstacle management, bonuses, and scoring.
- Cross-platform architecture (Windows, Linux, macOS)
- Custom memory management
- Logging system
- Window creation and input handling
- Math library (vector operations, transformations, matrices)
- Rendering system (OpenGL integration, camera system)
- Entity Component System (ECS)
- Scene management
- Physics & Animation systems
- Scripting support (Lua, Python)
VectorEngine/
│── External/
│ ├── Bin/ (Premake5)
│ ├── Libs/
│ │ ├── imgui/
│ │ ├── SDL2-2.30.12/
│── Scripts/
│ ├── lua/
│ │ ├── config.lua
│ ├── python/
│ ├── command/
│ │ ├── build.py
│ │ ├── gen.py
│ │ ├── help.py
│ │ ├── run.py
│ ├── ve.py
│── VectorEngine/
│ ├── src/
│ │ ├── VectorEngine/
│ │ ├── VectorEngine.cpp
│ ├── premake5.lua
│── VEditor/
│ ├── resources/
│ ├── src/
│ ├── VEditor/
│ ├── VEditor.cpp
│ ├── premake5.lua
│── .gitignore
│── LICENSE
│── premake5.lua
│── README.md
│── ve.bat
│── ve.sh
git clone https://github.com/jordankamto/VectorEngine.git
cd VectorEngineEnsure you have the required dependencies:
- C++17 or later
- OpenGL
- SDL2
- ImGui
- Premake5
ve.batchmod +x ve.sh
./ve.sh./VectorEngine- Modularity: Each module (rendering, ECS, physics) should be loosely coupled and independent.
- Efficiency: Optimize memory usage and processing speed.
- Cross-platform compatibility: Ensure the codebase works on multiple OS.
- Scalability: The engine should be able to handle future extensions and improvements.
This project is licensed under the MIT License. See the LICENSE file for details.
- Jordan Kamto - Lead Developer