← Back to projects
2nd-Year University Project · 2018

Plucky

Plucky is a VR puzzle game about chaperoning AI bots through a level towards the exit: players reshape the terrain by placing blocks to build safe paths across hazards the bots can't cross on their own. I built the entire project solo over four months as my 2nd-year university portfolio piece.

  • C#
  • Unity
  • VRTK
  • Odin
  • DOTween
  • Blender

The Project

Everything in Plucky was built by me alone within four months, bar the skybox, which I sourced from the Unity Asset Store rather than spend time on something purely cosmetic. The core loop is simple to explain and genuinely tricky to solve: a bot walks itself toward the level exit, but the ground in front of it isn't always safe, so the player reaches into the world in VR and drops blocks to build a path: bridging gaps, covering hazards, steering the bot around obstacles it can't handle on its own.


Terrain & the Block System

Blocks are built from a combination of Prefabs and ScriptableObjects, sharing an abstract base class so every block type (safe ground, bridges, hazards) plugs into the same placement and validation logic without the level or the player needing to know which concrete type it's holding. A singleton LevelManager owns loading levels at runtime, keeping level setup and teardown in one place rather than scattered across the scene.


Bot AI

The bots move using a switch-case statement over the blocks adjacent to them, a rudimentary finite state machine that decides the bot's next step from what's around it, rather than anything path-planned or predictive. It works, and it's simple to extend with new block types, but I'd be the first to admit the readability suffers for it: without documentation explaining what each case actually handles, it's not an easy piece of code to pick back up, and it's the part of the project I'd most want to refactor if I returned to it.


Planning & Testing

Planning wasn't something I put enough effort into early on, and it cost me time I didn't need to lose. Picking up HacknPlan partway through the project made a real difference, by the end I was using it to track tasks properly instead of working from memory. I also kept a weekly test sheet covering every feature in the game, checking off what still worked as new systems landed on top of old ones, which caught regressions long before they'd have shown up in a final playtest.


Evaluation

Overall the game came out fantastic for a solo four-month build. There are a handful of minor bugs still in there, and testing never really extended past the HTC Vive I had on hand at the time, so behaviour on other headsets is untested. Development stopped when I lost access to my VR equipment, which is also why some of those bugs never got chased down.


A playable build and the full source are both up on GitHub, grab the build directly if you just want to try it in VR.

← Back to projects