Doujin & Games

[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

Soba-Eating Game Prototype 03

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.

GaugeIncrease ConditionDescription
Fullness GaugeAll foodsGoes up no matter what you eat. When it hits MAX, the game ends
Soba Satisfaction GaugeSoba onlyIncreases only when you eat soba. Used to judge a clear

End conditions

ConditionResult
Time over + Soba Satisfaction not MAXFail
Soba Satisfaction MAX within timeClear (ends immediately)
Fullness MAXGame 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

  1. Pick up the food at the counter
  2. Carry it to the designated table (seat)
  3. Eat at the table

Seat rules by stage

StageSeating RulesDifficulty
Early (1–3)You can eat at any tableEasy
Mid (4–7)One is designated from multiple tablesMedium
Late (8–10)Only one specific table is designatedHard

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)

StageTimeEnemy SpeedEnemiesSoba RateDespawnSeatsFullness MAXSoba Satisfaction MAX
160s1.0-2.0470%3sAll155
260s1.0-2.0465%3sAll156
355s1.2-2.2460%3sAll146
455s1.2-2.3555%2.5s2 choices147
555s1.3-2.4550%2.5s2 choices137
650s1.3-2.5550%2.5s2 choices138
750s1.4-2.6645%2s2 choices128
850s1.5-2.7645%2s1 choice129
945s1.5-2.8640%2s1 choice119
1045s1.6-3.0735%1.5s1 choice1010

I’ll tune the numbers after actually playing.


UI changes

New UI elements

  1. Fullness Gauge: A belly-shaped indicator with a gradual-inflation effect
  2. Soba Satisfaction Gauge: Shows the target value required to clear
  3. NEXT preview: A preview of the next food to appear (Tetris/Puyo Puyo style)
  4. Clock effect: Shows the time limit as a clock like “until 1 PM” (starts at 12:00 → time up at 13:00)
  5. Seat designation: Highlights the specified table
  6. Stage select screen: Shows unlock status

Food parameters

IDNameCounts as SobaEat TimeFullness +Soba Satisfaction +
soba_namiSoba (Regular)Yes1000ms11
soba_omoriSoba (Large)Yes2000ms22
soba_tokumoriSoba (Extra-Large)Yes3000ms33
udonUdonNo2000ms20
ramenRamenNo2500ms30
napolitanNapolitanNo2500ms30

Player states

StateDescription
normalNormal (empty-handed)
carryingCarrying food (new)
eatingEating
stunnedStunned (enemy collision)
successFinished eating
throwingThrowing away

Shop owner states

StateDescription
idleIdle
movingMoving
servingServing
collectingCollecting 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.