A challenging micro Metroidvania platformer
Guide Roboy through the factory, collect upgrades and scrap, rescue Prize,
and confront the factory owner, Rob Robotson.
Note
Unfinished. Roboy is a playable alpha, and development has been on hold since 2023, with plans to pick it back up. What's below is what works today.
- Four upgrades that change how you move
- Mover: sprint
- Grappler: wall jumps
- Battery: higher jumps
- Rocket
- 50+ pieces of scrap to find across three areas
- Place your own spawn point mid-level, with zones where you can't
- New Game+ carries your upgrades into the next run
- Speedrun timer tracks your fastest and total time, plus a death counter
- Controller support: keyboard, Xbox, PlayStation, and generic gamepads (an analog stick plays best)
| Name | Role |
|---|---|
| Clint Wagoner | Programming, Music & Sound, Character & Game Design |
| Jason Stark | Sprite Art |
A Red Rook Interactive game.
- Engine: Unity 2020.3.28f1 (LTS), C#
- Physics: 2D
Rigidbody2D, with raycast-based ground and wall detection - Animation: Unity Animator state machines for the player and enemies
- Builds: WebGL, Windows, macOS
All gameplay code lives in Assets/, hand-written in C#.
| Area | Scripts | What they do |
|---|---|---|
| Player | PlayerController PlayerGrounded PlayerHealth PlayerAnimation |
Movement, jump charge economy, spawn-point placement, death and respawn, three-ray ground check, wall detection |
| Upgrades | ComponentMover ComponentGrappler ComponentBattery ComponentRocket ItemManager |
Pickups that unlock abilities and manage the charge meter |
| Items | BasicItemSmallCharge BasicItemLargeCharge BasicItemOverCharge Scrap |
Charge refills, the temporary overcharge state, collectibles |
| World | Piston PistonSide DoorButton MainDoor Portal SpawnPoint |
Hazards, doors, and level flow |
| Enemies | ArmorBot DozerController |
Enemy behavior |
| Game State | GameManager GameData |
Upgrades, scrap, deaths, and times held in a static class for the session, so they carry across scenes and into New Game+ (nothing is saved to disk) |
| UI | TimerController ScrapCounter HoverText Pause + more |
HUD, speedrun timer, tutorial prompts, pause screen |
| Audio | AudioManager Music Sound |
Music and sound effect playback |
An early project, and the code shows it:
PlayerControllerhandles input, movement, death, respawn, and debug tools in one class. It would be split up today.- Many fields are
publicwhere[SerializeField] privateis the better choice. - Systems find each other with
FindObjectOfTypeat startup, and health is polled every frame instead of raised as an event. - Animation states and tags are string literals, so a typo fails silently.
- Install Unity 2020.3.28f1 through Unity Hub.
- Clone this repo and open the folder in Unity Hub.
- Open
01-StartfromAssets/`Scenesand press Play.
Note
The scenes folder name starts with a backtick so it sorts first. Scene order is set in File → Build Settings. A controller is recommended.
Development ran from early 2022 into 2023, and the project has been on hold since, with more planned. It used Unity Version Control (Plastic SCM). This repository was created afterward, so its commit history doesn't reflect that work. Devlogs covering development are on the itch.io page.
© 2022–2023 Red Rook Interactive. All rights reserved.