StreamGame/idea/roguelike_project_roadmap.md
2025-05-29 19:00:39 +02:00

98 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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:** **80120 hours** of focused development time
*(This can be spread over several weeks if youre working part time.)*
> **Note:**
> If youre 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 (812 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 (1520 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 (2530 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 (2530 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 (1020 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 **1020%** 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!