Add difficulty level design

This commit is contained in:
2026-04-21 17:38:20 +02:00
parent ed703d91f4
commit 213287c43d

View File

@@ -44,6 +44,7 @@ Prefer Godot resources or plain C# definition classes for tunable game content.
- `WeaponDefinition`: firing cadence, projectile count, damage, speed, collision behavior, seeking rules, level scaling. - `WeaponDefinition`: firing cadence, projectile count, damage, speed, collision behavior, seeking rules, level scaling.
- `SquadronMateTypeDefinition`: formation rule, spacing, movement smoothing, targeting behavior, visuals. - `SquadronMateTypeDefinition`: formation rule, spacing, movement smoothing, targeting behavior, visuals.
- `SpecialWeaponDefinition`: initial ammo, ammo pickup amount, projectile behavior, damage rule, invulnerability or pull effects. - `SpecialWeaponDefinition`: initial ammo, ammo pickup amount, projectile behavior, damage rule, invulnerability or pull effects.
- `DifficultyDefinition`: named difficulty preset, gameplay multipliers, survival rules, score modifiers, content overrides.
## Level System ## Level System
@@ -439,6 +440,40 @@ Scoring sources:
The score system should publish events for UI, highscore, level-up thresholds, and mission results. The score system should publish events for UI, highscore, level-up thresholds, and mission results.
## Difficulty Levels
Difficulty should be selected before starting a run and then remain fixed until game over, normal victory, or secret victory. It should be represented by a `DifficultyDefinition` so the final jam topic can rebalance the game without rewriting missions.
Difficulty should affect systems through explicit multipliers and overrides:
- Enemy health multiplier.
- Enemy projectile speed multiplier.
- Enemy fire cadence multiplier.
- Enemy spawn density multiplier.
- Cluster spawn interval multiplier.
- Boss health multiplier.
- Boss phase timing multiplier.
- Hero starting shield charges.
- Hero retry count.
- Collectible drop rate multiplier.
- Special weapon initial ammo multiplier.
- Score multiplier.
- Clear screen pickup strength.
- Enemy escape rule override for cluster rewards.
Avoid making difficulty depend on hidden rules. The player should be able to understand the broad promise of each difficulty from the menu.
Suggested presets:
- Easy: more shield charges, slower enemy projectiles, fewer spawns, generous drops, no score bonus.
- Normal: intended baseline for first completion.
- Hard: faster enemy projectiles, denser clusters, stricter boss timings, moderate score bonus.
- Expert: highest density and speed, fewer retries or shields, strongest score bonus, intended for highscore runs.
Difficulty should not change core controls, mission order, weapon identity, or story outcome. Secret victory may require a minimum difficulty if the final topic benefits from that, but the requirement should be visible before the run starts.
Difficulty-specific mission overrides can be used when multipliers are not enough. For example, a mission may add an extra enemy cluster on Hard and Expert, or replace a boss projectile pattern on Expert. These overrides should be optional and declared in mission data.
## Persistence ## Persistence
Persist only what needs to survive across missions or game sessions. Persist only what needs to survive across missions or game sessions.
@@ -460,6 +495,7 @@ Run-ending highscore state:
- Player name or initials. - Player name or initials.
- Score. - Score.
- Mission reached. - Mission reached.
- Difficulty.
## Testing Strategy ## Testing Strategy
@@ -475,10 +511,13 @@ High-value unit tests:
- Game over triggers when retry count is exhausted. - Game over triggers when retry count is exhausted.
- Cluster reward is awarded only when completion rules are satisfied. - Cluster reward is awarded only when completion rules are satisfied.
- Special weapon ammo pickups replenish the selected special weapon. - Special weapon ammo pickups replenish the selected special weapon.
- Difficulty modifiers adjust enemy health, projectile speed, spawn intervals, shield charges, retries, and score.
- Difficulty-specific mission overrides are applied only for matching difficulties.
High-value play tests: High-value play tests:
- Start game and enter first mission. - Start game and enter first mission.
- Select each difficulty and verify visible run settings.
- Pick a special weapon in the shop. - Pick a special weapon in the shop.
- Complete a small enemy cluster and receive points. - Complete a small enemy cluster and receive points.
- Collect each collectible type. - Collect each collectible type.