From 639c11ad9c93c277e059a13fa1304a9ce4bd28dd Mon Sep 17 00:00:00 2001 From: Andrew Yeet Date: Fri, 4 Sep 2026 13:27:15 -0700 Subject: [PATCH] Adding a basic game design doc --- AI Docs/YeetGeese_Design_Document.md | 135 +++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 AI Docs/YeetGeese_Design_Document.md diff --git a/AI Docs/YeetGeese_Design_Document.md b/AI Docs/YeetGeese_Design_Document.md new file mode 100644 index 0000000..d69fa0e --- /dev/null +++ b/AI Docs/YeetGeese_Design_Document.md @@ -0,0 +1,135 @@ +# YeetGeese - Design Document + +## Game Concept +**YeetGeese** is a first-person tower defense game where the player defends a base by throwing geese as powerful projectiles. The core fantasy is absurdly simple but deeply satisfying: enemies approach your objective, and you yeet geese at them to stop them. + +--- + +## Core Fantasy +> *"I am alone in a 3D farm arena. Farm animals march toward my base. I aim with mouse, throw with a click, and watch geese crash into foes with satisfying honks, spins, and impact. Each throw feels powerful and purposeful."* + +- **Player**: A lone defender in first-person +- **Weapon**: Throwable geese that act as both projectiles and temporary turrets +- **Objective**: Protect the base from waves of approaching farm animals (Pigs, Chickens) +- **Juice**: Every goose hit produces satisfying feedback (honks, feathers, screen shake) + +--- + +## Core Loop +``` +[ENEMIES SPAWN] → [PLAYER MOVES & AIMS] → [YEET GEESE] → +[GEESE DAMAGE/DISTRACT ENEMIES] → [CURRENCY COLLECTED] → +[BUY UPGRADES/NEW GEESE] → [WAVE COMPLETE?] → [NEXT WAVE (HARDER)] +``` + +### Breakdown: +1. **Enemies spawn** at designated points and march toward the base +2. **Player moves** through the arena, positioning for optimal throws +3. **Player aims and yeets geese** using mouse look and click +4. **Geese impact enemies**, dealing damage or causing knockback/stun +5. **Currency drops** (feathers) from defeated enemies +6. **Player spends currency** on upgrades or new goose types +7. **Wave ends** when all enemies are eliminated +8. **Next wave begins**, with more/enemy variety/difficulty + +--- + +## MVP Scope + +### One Arena +- Simple, open arena with clear spawn and base zones +- Neutral terrain allowing free movement + +### One Player Controller +- First-person movement (WASD + mouse look) +- Throw input (left mouse button) +- Basic health system + +### One Goose Type +- **Basic Goose**: Standard projectile goose + - Medium damage, standard speed + - Spins on throw + - Flees after impact or short lifetime + +### Two Enemy Types +1. **Pig** (formerly Grunt) – Slow, low health, standard damage (meat shield) +2. **Chicken** (formerly Runner) – Fast, low health, reaches base quickly + +### Five Waves +| Wave | Enemies | Description | +|------|-----------------------------------|---------------------------------| +| 1 | 3 Pigs | Tutorial wave | +| 2 | 5 Pigs | Slight increase | +| 3 | 4 Pigs + 2 Chickens | Introduction of speed | +| 4 | 6 Mixed (Pig/Chicken) | Mix of both types | +| 5 | Boss wave: Oinker Boss | Large, high-health farm animal | + +### Basic Economy +- **Starting currency**: 100 feathers +- **Enemy drop**: 5–10 feathers per kill +- **Goose cost**: Free for first type +- **Upgrade/shop unlock**: Every 10 kills unlocks new goose slot + +### Basic UI +- Top-left: Health bar, feather count +- Top-right: Wave number +- Pause menu (Escape) +- Game over / Victory screens + +### Win/Lose Conditions +- **Win**: Survive all 5 waves +- **Lose**: Player health reaches 0 + +--- + +## Godot Setup Summary + +### Project Type +- Godot 4.x, 3D project, Forward+ renderer + +### Directory Structure +``` +res:// +├── scripts/ # GDScript files +├── scenes/ # .tscn files +├── assets/ +│ ├── audio/ +│ ├── meshes/ +│ ├── textures/ +│ ├── materials/ +│ └── animations/ +├── ui/ # HUD, menus +├── data/ # Wave/upgrade configs +├── autoload/ # GameState, EventBus, AudioManager +└── tests/ +``` + +### Autoloads +- `GameState.gd` – Wave state, currency, lives, pause +- `EventBus.gd` – Central signals for gameplay events +- `AudioManager.gd` – SFX and music playback +- `SettingsManager.gd` – Settings persistence + +### Collision Layers +| Layer | Type | +|-------|-------------------------| +| 1 | Environment | +| 2 | Player | +| 3 | Enemy | +| 4 | Goose projectile | +| 5 | Goose turret | +| 6 | Currency/pickups | +| 7 | UI / trigger zones | + +--- + +## Exit Criteria for Phase 0 +- [ ] Design document is complete (this one page) +- [ ] Godot project opens cleanly in 3D mode +- [ ] Folders and autoloads are created +- [ ] Input map is configured (WASD, mouse, throw, pause) +- [ ] MVP scope is documented and understood + +--- + +*This document defines the foundation for a small but complete playable prototype. Phase 1 will build exactly this scope; additional content comes later.*