OnlySpud
Save the Holy Potato by destroying the imposters! But don't eat the holy potato!
Move: WASD, Mouse Look
Jump: Space
Pickup: E
Throw: R (Definitely not G)
Jetpack: J, once equipped, also: broken.
OnlySpud - Game Design Document
Introduction
OnlySpud is a 3D action-puzzle game where players protect a sacred "Holy Potato" by collecting and eating imposter potatoes in wave-based challenges. Players must strategically manage a Fullness meter, sacrificing movement speed to clear imposters, while navigating obstacles and upgrading abilities to survive increasingly difficult waves.
I worked on this game with my 7 year old son, and this is our first time ever building a game. We learned a ton about Godot and how to playtest game mechanics. We are excited to keep working on this game and make it awesome. I can’t wait for you to be able to buy the demo on Steam!
Inspiration
- Super Crate Box: The fast-paced, wave-based survival gameplay inspired OnlySpud’s structure of clearing imposter potatoes under time pressure. The need to collect items (crates/potatoes) while avoiding hazards shaped the core loop of collecting, eating, and managing resources.
- Vampire Survivors: The concept of upgrades between waves, enhancing player abilities, influenced the random upgrade selection system. The escalating difficulty and strategic choices inspired the balance of sacrificing fullness for progression.
- Portal: The first-person perspective and environmental interaction (pushing potatoes, navigating 3D space) draw from Portal’s puzzle-solving in a 3D environment, encouraging creative movement and object manipulation.
Player Experience
Players embody a guardian in a perpetual 3D arena, tasked with protecting the Holy Potato by eating imposter potatoes across multiple waves. Each wave spawns imposters that must be cleared before time runs out, requiring careful management of a Fullness meter that slows movement when full. Between waves, players choose one of three random upgrades (e.g., faster digestion, jetpack) to enhance their abilities. The experience is a mix of tense action, strategic resource management, and satisfying progression, with sacrifices (e.g., eating to slow movement) leading to strength via upgrades.
Platform
The game is developed for Windows PC.
Development Software
- Godot Engine 4.4.1: For programming and scene management.
- Audacity: For sound effects (e.g., eat_sound.wav, impact.wav).
Genre
Singleplayer, action, puzzle, survival.
Target Audience
Casual players seeking accessible yet challenging gameplay, and action-puzzle enthusiasts who enjoy strategic resource management and escalating difficulty. Aimed at ages 13+ for its simple controls and moderate complexity.
Concept
Gameplay Overview
Players control a first-person character in a 3D arena with a central Holy Potato. Imposter potatoes spawn in waves (5+ per wave, increasing with difficulty). Players must pick up (E), eat (F), or throw (G) imposters to clear them before the wave timer (60s, decreasing per wave) expires, while avoiding eating the Holy Potato (game over). A Fullness meter prevents players from eating too many potatoes and slows movement by 20% when full, requiring players to wait for regeneration or unlock/use alternate methods of destroying potatoes. Between waves, players select one of three random upgrades (e.g., Faster Digestion, Jetpack) to improve stats or gain abilities, sacrificing immediate mobility for long-term power.
Theme Interpretation (Only One)
There can be only one potato - the Holy Potato. All others must be destroyed.
Primary Mechanics
Mechanic | Description |
Movement | Players move using WASD, sprint with Shift (stamina-based), and jump with Space. Movement is restricted by a 20% speed penalty when the Fullness meter is maxed, requiring strategic timing. |
Pickup (E) | Collect up to 3 potatoes within a 2-unit radius, stacking them on the player’s camera. Picked-up potatoes are frozen and don’t collide, sacrificing inventory space for mobility. |
Eat (F) | Consume the top potato in the stack (1.5s cooldown), increasing Fullness by 25. Eating the Holy Potato ends the game; eating imposters clears them, sacrificing speed for progress. |
Throw (G) | Throw the top potato in a forward arc (10-unit impulse), restoring collision and allowing environmental interaction. Useful for clearing potatoes without eating, sacrificing inventory for tactical positioning. |
Push | Automatically push nearby potatoes (1-unit radius, 0.1 strength) when moving, triggering impact.wav (0.5s cooldown). Sacrifices precise control for area management. |
Secondary Mechanics
Mechanic | Description |
Fullness Meter | Tracks fullness . At max, imposes a 20% speed penalty, pulsing red in the UI. Players sacrifice mobility to clear potatoes, balanced by upgrades like Faster Digestion. |
Wave System | Waves spawn imposters with a timer. Players must clear all imposters before time runs out, sacrificing safety to collect them. |
Upgrades | After each wave, choose one of three random upgrades (e.g., Faster Digestion, Jetpack). One-time upgrades (e.g., abilities) are removed after selection; stackable upgrades (e.g., Bigger Stomach) persist. Sacrifices immediate action for long-term power. |
Upgrades
- Faster Digestion: Reduces fullness_delay_duration by 1s (stackable).
- Bigger Stomach: Increases max_fullness by 25 (stackable).
- Stronger Push: Increases potato_push_strength by 0.05 (stackable).
- Sprint Boost: Increases sprint_speed by 2 (stackable).
- Quick Eater: Reduces eat_cooldown_duration by 0.3s (stackable).
- Jetpack: Grants 2s flight (J key, 5s cooldown, one-time).
- Gun: Shoots projectiles to destroy potatoes (K key, 1s cooldown, one-time).
- Stomp: Pushes nearby potatoes (L key, 3s cooldown, one-time).
- Magnet Pull: Pulls potatoes within 5 units (M key, 5s cooldown, one-time).
- Super Jump: Increases jump_velocity by 2 (stackable).
- SO MANY MORE TO COME!
Art
Theme Interpretation
The game adopts a minimalist 3D art style with a limited color palette (white, gold, brown) to emphasize the Holy Potato’s sacredness and imposters’ neutrality. The Holy Potato glows with a gold OmniLight3D, contrasting with plain imposter potatoes, reinforcing the theme of distinguishing sacred from mundane through sacrifice.
Design
- Environment: A simple 3D arena (40x40 units) with a flat ground (StaticBody3D) and basic textures (white base, brown accents).
- Player: A first-person character with a camera, holding stacked potatoes (bobbing animation).
- Potatoes: 3D sphere models (RigidBody3D), with the Holy Potato glowing gold and imposters plain brown.
- UI: Pixelated style with high-contrast white text/buttons, red pulsing FullnessBar when full, and a SpudBar for imposter count.
Audio
Music
Currently unimplemented due to time constraints. Planned: Minimalist, retro-style synthesized tracks with soft reverb, using bass and subtle melodies to create a tense yet engaging atmosphere, complementing the survival-puzzle vibe.
Sound Effects
- eat_sound.wav: Crunching sound when eating a potato (F key).
- too_full.wav: Groan when attempting to eat at max fullness.
- throw.wav: Whoosh when throwing a potato (G key).
- impact.wav: Thud when potatoes collide or are pushed (0.5s cooldown).
- Planned (unimplemented): Pickup sound for E key.
Game Experience
UI
- FullnessBar: Progress bar showing fullness (0-100, red when full).
- SpudBar: Tracks imposter count (max 20, game over if reached).
- WaveTimer: Displays remaining wave time (60s, red when <10s).
- PotatoCounter: Shows “Potatoes Remaining: X” for wave progress.
- GameMessagePanel: Shows “Victory!” or “You Died” with upgrade menu (3 random options) or restart button.
- AbilityPanel: Shows eat button (F) when holding potatoes, with cooldown visualization.
Controls
- Keyboard:
- WASD: Move
- Shift: Sprint (stamina-based)
- Space: Jump
- E: Pickup
- F: Eat
- G: Throw
- J: Jetpack
- K: Shoot (Gun)
- L: Stomp
- M: Magnet Pull
- Esc: Pause
- Mouse: Look (captured mode, freed on pause/loss).
Development Timeline
Minimum Viable Product
# | Assignment | Type | Status | Finish By | Notes |
1 | Design Document | Other | Finished | July 31, 2025 | GDD for submission |
2 | Create potato and player assets | Art | Finished | June 20, 2025 | Thanks to GibsAndPieces for being a potato |
3 | Main menu | Coding | Finished | June 21, 2025 | Basic pause menu with resume/restart |
4 | UI | Coding | Finished | June 22, 2025 | FullnessBar, SpudBar, WaveTimer, PotatoCounter |
5 | Player movement | Coding | Finished | June 23, 2025 | WASD, sprint, jump, mouse look |
6 | Potato mechanics | Coding | Finished | June 24, 2025 | Pickup, eat, throw, push |
7 | Wave system | Coding | Finished | June 25, 2025 | Spawning, timer, win/lose conditions |
8 | Fullness meter | Coding | Finished | June 26, 2025 | 25 per eat, 1/s regen, 5s delay, speed penalty |
9 | Sound effects | Audio | Finished | June 27, 2025 | Eat, too full, throw, impact sounds |
10 | Upgrade system | Coding | Finished | July 20, 2025 | Modular upgrade system |
11 | Ability implementation | Coding | Partially Finished | July 25, 2025 | Broke the game! |
12 | Level design | Other | Finished | July 26, 2025 | Single arena with dynamic wave spawns |
13 | Polish | Other | Partially Finished | July 28, 2025 | UI animations, needs more effects |
14 | Submit | Other | In Progress | July 31, 2025 | Itch page upload |
Beyond (Unimplemented Due to Time Constraints and Not Knowing What we are Doing)
Assignment | Type | Status | Notes |
Hot/Evil Potatoes | Coding | Not Started | Damage-dealing or extra-fullness potatoes |
Music | Audio | Not Started | Retro-style tracks with reverb |
Pickup Sound | Audio | Not Started | Sound for E key pickup |
Extra Upgrades | Coding | Not Started | Additional stat or ability upgrades, goal of 100+ |
Settings Menu | Coding | Not Started | Volume, fullscreen toggle, resolution |
UX | Coding | Not Started | Add theming, logos, prettiness. |
Controls | Coding | Not Started | Add Controller support |

Leave a comment
Log in with itch.io to leave a comment.