iGaming lab
client experiment

Mini Maze

Canvas · deterministic loop
Interactive client experimentNext Standalone
Loading Mini Maze runtime…
engineering.case-study

Inside the Mini Maze system boundary.

What the player experiences, what the implementation actually owns, and where production responsibilities would begin.

01

Game background

A maze is a deterministic navigation puzzle: reach a goal while respecting a fixed set of walls. This demo is included as a client-engineering boundary rather than a wagering game, focusing on rendering, input normalization, and collision behavior.

02

How the game works

  1. Move the player with keyboard, touch, or on-screen controls.
  2. Each requested step is checked against the fixed collision map.
  3. Valid moves update the canvas and counters; blocked moves leave position unchanged.
  4. Reaching the goal completes the local run.
03

Backend architecture

The entire loop runs in the browser with PixiJS. Input, player position, collision checks, elapsed time, and completion state are local; there is deliberately no backend or RNG boundary.

InputPixiJS loopCollision mapGoal stateUI feedback
04

System boundaries

Input Adapter
Keyboard, touch, and button commands.
PixiJS Loop
Rendering and frame updates.
Collision Map
Which deterministic moves are valid.
Goal State
Completion and local feedback.
05

Critical engineering decisions

  • Use a fixed maze so behavior is repeatable.
  • Normalize multiple input methods into the same movement command.
  • Check the next bounding box before mutating position.
  • Keep this client-only to make its trust boundary explicit.
06

Failure handling

  • Unsupported input does not mutate state.
  • A blocked move is ignored rather than clipping through a wall.
  • Refreshing the page resets the run because no persistence is promised.
  • There is no server reconnect or reconciliation path because no authoritative backend state exists.
07

Fairness / RNG

No RNG is used. The map, movement step, collisions, and goal are deterministic.

08

Conceptual data model

MazeState- playerX- playerY- moves- elapsedTime- completed
CollisionMap- walls- bounds- goal