Pattern Recognition: Failed
This project is a first-person exploration game built in Unity with C#, centered around a "scanning" mechanic where a malfunctioning robot must interpret everyday objects and those interpretations evolve the longer you interact with them.
Github: pattern-recognition-failed-repo
Features
- Scan & Interpret System — Objects must be scanned before they can be interacted with. Scanning triggers a robot-voice interpretation that gets logged to a scan journal the player can review at any time.
- Evolving Descriptions — Some objects unlock new interpretations through continued interaction (hold a Lego long enough, sink enough baskets with the basketball) and the robot's understanding shifts. Players are notified and prompted to re-check the scan log.
- Pick-up & Throw Mechanics — Holdable objects (Lego bricks, a basketball, a data chip) float in front of the player and respond to input. The basketball can be thrown; the chip can be slotted into a panel.
- Timed Puzzle Loop — The main objective involves synthesising a data chip and uploading it to a control panel, each with real-time countdowns displayed in the HUD.
- Reactive UI — A slide-in banner system delivers contextual updates (new interpretations, upload progress, narrative beats). A scan log menu shows the robot's current understanding of each scanned object.
What I Learned
- Interactable architecture — An abstract
Interactablebase class handles scanning, focus/outline states, and the interact pipeline. Subclasses (Lego,Basketball,ChipSynthesiser, etc.) override only what they need, keeping behaviour isolated and composable. - State-driven coroutines — Multi-stage timed processes (synthesis, upload) run as coroutines with an enum state machine, preventing double-triggers and updating the UI each frame while active.
- Input routing & held-object logic —
PlayerInteractionmanages what happens when the player presses interact depending on what they're holding and what they're looking at — including special-cased interactions like inserting a chip into a panel. - Static shared state — Objects like
Blockuse static flags and a shared instance list so scanning one block transforms all of them simultaneously, without a central manager needing to track them.
| Status | Prototype |
| Platforms | HTML5 |
| Author | Scraps |
| Genre | Simulation |
| Made with | Unity |
| Tags | Abstract, Experimental, Sandbox, Short, weird |
| Content | No generative AI was used |

Leave a comment
Log in with itch.io to leave a comment.