[Nostalgia] I Want to Make a Soba-Eating Game [Hobby] — Part 6
Recap so far
I’m making a game where you eat soba.
- Part 1: Project kickoff; drafted the specs
- Part 2: Built a web prototype using only rectangles
- Part 3: Implemented images and it finally felt like a game
- Part 4: Worked out character settings
- Part 5: Implemented smartphone support
This entry
After playing the prototype, I decided to overhaul the game system.
The current “clear by eating 5 bowls of soba” is too monotonous, so I’m switching to a system with more strategy.
New game system
Two-gauge system
Split the gauges into two.
| Gauge | Increase Condition | Description |
|---|---|---|
| Fullness Gauge | All foods | Goes up no matter what you eat. When it hits MAX, the game ends |
| Soba Satisfaction Gauge | Soba only | Increases only when you eat soba. Used to judge a clear |
End conditions
| Condition | Result |
|---|---|
| Time over + Soba Satisfaction not MAX | Fail |
| Soba Satisfaction MAX within time | Clear (ends immediately) |
| Fullness MAX | Game ends (clear judged by Soba Satisfaction at that moment) |
In short, you clear if you max out the Soba Satisfaction gauge before getting full, or within the time limit.
Strategy
- Eating anything other than soba only raises fullness and puts you at a disadvantage
- Decide whether to wait for soba to appear or take the risk and eat something else
- Large and Extra-Large bowls are efficient but take longer to eat (easier for enemies to interfere)
Seating system (new)
Right now you eat at the counter, but at a typical soba shop you eat at a table, right?
So I’m introducing a seating system.
Basic rules
- Pick up the food at the counter
- Carry it to the designated table (seat)
- Eat at the table
Seat rules by stage
| Stage | Seating Rules | Difficulty |
|---|---|---|
| Early (1–3) | You can eat at any table | Easy |
| Mid (4–7) | One is designated from multiple tables | Medium |
| Late (8–10) | Only one specific table is designated | Hard |
As you reach the later stages, you’ll more often be told “Eat at this table!”, so your routes get restricted and the difficulty goes up.
Behavior while carrying
- You move at normal speed even while carrying food
- Colliding with an enemy makes you drop the food
- Dropped food is collected by the shop owner (he comes to pick it up with a sad face)
- After you drop food, wait until the next item appears
Dropping a hard-won plate hurts. Plotting routes that avoid enemies becomes important.
Stage system
There will be 10 stages with an unlock system.
Basics
- 10 stages in total
- Unlock system: Clear Stage 1 → Stage 2 unlocks…
- After clearing: You can select any stage
- Save: Progress is saved to localStorage
What changes by stage
Enemies:
- Spawn frequency increases
- Move faster
- Max simultaneous spawns increase
Food:
- Higher chance of non-soba items
- Shorter lifetime (disappears sooner)
Seating:
- The tables you can eat at become restricted
Gauges:
- Fullness MAX value (tuned per stage)
- Soba Satisfaction MAX value (tuned per stage)
Sample stage parameters (tentative)
| Stage | Time | Enemy Speed | Enemies | Soba Rate | Despawn | Seats | Fullness MAX | Soba Satisfaction MAX |
|---|---|---|---|---|---|---|---|---|
| 1 | 60s | 1.0-2.0 | 4 | 70% | 3s | All | 15 | 5 |
| 2 | 60s | 1.0-2.0 | 4 | 65% | 3s | All | 15 | 6 |
| 3 | 55s | 1.2-2.2 | 4 | 60% | 3s | All | 14 | 6 |
| 4 | 55s | 1.2-2.3 | 5 | 55% | 2.5s | 2 choices | 14 | 7 |
| 5 | 55s | 1.3-2.4 | 5 | 50% | 2.5s | 2 choices | 13 | 7 |
| 6 | 50s | 1.3-2.5 | 5 | 50% | 2.5s | 2 choices | 13 | 8 |
| 7 | 50s | 1.4-2.6 | 6 | 45% | 2s | 2 choices | 12 | 8 |
| 8 | 50s | 1.5-2.7 | 6 | 45% | 2s | 1 choice | 12 | 9 |
| 9 | 45s | 1.5-2.8 | 6 | 40% | 2s | 1 choice | 11 | 9 |
| 10 | 45s | 1.6-3.0 | 7 | 35% | 1.5s | 1 choice | 10 | 10 |
I’ll tune the numbers after actually playing.
UI changes
New UI elements
- Fullness Gauge: A belly-shaped indicator with a gradual-inflation effect
- Soba Satisfaction Gauge: Shows the target value required to clear
- NEXT preview: A preview of the next food to appear (Tetris/Puyo Puyo style)
- Clock effect: Shows the time limit as a clock like “until 1 PM” (starts at 12:00 → time up at 13:00)
- Seat designation: Highlights the specified table
- Stage select screen: Shows unlock status
Food parameters
| ID | Name | Counts as Soba | Eat Time | Fullness + | Soba Satisfaction + |
|---|---|---|---|---|---|
| soba_nami | Soba (Regular) | Yes | 1000ms | 1 | 1 |
| soba_omori | Soba (Large) | Yes | 2000ms | 2 | 2 |
| soba_tokumori | Soba (Extra-Large) | Yes | 3000ms | 3 | 3 |
| udon | Udon | No | 2000ms | 2 | 0 |
| ramen | Ramen | No | 2500ms | 3 | 0 |
| napolitan | Napolitan | No | 2500ms | 3 | 0 |
Player states
| State | Description |
|---|---|
| normal | Normal (empty-handed) |
| carrying | Carrying food (new) |
| eating | Eating |
| stunned | Stunned (enemy collision) |
| success | Finished eating |
| throwing | Throwing away |
Shop owner states
| State | Description |
|---|---|
| idle | Idle |
| moving | Moving |
| serving | Serving |
| collecting | Collecting dropped food (new) |
Additional art needed
Player — carrying (6 images):
- player_carrying_front_stand.png
- player_carrying_front_walk1.png
- player_carrying_front_walk2.png
- player_carrying_back_stand.png
- player_carrying_back_walk1.png
- player_carrying_back_walk2.png
Implementation to-do
Required (New Game System)
- Implement Fullness Gauge
- Implement Soba Satisfaction Gauge
- Change end/clear conditions
- Belly indicator UI
- NEXT preview UI
- Clock effect UI
Required (Seating System)
- Carrying mechanic
- Show designated table
- Enemy collision while carrying → drop food
- Shop owner’s food collection behavior
- Player carrying sprites
Required (Stage System)
- Stage select screen
- Unlock system
- Per-stage parameter changes
- Stage clear effects
- localStorage save/load
Consider later
- Sound/BGM
- High score feature
Next time
I plan to proceed with implementation based on these specs.
First I want to add the seating and gauge systems and get one stage working.