Portfolio case study
Restaurant Defender
A Godot kitchen-defense game where you build and operate food stations, serve customers, and protect the restaurant from burglars.
Project status
Restaurant Defender is in development. The root Godot project exposes single-player, local split-screen, native LAN, and online-room paths. This page is based on static source review; I did not run the game or verify an export or multiplayer session. The game and room service have not been publicly deployed.
Engineering problem
The game combines kitchen management, customer service, and defense in a grid-based restaurant. The networking design also has to support browsers, which cannot use the project's native ENet-over-UDP transport, without duplicating the Godot gameplay implementation.
My role
I created and developed Restaurant Defender end to end, including the Godot game, Web export, Node.js room service, and multiplayer integration.
Implementation
- The active gameplay scene wires together the player, grid and kitchen layout, stations, customers, burglars, inventory, match and shift managers, maintenance, HUD, and multiplayer state.
- Players collect ingredients, stock stations, collect cooked servings, and deliver orders matching each customer's requested station type. Stations can be built, removed, upgraded, repaired, and maintained; their defense components fire food shots at approaching burglars.
- Procedural kitchen setup supports selectable size and difficulty, custom dimensions, and an open-kitchen option. The menu exposes Rounds, Timed, and Endless modes, as well as a separate tutorial route.
- Local play includes split-screen support. Native LAN and Direct IP paths use ENet over UDP; online rooms use a Node.js JSON WebSocket room relay.
- The host client runs the world simulation and sends snapshots to clients. The network state covers players, stations, customers, burglars, food shots, spills, doors, inventory, match time, and shift status.
Engineering trade-off
Separating session transport from the Godot gameplay lets local, native LAN, and WebSocket-room play share the same game systems. The host client runs the simulation while the room service relays messages and keeps room state in memory, so online matches depend on the host remaining connected and the relay does not simulate the game.
Engineering outcome
I've brought the restaurant loop and multiplayer plumbing together in one Godot project. The host runs the match; other players send actions and receive world snapshots through ENet or the WebSocket room relay. The relay passes messages but doesn't run the game simulation.
Current scope
Right now, I'm building one Godot game with three modes, configurable kitchen layouts, and tutorial, single-player, split-screen, LAN, and online-room routes. The game and room service aren't publicly deployed yet.
Public access
The source repository is private, and the Web game and room service are not publicly deployed. No public demo link is available yet.
Back to projects