98 lines
4.8 KiB
Markdown
98 lines
4.8 KiB
Markdown
# 2D Roguelike with Dual Game Loops: Roadmap & Deadline
|
||
|
||
This document outlines a detailed plan to create a simple 2D roguelike in C using raylib, featuring two distinct game loops: defending your base against hordes and pillaging a dungeon.
|
||
|
||
---
|
||
|
||
## 1. Realistic Deadline Estimate
|
||
|
||
- **Overall Estimate:** **80–120 hours** of focused development time
|
||
*(This can be spread over several weeks if you’re working part time.)*
|
||
|
||
> **Note:**
|
||
> If you’re new to C/game development or raylib, you may want to extend this timeline by an additional 50% or more to cover learning curves and extra debugging.
|
||
|
||
---
|
||
|
||
## 2. Roadmap / To-Do List
|
||
|
||
### A. Pre-Production and Planning (8–12 hours)
|
||
- **Concept Design:**
|
||
- Define the core mechanics for both game loops:
|
||
- **Base Defense Mode:** Determine horde attack wave system, enemy behavior, and defensive structure mechanics.
|
||
- **Dungeon Pillaging Mode:** Decide on dungeon layout, exploration dynamics, enemy encounters, and reward systems.
|
||
- Sketch out game flow diagrams and state transitions between modes.
|
||
- **Feature List & Scope:**
|
||
- Create a brief design document outlining gameplay, UI, and any score/progression systems.
|
||
- Prioritize features (MVP vs. additional polish) to ensure core gameplay is functional.
|
||
- **Tool Setup:**
|
||
- Install and configure raylib.
|
||
- Set up your development environment (IDE, version control, build scripts).
|
||
|
||
### B. Prototyping Basic Framework (15–20 hours)
|
||
- **Project Setup:**
|
||
- Initialize a basic C project structure and integrate raylib.
|
||
- Create a main game loop with a game state manager to switch between modes.
|
||
- **Basic Game Loop Implementation:**
|
||
- Implement a splash screen or main menu for mode selection.
|
||
- Add stubs for each mode (base defense and dungeon) to verify mode switching.
|
||
- **Input and Rendering:**
|
||
- Set up event handling using raylib for keyboard/mouse input.
|
||
- Render simple shapes or sprites as placeholders for the player, enemies, and bases.
|
||
|
||
### C. Base Defense Mode Development (25–30 hours)
|
||
- **Game Mechanics:**
|
||
- Code enemy spawning and implement wave mechanics for base defense.
|
||
- Develop basic AI for enemy movement and targeting the base.
|
||
- **Player & Base Interactions:**
|
||
- Create defensive structures or player-controlled defenses.
|
||
- Implement collision detection between enemies and the base.
|
||
- **Visual Feedback:**
|
||
- Display base health/integrity.
|
||
- Include simple animations or state feedback (damage effects, score updates).
|
||
- **Testing and Iteration:**
|
||
- Continuously test and tweak enemy behavior, spawn rates, and difficulty.
|
||
|
||
### D. Dungeon Pillaging Mode Development (25–30 hours)
|
||
- **Dungeon Generation:**
|
||
- Design a simple procedural (or pre-defined) dungeon layout.
|
||
- Implement room transitions, corridors, or tile-based map structure.
|
||
- **Player Mechanics:**
|
||
- Code player movement, attacks, and possibly a simple inventory or item system.
|
||
- Define enemy encounters with a basic combat system and AI.
|
||
- **Environment Interactions:**
|
||
- Add interactive elements such as doors, traps, or treasure chests.
|
||
- Implement transitions between rooms or levels.
|
||
- **Basic Story/Progression Elements:**
|
||
- Integrate objectives like reaching a goal or collecting treasures.
|
||
- Consider power-ups or enhancements to influence later base defense rounds.
|
||
- **Testing and Iteration:**
|
||
- Playtest exploration, tweak enemy difficulty, and adjust dungeon layouts to ensure engagement.
|
||
|
||
### E. Integration, Polish, and Debugging (10–20 hours)
|
||
- **Integration:**
|
||
- Seamlessly connect the two modes so that players can transition between them.
|
||
- Implement transitions (e.g., carrying over score or narrative cues).
|
||
- **Polish:**
|
||
- Refine graphics and animations (using temporary assets if necessary).
|
||
- Add sound effects and background music for an improved player experience.
|
||
- **Debugging & Optimization:**
|
||
- Thoroughly playtest for bugs and balance gameplay.
|
||
- Optimize performance, particularly when managing multiple on-screen entities.
|
||
- **Final Touches:**
|
||
- Develop a simple scoring or progression system, if desired.
|
||
- Implement a basic UI for health, score, and game mode transitions.
|
||
|
||
### F. Buffer and Extra Time
|
||
- **Extra Time (Optional):** Reserve an additional **10–20%** of the total planned hours for unforeseen challenges or potential extra features.
|
||
|
||
---
|
||
|
||
## 3. Final Considerations
|
||
|
||
- **Iteration:** Game development is iterative. Be prepared to revisit and refine early stages as new challenges or ideas arise.
|
||
- **Scope Management:** Focus initially on a minimal viable product (MVP) that covers both game modes. Additional features can be added once core gameplay is solid.
|
||
- **Learning Curve:** If you are less experienced with raylib or game development in C, consider using online tutorials and community forums for additional guidance.
|
||
|
||
Good luck with your project!
|