James Liu

Team-built mobile arcade game

CoffeeTime

A retro delivery game that combines touch interactions and device tilt with the pace of a classic arcade chase.

Top-down mobile gameplay from CoffeeTime
Focus

Mobile input & arcade gameplay

Tools & methods

Unity · C# · Input System · Gyroscope

Project

Team-built mobile arcade game

Deliver coffee, score points, avoid the bosses.

I was one of two engineers on this Unity mobile game. Coffee is both the delivery objective and a limited defensive resource.

Arcade delivery loopKeep the coffee moving
  1. CollectPick up coffee
  2. NavigateAvoid the bossesChoose a route through the office
  3. DeliverReach a coworkerEarn points
Collect the next coffee and keep the run going
Gameplay capture · 24 seconds · silent. Tilt-driven movement, office hazards, and the coffee-delivery loop.
Portrait mobile gameplay from CoffeeTime with score, health, and office maze
The office maze, delivery targets, score, and remaining health share one compact screen.
CoffeeTime game-over screen after the player is fired
Failure resolves quickly and clearly into a restartable arcade loop.
Implementation details

I was one of two engineers on this team project, credited alongside Dallin Frank. CoffeeTime combines mobile control, enemy interactions, and a compact delivery loop in Unity.

CoffeeTime reframes a retro maze-game structure around an office. The player collects and delivers coffee to coworkers while evading bosses who can end the run.

The compact premise keeps the rules immediately readable while leaving room for score routing, risk management, and input mechanics designed specifically for mobile play.

One interaction path supports both desktop testing and mobile play.

A shared pointer path supports touch play and mouse-based testing. A successful tap trades carried coffee for a brief enemy stall.

Touch interactionA tap trades coffee for breathing room
InputTap / clickActive pointer position
World spaceFind the targetScreen conversion + 2D overlap
If carrying coffeeStall the enemyConsume the coffee
Implementation details

Unity's input system identifies the active pointer, converts screen coordinates into world space, and performs a 2D overlap check. Tapping an enemy while carrying coffee consumes the item and briefly stalls the threat.

  • Pointer abstraction keeps mouse-based iteration available
  • World-space overlap makes tap targets part of gameplay logic
  • Coffee doubles as an objective and a limited defensive resource

Physical device tilt becomes an arcade control surface.

Calibrated motion input turns device tilt into a tunable movement vector.

Motion controlsTilt the phone. Move through the office.
DeviceMotion sensorsGyroscope · attitude · gravity
CalibrationMap the tiltBuild a movement vector
TuningScale each axisAdjust controller feel
GameMove the player
Implementation details

Gyroscope, attitude, and gravity sensors feed a calibrated movement vector. The system maps real-world device rotation into responsive movement and applies axis-specific scaling so the feel can be tuned without changing the core controller.

Next projectPolyGone