-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Development Timeline and Feature Roadmap
Overview
This issue outlines the planned development timeline of the project, focusing on when key features and systems will be implemented. It is intended to guide contributors and maintain a clear progression from the current foundation toward more advanced engine capabilities.
Current State (Baseline)
The project currently includes:
- Core game object structures (Player, Character, Tile, Camera)
- Basic vector math system (
vec2) - Input handling (keyboard and mouse via GLFW)
- OpenGL-based rendering (textures and primitives)
Development will build directly on top of these systems.
Phase 1: Core Gameplay Systems (Short-Term)
Timeline: Immediate – Next Milestone
Goal: Enable basic interactive gameplay using existing structures.
Features
- Collision detection system (AABB or tile-based)
- Basic physics (velocity integration, friction)
- Player movement improvements
- Health and damage system
- Basic enemy AI (follow, patrol)
Outcome
A minimal playable environment with movement, interaction, and simple AI.
Phase 2: World and Rendering Expansion
Timeline: After Phase 1
Goal: Improve world structure and visual capabilities.
Features
- Tilemap loading system (file-based or procedural)
- Camera smoothing and follow system
- Sprite animation system (sprite sheets)
- Sprite batching for rendering performance
- Basic 2D lighting or shading system
Outcome
A more visually complete and scalable 2D world.
Phase 3: Engine Systems and Infrastructure
Timeline: Mid-Term
Goal: Improve scalability, organization, and reusability.
Features
- Scene or state management system
- Resource manager (textures, assets)
- Event or messaging system
- Configuration system (settings, keybinds)
- Improved file I/O systems
Outcome
A structured engine capable of supporting larger and more complex projects.
Phase 4: Backend Systems (Data and Multiplayer)
Timeline: Mid-Term to Long-Term
Goal: Introduce persistent data systems and networking capabilities.
Data Persistence
- Save/load system (player state, world state)
- Serialization system (binary or JSON)
- Profile system (multiple save slots)
- Persistent world data (tiles, entities, changes)
- Versioning for save compatibility
Networking / Multiplayer
- Basic networking layer (client/server or peer-to-peer)
- State synchronization (player positions, entities)
- Input-based networking model (client input → server authority)
- Interpolation and lag compensation
- Session management (lobbies, joining/leaving)
Backend Infrastructure (Optional / Extended)
- Remote server support (dedicated server)
- API integration for user data (if applicable)
- Cloud save support
Outcome
Support for persistent gameplay and multiplayer experiences.
Phase 5: Advanced Systems Development
Timeline: Long-Term Focus
Goal: Introduce high-impact systems that expand engine capabilities.
Features
- Shader-based rendering pipeline
- Camera transformations using matrices
- Physics system expansion (forces, gravity, collisions)
- Pathfinding system for AI
- Raycasting utilities
Outcome
More advanced gameplay possibilities and improved technical depth.
Phase 6: Large-Scale World Systems
Timeline: Future Expansion
Goal: Support larger and more complex environments.
Features
- Procedural generation systems
- Chunk-based world system
- Spatial partitioning (grids, quadtrees)
- Streaming or dynamic loading of world data
Outcome
Support for expansive worlds and higher-performance simulations.
Phase 7: Optimization and Tooling
Timeline: Ongoing / Late Development
Goal: Improve performance and developer experience.
Features
- Performance profiling tools
- Memory tracking and leak detection
- Debug overlay (FPS, collision, object data)
- Basic in-engine editing tools
- Codebase refactoring and cleanup
Outcome
A stable, optimized, and developer-friendly engine.
Long-Term Direction
- Maintain a balance between simplicity and capability
- Prioritize performance and modularity
- Support both singleplayer and multiplayer systems
- Enable persistent and scalable game worlds
- Keep systems flexible for different types of projects
Notes
- Phases are flexible and may overlap depending on development needs
- Backend systems should be designed with scalability in mind
- Multiplayer should prioritize deterministic or server-authoritative design
- Data systems should be modular and version-safe
- Priority should be given to features that unlock additional systems