JUL 2, 1993

Miaw Cooks

A top-down kitchen game built as a study in clean architecture. I wired event-driven input with rebindable controls, a polymorphic counter hierarchy behind a shared interface, ScriptableObject recipes, and two state machines driving the cooking and the match itself.

Playable Open the WebGL tab to play it in your browser.

Miaw Cooks
EngineUnity
LanguageC#
InputNew Input System
DataScriptableObjects
PatternFSM + OOP
ArchitectureEvent-Driven
Systems Built
  1. 01
    Input Event-Driven, Rebindable Input

    Built an input layer on Unity's New Input System that rebroadcasts intent as C# events (OnInteractAction, OnInteractAlternateAction), and added full interactive rebinding for keyboard and gamepad, persisted to PlayerPrefs as JSON. Gameplay subscribes to intent instead of polling keys. GameInput.cs

  2. 02
    OOP Counter Inheritance Hierarchy

    Designed a BaseCounter with virtual Interact and InteractAlternate, then subclassed the clear, cutting, stove, container, plates, delivery, and trash counters so new stations drop in through polymorphism - the player calls the base method and the override handles the rest. BaseCounter.cs

  3. 03
    Interface Shared Carry Contract

    Implemented an IKitchenObjectParent interface on both the player and every counter, so a held item is parented, queried, cleared, and transferred through one contract no matter who holds it - the item never needs to know whether its parent is a player or a benchtop. KitchenObject.cs

  4. 04
    State Machine Stove Cooking FSM

    Programmed the stove as a finite state machine - Idle → Frying → Fried → Burned - that advances on per-recipe timers and raises OnStateChanged and OnProgressChanged events, exposing progress to the UI through an IHasProgress interface so the bar code stays decoupled. StoveCounter.cs

  5. 05
    Data ScriptableObject Recipes

    Drove cutting, frying, and burning from ScriptableObject recipe assets pairing input, output, and timing, so designers add or rebalance recipes in the Inspector with zero code changes. CuttingRecipeSO.cs

  6. 06
    Systems Order & Game-State Managers

    Built a DeliveryManager that spawns timed orders and validates a delivered plate by comparing ingredient sets, and a KitchenGameManager that runs the match as a state machine - waiting → countdown → playing → over - with pause handled through Time.timeScale. DeliveryManager.cs · KitchenGameManager.cs