PID - IP-2025/waves-of-the-fallen GitHub Wiki
Waves of the Fallen
Foreword:
"Team" refers in the following document to all contributors of IP-2-SS-2025 from HFT Stuttgart under the leadership of Prof. Dr.-Ing. Gerhard Wanner.
This specifically includes:
Raphael Haschka
Paul Kaufmann
Marko Piplica
Gabriele Cota
Paul Durz
Chris Rappold
Manuel Holm
Bilal Ibrahim
Jack Xie
Max Friebertshaeuser
York Koch
Benedikt Lang
Lenny Wilkens
Onur Özdemir
Ron Seifried
Metadata
Authors: Team
Responsible for content: Team
Version: 1.0
Release Date: 12.7.2010
Status:
- In Progress
- Under Coordination
- Released
Quality Assurance:
Release:
Change Overview
Version | Date | Changed Pages, Chapters | Remarks |
---|---|---|---|
0.1 | 26.03.2025 | All | First Creation |
Contents
-
- Introduction
- Risk Management Procedures
- Tools and Techniques
- Documentation
- Reporting
- Scheduling of Risk Management Activities
- Roles and Responsibilities
- Rating Scales for Probability and Impact
- Time Proximity
- Risk Categories
- Risk Treatment Categories
- Early Warning Indicators
- Risk Tolerances
- Risk Budget and Usage Guidelines
1. Project Definition
1.i High Level Design
General
- Gold = overarching currency for character upgrades
- XP = currency within a game
The game consists of multiple waves that become more difficult as the game progresses. Every 3 waves, the player enters the shop.
Italic = Optional features (depending on available time)
Enemies
Movement / Behavior:
- Run directly towards the player without complex pathfinding.
- In higher waves, the difficulty increases → enemies have more health, are faster, etc.
- Different movement per enemy type.
Attack Types:
- Primarily melee (punching, biting, ramming, etc.)
- Later also ranged (arrows, magic, projectiles)
- Special enemies/bosses with unique attacks:
- Explosion attacks / area damage
- Spawning additional enemies around themselves
- Jump attacks forward
- Increased attack speed, etc.
- Special enemies/bosses have a unique design for clear distinction.
- Different ranges (e.g., enemies standing at the edge with a “base” around them).
Attributes:
- Varying health points, damage values, attack speeds, movement speeds, and special attacks
- Special enemies/bosses with special abilities like shields or healing other enemies
- Spawn rate varies depending on current enemy count:
- Few enemies → increased spawn rate
- Many enemies → reduced spawn rate
Rewards:
- Player receives XP per kill, tougher enemies grant more XP
- Rare special items can drop from tough enemies:
- Nuke
- Double points
- Temporary buffs (e.g., from potions)
- Special items remain on the ground until the end of the wave
Map-Specific Enemies
Map 1: Sumpf / Ödland / Verseuchtes Gebiet / Wald
Normal Enemies:
- Kriecher-Skelett: Very low health (one-shot), very low damage, slow movement, follows the player continuously, spawns in larger groups.
- Skelett-Krieger: Medium health (1–2 hits), moderate damage, normal movement, follows the player.
- Skelett-Bogenschütze: Low health (one-shot in melee, 1–2 hits from range), medium damage, stationary or slow movement, attacks from a distance.
- Skelett-Reiter: High health (several hits), high damage, fast movement, actively chases the player, vulnerable to magic or traps (can be slowed).
Bosses:
- Skelett-Kommandant: Very high health, high damage, normal movement, leads smaller skeleton units and buffs them.
- Geisterhafter König: Extremely high health, very high damage, slow movement, summons ghosts, can become temporarily invulnerable.
Map 2: Ödland / Brachland / Schlachtfeld
Normal Enemies:
- Ork-Krieger: High health, moderate damage, normal movement, directly follows the player.
- Ork-Schamane: Medium health, moderate damage, stationary or slow movement, keeps distance and heals allies.
- Ork-Wolfsreiter: Low to medium health, high damage, very fast movement, aggressively chases the player, can be slowed.
- Ork-Berserker: High health, variable damage (increases at low health), becomes faster at low health, vulnerable to ranged/magic attacks.
Bosses:
- Ork-Häuptling: Very high health, high damage, normal movement, grants bonuses to nearby orcs.
- Berserker-Kommandant: Extremely high health, very high damage, medium movement, enters a frenzy at low health.
Map 3: Verzauberter Wald / Magisches Reich
Normal Enemies:
- Waldgeist: Medium health, low damage, normal movement, teleports near the player.
- Elfen-Bogenschütze: Low health, high damage, medium movement, keeps distance and fires precise shots.
- Elfen-Krieger: Medium to high health, medium damage, fast movement, attacks with quick sword combos.
Bosses:
- Elfen-Zaubermeister: High health, very high damage, stationary, uses magic to defend and summon enemies.
- Baumriese: Extremely high health, very high damage, slow movement, creates roots to trap the player.
Map 4: Himmel / Drachenhort
Normal Enemies:
- Wyvern-Späher: Medium health, medium damage, fast movement, flies around the player and attacks from the air.
- Drakin-Krieger: High health, high damage, normal movement, charges towards the player.
Bosses:
- Wyvern-König: Extremely high health, very high damage, fast movement, flies and uses dive attacks.
- Uralter Drache: Extremely high health, extremely high damage, slow movement, uses fire breath and area damage.
Player
Inventory:
- All weapon slots are always available during waves
Level:
- Player always starts at wave 1.
- No overarching leveling between games (except gold for character upgrades)
Base Stats:
- Health: Starting value of 100 HP, can be increased via stats
- Speed and other stats can be improved via XP in the shop or gold in the character main menu
- Stats and upgrades are individual per character
Special Abilities:
- Some characters have special abilities (e.g., healing, explosions, shield)
- Special ability can be used once per round (between shop visits)
- It is recharged after each shop visit
Shop System
How to get new weapons?
- See Purchase Options
How to upgrade stats and weapons?
- See Purchase Options
Access:
- After a successful boss fight, the player automatically enters the shop
- Singleplayer: Shop closes automatically after 1 minute or anytime via button
- Weapon selection: 10 sec time limit, otherwise random selection
Currency:
- Only in-game currency (XP/Gold), no real money
- XP earned through kills and special drops
- Multiplayer: XP is player-specific and non-transferable
- XP is earned per kill, bosses grant gold every 3rd wave
Purchase Options:
- Stats and weapon upgrades are limited
- All characters have access to the same purchases, but specific classes receive specific advantages (e.g., archer +5 range, +10 shot speed)
- After each boss, two menus with 3 items each appear:
- Choose new weapon (one must be chosen)
- Upgrade stats/weapon (zero or one choice, reroll possible)
- New weapons are free, upgrades cost XP (increasing cost per level)
Characters
- Different characters with individual strengths/weaknesses
- Some have more health, others more attack power, faster movement, etc.
- Character is selected in the start menu and remains until the end
- At the beginning only one character available, others unlockable with gold
- Gold is earned per game, character upgrades only available after reaching endless mode
- Character stats can be leveled with gold in the menu
Items
Weapons:
- Melee and ranged weapons
- Attributes: Range, attack speed, damage, weight (high weight slows down movement)
Gameplay
Waves:
- After an increasing number of waves, there is a boss fight, then shop
- Wave intensity increases (similar to COD Zombies): more enemies / tougher enemies / more mini-bosses
- Before the shop & after a boss fight, the player gets a new weapon (choose 1 of 3)
- Each wave lasts 30 seconds, then 5 sec break
- HUD shows the current wave
Modes:
- Standard mode: approx. 15 minutes, after that, continue or end game
- Endless mode: infinite waves with increasing difficulty
Controls and Gameplay
Controls:
- Auto-aim & auto-shooting
UI / UX:
- Clear HUD with health, XP, weapon slots, current wave
- Run history on the home screen (stats)
Difficulty Scaling:
- Enemies scale with playtime
- Before the game: map selection → difficulty (Easy, Advanced, Hard)
- Higher difficulty = more gold
Death / Revive:
- Singleplayer: If the player dies, the game is over
- Multiplayer: If a player dies, they are revived at the end of the wave
Multiplayer
- Multiplayer is possible (possibly local via hotspot)
- Up to 4 players
- If a player leaves before endless mode → waves adapt, player receives no gold
- More players = more/tougher enemies
- Players outside of the screen → shown as triangle at the edge (no zoom-out)
Maps
- Maps are not generated live
- Map is chosen at the beginning & remains until the end
- Maps differ by theme, obstacles & difficulty
1.ii Desired Goals and Results
Character
Stats will likely be changed throughout the development process, because of balancing.
General information
- The Character is selected before the game and you cannot switch to other owned characters
- At first there is only one playable character, more are unlocked by buying them with gold
- Gold is obtainable through finishing a game/after killing every third boss
- Permanent stat upgrades can be bought in the character-menu
- Temporary stat upgrades can be bought in game with collected XP
- The first special ability is unlocked when the character is unlocked
- The second special ability is unlocked when beating the third boss on the second map
- Characters spawn at the beginning of the game and after every shop in the middle of the map
- Characters will die when their health points drop to 0
- In singleplayer when the character dies, the game will end
- In multiplayer when the character dies, they will respawn in the next wave, unless every character dies, because then the game will end
Melee:
Base Stats:
- Health Points: 10
- Damage Up: 3
- Attackspeed: 3
- Movementspeed: 3
Special Ability:
- Heals themselves (10% Health Points each sec for 10 secs)
- Boosts Damage and Attackspeed 50% (10 secs)
Ranger:
Base Stats:
- Health Points: 5
- Damage Up: 3
- Attackspeed: 6
- Movementspeed: 6
Special Ability:
- Boosts Attackspeed 100% (10 secs)
- Shoots an arrow in the direction of the highest health enemy (Damage based on 300% of Damage Up)
Mage:
Base Stats:
- Health Points: 4
- Damage Up: 4
- Attackspeed: 4
- Movementspeed: 4
Special Ability:
- Fires a lightning bolt on every enemy in a Range of 10 Character-widths (Damage based on 100% of Damage Up)
- Fires a Fireball on the highest health enemy, which explodes on impact (Damage based on 200% of Damage Up, Explosionradius 3 Character-widths)
Healer:
Base Stats:
- Health Points: 8
- Damage Up: 1
- Attackspeed: 3
- Movementspeed: 7
Special Ability:
- Heals all allies (Healing based on 100% of Health Poins, Range 5 Character-widths)
- Boosts Damage Up of all allies 50% (10 secs)
Assassine:
Base Stats:
- Health Points: 6
- Damage Up: 7
- Attackspeed: 1
- Moventspeed: 8
Special Ability:
- Boosts Movementspeed 20% and Damage Up 100% (10 secs)
- Evades all Damage (5 secs)
1.iii Multiplayer
Lobby System
- In the main menu, players can choose between "Singleplayer" and "Multiplayer"
- Selecting Multiplayer gives two options: "Join Game" and "New Session"
- "Join Game": A text field appears where players can enter a session ID. Clicking "Join" connects them to that lobby
- "New Session": A new session is created and the session ID is displayed permanently on the screen
- Once 2 to 4 players have joined the game can be started with "Play"
- Players in the lobby can change their name. Only ASCII letters and numbers are accepted. The maximum length is 10 characters
Round System
- Once a round starts, players fight together against mobs
Death / Quitting
- If one or more players die, they are revived at the end of the wave (as long as at least one player survives)
- If all players die, the game ends, and they return to the lobby menu
- A death player is visually indicated (with something like a tombstone) so teammates can recognize it
- If one or more players leave the game, it continues as long as at least one player remains. If all players leave, the lobby is closed
- Leaving a game returns the player to the main menu
- The difficulty adjusts accordingly for the remaining players
Rewards (Gold, XP)
- Each player has their own independent inventory and earned XP
- Each player gains the same amount of XP per kill of a standard mob
- In boss fights (before visiting a shop) all players receive the same amount of XP and gold
- Players cannot trade items or currencies (Gold, XP) with each other
- All players who reach Endless Mode receive their earned gold as a reward
- Players who leave before reaching Endless Mode receive no gold as a reward
UI/UX
- If a player is off screen, a small player icon appears at the edge of the screen
- If a player is on screen, they are fully displayed
- Their name and health are shown above them
- All current players are permanently listed at the edge of the screen, making it clear when a player quits
Shop System
- The shop (weapons and upgrades) is independent for each player
- Each player receives a unique selection of weapons and upgrades
Backend
These are initial assumptions and may change depending on the software stack, such as the game engine
- A central server hosts the multiplayer game
- When starting a lobby or joining an existing one, the players device connects as a client to the server
- The server hosts the game, streaming enemy and player positions and other necessary data
- The client renders the game based on this data and sends its own updates, such as position changes and player actions back to the server
- Latency should be kept low and stable
- In case of connection issues, a timeout will automatically send the player back to the main menu
- A corresponding info screen will be displayed
- Rejoining during a round is not possible
1.vii Interfaces
Mainmenu
Settings
Charactermenu Character which can be upgegraded
Character which need to be unlocked
choose gamemode
select a map
select a character for game
play with friends (via Lobby code)
create lobby
join lobby
in game
choose a new weapon
upgrade weapon/stat
one player dies
endscreen
one player already left
2. Project Solution Approach
Definition of how the project delivers the option selected in the Business Case.
2.1 Techstack
The project will use a modern, modular tech stack optimized for simplicity and practicality for all team members:
Overview: The game will offer both online and offline multiplayer modes. In offline mode, one client acts as the host and provides a game instance to other players via IP:Port. In online mode, a centralized server acts as the host, providing a headless (no UI) game instance for all clients to connect to.
Godot 4 (GDScript/C#) is the core game engine for both client and server. A headless server instance runs the same codebase, handling authoritative game logic, entity synchronization, and player interactions using Godot’s built-in multiplayer API with ENet (UDP). GDScript is Godot’s internal scripting language — beginner-friendly and easy to use thanks to its Python-like syntax, making it accessible for all team members.
A Node.js backend with Express serves as the matchmaking server. It manages game room creation, matchmaking logic, player statistics, and dynamically assigns clients to available game servers.
A Kubernetes cluster will host all active game server instances, efficiently managing their lifecycle and connections while optimizing for performance and cost.
Git and GitHub will be used for version control and collaborative development, enabling streamlined code management, issue tracking, and team coordination.
1. Functionality
Feature Completeness:
- game must fully implement all core mechanics (combat systems, shop system, player upgrades, wave progression)
- fully implement multiplayer features (lobby creation, matchmaking, enemy and XP synchronization).
- all maps and environments need to fit in correctly and support gameplay mechanics
- Integrated bosses need mechanics with unique tactics and attacks to challenge players
- enemy behavior works correctly
- Fully integrate all intended character classes and special abilities to allow diverse playstyles
- progression systems (XP, leveling, unlocks) function properly
Correctness:
- The XP and Gold systems should accurately calculate and reward players based on kills and boss fights
- Shop offers correct weapons
- Weapons and abilities deal intended damage and apply correct effects
- Enemy spawn rates and waves trigger as designed
- Player stats, upgrades, and class perks apply correctly
- Multiplayer sync ensures consistent game state across clients
Appropriateness:
- Game mechanics align with the "Vampire Survivors" genre expectations
- The game should provide a fun and engaging experience with a clear difficulty progression
- Difficulty scales appropriately for singleplayer and multiplayer
- UI elements provide clear and accurate feedback (health, XP, shop options)
- Controls are intuitive and responsive
2. Compatibility
Coexistence:
- The game should run smoothly on IOS and Android
- game should function well across different network environments and with various internet speeds (multiplayer)
Interoperability:
- Multiplayer works across different devices and network conditions
- Supports various screen resolutions and aspect ratios without UI issues
3. Reliability
Game Stability
- game should not crash/freeze or loose performance, even during high enemy density situations or high attack frequency
- no degradation after long playing sessions
Availability
- game should maintain a stable connection (multiplayer)
- game should stay function stably under various network conditions
- Matchmaking and lobbies work reliably without frequent disconnects
- Singleplayer mode functions without requiring an internet connection
- Game loads and runs consistently (across multiple sessions)
Recoverability
- In the case of an error, the game saves data and restores gameplay after
- Players can rejoin a match if disconnected (if applicable)
4. Safety/Security
Data Integrity
- Player progress (XP, Gold, unlocked characters) must be stored securely and not be lost due to bugs or crashes
- Ensures consistent game state across sessions and multiplayer matches
- Secure handling of player data
Cheat Protection
- Prevent exploits and data corruption (e.g., infinite XP or Gold farming, speed hacks, damage manipulation)
- provide validation of key actions (e.g., XP gain, item purchases)
5. Maintainability
Modularity
- Codebase structured with clear separation of concerns (e.g., movement, combat, UI, enemies, wave system, multiplayer)
- New content (eapons, enemies, and maps) should be easy to integrate
- Easy replacement or extension of game components without breaking anything
reusability
- Generic and scalable systems (e.g., weapon handling for both melee and ranged)
- Common functions and assets used across multiple game elements (e.g., physics, UI elements)
- Reusable fragments for enemy behaviors, player stats, and game mechanics
modifiability
- Game balance can be adjusted easily
- future changes can be added easily
analyzability
- Logging and debugging tools integrated for tracking errors and performance issues
- Clear error messages and stack traces for efficient troubleshooting
Code Readability
- Follow clean coding practices and Consistent naming conventions to support long-term development and bug fixing
- Well-commented code explaining complex logic and functions
- Clean code structure with clear separations (classes, functions, game logic, ...)
Documentation
- Setup and contribution guidelines for developers
- ensure efficient maintenance and future development
Testability
- The code should be structured to allow testing
- Unit tests for ( especially critical) functions (e.g., damage calculation, XP gain)
6. Performance
Scalability
- game should scale well across different devices and configs (multiplayer)
Responsiveness
- Gameplay mechanics (movement, attacks, wave spawns) must respond quickly and smoothly
- Gameplay should be smooth without noticeable latency
- Player control should be precise
- Immediate feedback for actions (attacks, damage, UI interactions)
- Smooth animations and transitions without noticeable delay
Time behavior
- Fast loading times (game startup, level transitions, shop interactions)
- No frame drops or slowdowns during intense battles
consumption behavior
- Efficient network usage to reduce lag and bandwidth consumption in multiplayer
capacity
- Handles high enemy densities without performance loss
- Supports simultaneous player actions well
- all background processes are managed well
7. Interaction Capabilities/usability
Comprehensibility
- Clear UI design (health, XP, shop, abilities)
- Intuitive controls
- Simple and understandable game mechanics (attack, movement, upgrades, shop)
Learnability
- Gameplay should be intuitive
- Gradual difficulty curve
- Tooltips and in-game explanations for weapons, upgrades, and abilities ???
Satisfaction
- Gameplay must be enjoyable and engaging (but not too easy)
- easy and fast lobby creation
- rewarding progression (XP, unlocks, upgrades)
- Visual and audio feedback for player actions (damage, level-ups, enemy hits)
- Variety in enemies, weapons, and strategies to keep gameplay fresh
Efficiency
- players don’t need to take unnecessary steps and can quickly engage with the game
- Ensure seamless interaction between systems
aesthetics
- Well-designed UI with consistent fonts, colors, and icons
- Sound design and music enhancing immersion and gameplay feedback
8. Flexibility/Transferability
Installability
- Simple and fast installation process
- No complex setup required
Interchangeability
- Modular design allowing future content updates or expansions without breaking the core game
Quality-Scenarios
1. Performant Enemy Waves
Quality Attribute: Performance (Scalability) Environment: High enemy count (endgame wave)
- Source: Game system
- Trigger: The game generates a new wave with 100+ enemies
- Artifact: Wave spawning mechanism
- Reaction: The wave is spawned correctly without the frame rate dropping
- Response Measure: In 90% of cases, FPS remains even with the maximum number of enemies
2. Intuitive Shop Navigation
Quality Attribute: Usability (Comprehensibility & Efficiency) Environment: Player accesses the in-game shop Source: Player**
- Trigger: The player opens the shop and looks for a new weapon
- Artifact: Shop user interface
- Reaction: Weapons and prices are clearly displayed, and the purchase process can be completed within a maximum of two clicks
- Response Measure: 95% of players can complete a purchase within 5 seconds without guidance
3. Stable Multiplayer Connection
Quality Attribute: Reliability (Availability) Environment: Normal network load Source: Player
- Trigger: A player joins a multiplayer session
- Artifact: Connection to the multiplayer lobby
- Reaction: The connection is established within 3 seconds and remains stable throughout the session
- Response Measure: In 95% of cases, the connection is successful without disconnections or latency spikes over 100ms
Quality-Tree
Channels of Communication
Discord
The Discord server serves as the primary communication channel for smaller issues and quick exchanges.
- Team members can join different voice channels to resolve issues or discuss current topics.
- Chat rooms are available for discussions on specific topics, for fast and easy communication.
In-Person Lectures
- Weekly meetings provide updates on the current sprint and assign tasks to team members.
- A central exchange point for planning the upcoming sprint and its tasks.
GitHub as Task Communication
- GitHub Issues serve as the main task documentation to structure, plan, and organize issues and sprints.
- To be effective, issues should be clear and well-described.
Meeting Time
- Wednesday
- 08:00 – 11:30: Seminar / Planning Session
- 11:30 – open end: Further exchange & collaboration
Weekly Meeting Structure:
1. Sprint Overview & Status (5 min)
- Review the current sprint's progress.
- Identify any blocked tasks or dependencies.
2. Team Member Updates (1 min per person)
Each team member provides a brief update on:
- Current tasks – What they are working on.
- Dependencies & blockers – Any challenges or support needed.
- Upcoming tasks – What’s next on their Tasks.
3. Breakout Discussions (15 min)
- Team members with shared dependencies or specific topics break out into smaller groups.
- Focused discussions to resolve issues, and coordinate
10. Project Plan
A project plan describes how and when the goals of a project will be achieved. It lists essential products, activities, and resources.
10.i Functional Point Estimation
Basic FP Weights
Functional Unit | Simple | Medium | Complex |
---|---|---|---|
External Inputs (EI) | 3 | 4 | 6 |
External Outputs (EO) | 4 | 5 | 7 |
External Enquired (EQ) | 3 | 4 | 6 |
Internal Logic Files (ILF) | 7 | 10 | 15 |
External Interface Files (EIF) | 5 | 7 | 10 |
External Inputs (EI)
Data that enters the system
Feature | Category | Complexity | Points (estimated) |
---|---|---|---|
Player login | EI | Medium | 4 |
Account Management (Password reset) | EI | Medium | 4 |
Controls (Touch, Movement) | EI | Complex | 6 |
Weapon/Item Selection | EI | Medium | 4 |
In Game Character Shop | EI | Medium | 4 |
Settings (Sound, Graphics, Language) | EI | Simple | 3 |
SUM | 25 |
External Outputs (EO)
Data that the system sends out
Feature | Category | Complexity | Points (estimated) |
---|---|---|---|
Matchmaking / Lobby Display | EO | Medium | 5 |
Players Location | EO | Medium | 5 |
Game UI (HP, EXP, Wave, Time) | EO | Medium | 5 |
Push Notifications (e.g. Events) | EO | Simple | 4 |
SUM | 19 |
External Enquired (EQ)
External systems or files the software interacts with
Feature | Category | Complexity | Points (estimated) |
---|---|---|---|
Creating/Joining Multiplayer Lobby | EQ | Complex | 6 |
Continue in endless mode | EQ | Medium | 4 |
Game history | EQ | Complex | 6 |
Character levels | EQ | Complex | 6 |
SUM | 22 |
Internal Logic Files (ILF)
Internal data files or databases that are used by the system
Feature | Category | Complexity | Points (estimated) |
---|---|---|---|
Weapon Control (Attack) | ILF | Complex | 15 |
Wave Logic / Enemy Spawn | ILF | Complex | 15 |
Character Management (Stats, Level, Upgrades) | ILF | Complex | 15 |
Enemy Logic (HP, Behavior, Spawn Rate) | ILF | Complex | 15 |
Map Management/Design | ILF | Medium | 10 |
SUM | 70 |
External Interface Files (EIF)
External data files or databases that are used by the system
Feature | Category | Complexity | Points (estimated) |
---|---|---|---|
Multiplayer Sync (Positions, Events) | EIF | Complex | 10 |
SUM | 10 |
Sum All FP
Functional Unit | Points |
---|---|
External Inputs (EI) | 25 |
External Outputs (EO) | 19 |
External Enquired (EQ) | 22 |
Internal Logic Files (ILF) | 70 |
External Interface Files (EIF) | 10 |
Result | 146 |
Estimated Time
good Industrial Standart 1FP = 5 hours
$146 * 5·h = 730·h$
Our State
- new Tech Stack
- less experience
- new Environment
Estimation Rather 1 FP = 8 hours
$146 * 8·h = 1164·h$
$16h * person * sprint = 16 * 14 * 5 = 1120·h$
A more precise estimation could be made based on tech stack (language, experience)
10.i Issue Estimation
Waves of the Fallen – Issue/Sprint planning and estimation
Core Features are not representative and can change accourding to our time planning
Sprint 1
MVP Goal:
Mobile-capable Godot project with offline LAN multiplayer and basic gameplay functionality.
Core Features:
- Project setup in Godot 4 targeting Android and iOS (initial builds)
- Player movement with touch controls
- Camera system following the player
- LAN multiplayer via IP:Port using Godot ENet
- Position sync for multiple players
- Simple test map/arena
- Initial UI: Connection screen (enter IP), basic HUD (health, player ID)
Estimated Time:
Approx. 100–200 total team hours
Sprint 2
MVP Goal:
Fully navigable UI including main menu and an initial online matchmaking system.
Core Features:
- Main menu: start game, options, connect, quit
- Lobby scene: player list, host/start button
- Node.js backend with basic API
- Client can query backend and join rooms online
- Manual server start (headless), still outside Kubernetes
Estimated Time:
Approx. 150–250 total team hours
Sprint 3
MVP Goal:
First fully playable round with enemies, waves, and core combat mechanics.
Core Features:
- Wave-based enemy spawning
- Basic AI (move/attack player)
- Player and enemy health system
- Combat: melee or projectile system
- Win/lose condition detection
- End screen with summary
- UI: Health bars, wave counter, basic effects (hit, death)
Estimated Time:
Approx. 200–300 total team hours
Sprint 4
MVP Goal:
Online game server instances are managed automatically with persistent player data.
Core Features:
- Kubernetes setup for game server lifecycle
- Matchmaking server starts/stops headless servers as needed
- Backend assigns players to open rooms dynamically
- Database for storing basic player stats (waves reached, kills)
- UI: Persistent display of stats or end-of-round summary
Estimated Time:
Approx. 150–250 total team hours
Sprint 5
MVP Goal:
Final improvements, testing, bugfixes and balancing.
Core Features:
- Gameplay balancing (enemy health, wave speed, damage tuning)
- Fixing bugs and edge cases
- Quality-of-life UI improvements (e.g. connection status, error messages)
- Audio/visual polish (optional: simple sounds, animations, particles)
- Test builds on Android/iOS
- Code cleanup and performance tuning
Estimated Time:
Approx. 100–200 total team hours
Combined
Total Estimated Time:
- Min. 800 hours = Approx. 34 Days
- Max. 1200 hours = Approx. 50 Days