- Objective: Implement a versatile rendering system capable of handling both 2D and 3D graphics.
- Integrate OpenGL for rendering capabilities.
- Implement shader management and customization.
- Support for various rendering techniques like shadows, post-processing, and more.
- Objective: Design and implement an ECS architecture for flexible and efficient game object management.
- Define components, entities, and systems for modular game object composition.
- Implement a robust system for entity transformations, behaviors, and interactions.
- Objective: Ensure the game engine is cross-platform, capable of running on various operating systems.
- Utilize platform-independent libraries like GLFW for window management.
- Implement platform-specific code when necessary for optimal performance.
- Objective: Develop a responsive input system to capture and process user input.
- Implement keyboard, mouse, and controller input support.
- Allow for customizable input mappings and configurations.
- Objective: Create a robust system for managing and transitioning between different game scenes.
- Implement scene loading, unloading, and transitioning mechanisms.
- Support for scene serialization and deserialization.
- Objective: Integrate a physics engine to handle realistic object interactions and movement.
- Develop a physics engine.
- Implement collision detection and response.
- Objective: Implement a UI using ImGui.
- Develop modulable UI.
- Support for full UI customization and styling.
- Objective: Create tools to assist in debugging and profiling the game engine.
- Implement logging mechanisms for debugging information.
- Develop profiling tools to analyze performance bottlenecks.