Sheety Game: Boilerplates can be fun
Game design breakdown of my game "Sheety Game"
Prompt
Architecture is hard. A friend who was studying it at the time made sure I understood this, through many ardent complaints about “completing sheets”. So, when their birthday came close, I wondered if I could inject some fun into those sheets.
“What if architecture sheets came alive? And had a full lore to them?”
Concept
The idea was simple: A standard top-down shooter boilerplate, but it’s played on a floor plan and everything is squished into flat 2D. Since it’s a shooter, it’ll obviously need to have enemies, and ammo and health pickups. The game should have multiple levels, each level being a different floor plan. And every level needed to have a concrete goal to be accomplished. From here, the main game loop arose quite easily.
Core Loop
For every level, collect all the collectibles strewn around the floor plan. The collectibles are sheets themselves, as a meta reference. Some sheets may be protected by guards or behind locked doors. Shoot guards, unlock doors, find sheets and get out. For a clean loop, player spawns at a “staircase” section in each level and needs to return here to progress to the next level.
Design and Development
I was enthusiastic about the idea, particularly because it was going to be a birthday gift. For ease of use, I chose Android as the platform. With that, however, I needed to make some key design decisions about the controls. I wanted to keep it as simple as possible, with as few buttons as possible.
Since it’s a top-down level, movement could be “tap-to-go”; tap anywhere on the level to move there. Next, a “shoot” button. I wasn’t a fan of joystick control on mobile to orient the gun, so the decision was made to auto-aim the gun to the nearest enemy. This way, the player could keep shooting without worrying about aiming. Lastly, an “interact” button to open doors etc.
I started with Unreal Engine’s top down template as it came with touch-based movement and navmesh. For the levels, I drew up a bunch of floor plans in Krita, and imported them into Unreal. Next, I manually placed collision boxes along the walls to shape the navmesh. With the levels ready, I created a player blueprint with a flat mesh and a simple texture, and reused this template for the enemies. For decor, I made them stamp coloured decal trails.
To stay true to the shooter boilerplate, the game needed different kinds of enemies to keep the gameplay fresh. I came up with three types of enemies:
Static: These stay in place and shoot.
Movable: These pursue the player and shoot.
Treasurer: These drop a collectible on death, like a key or a sheet. Can be static or movable.
Along with enemies, I also needed to add collectibles, like ammo, health, sheets, keys etc. I created a single parent collectible blueprint and made child blueprints for each of the individual types.
Advanced Mechanics (aka Feeling Ambitious)
I was having fun playtesting the game so far and thought, “let’s crank it up a bit.”
Sneak Takedown
Since the game is set on a paper world, damage to you (and enemies) shows up as flakes flying off from the body, as if rubbed off by an eraser. You become fainter and fainter, which led to the idea of being near-invisible when you’re close to death. In such a state, it’s harder for enemies to detect you (but not impossible) and you can sneak up behind them. When you do, the usual “shoot” button changes to “takedown” which is a one-shot kill. However, if you end up in front of them, they can still detect you.
Long Actions
Getting those sheets was a bit too easy. Let’s make the player rummage through drawers or unlock safes to get them. Long actions mean you need to stay put for the action to complete, as denoted by a handy floating progress. If you move, it resets. Adds a little time crunch element if you’re being shot at.
Lasers, Because Why Not?
For another layer of threat, along with dodging bullets, now dodge these lasers. All lasers come with accompanying buttons to temporarily turn them off, and after a cooldown, they turn back on. However, you can make enemies chase you into the lasers, insta-killing them.
Lost to Time
This is all I could complete in time for my friend’s birthday. It is a rewarding feeling to see your audience have fun with a game you strived to make fun.
One of the features I had to discard in the interest of time was “the third dimension.” The player would eventually receive a power that enabled them to “rise” above the paper and avoid enemies stuck on the 2D plane. To balance this, advanced enemies would be aware of the third dimension and shoot/pursue the player there. Another cut feature was background lore of an evil villain who has stolen your sheets, and you’re making your way through their building, floor by floor, to get back what’s yours.
Unfortunately, these weren’t the only things lost to time. Since the game was supposed to be a quick and dirty project for the birthday, source control wasn’t at the top of my mind. Something that, as you can predict, came back to bite me. Nearly three years later, my laptop got stolen, and all my work with it. By this time, I had started using Git religiously, so the newer projects were backed up. But, oof, not Sheety Game. I wish I had any backups of it; the only things I could find are old videos and a broken apk.
As creators, the way we handle our work is as important as the work itself. For some, it’s managing multiple projects while keeping a cool head. For others, it’s making regular backups of their projects. Now, for any project big or small, my first step is setting up a Github or Bitbucket for it. All hail the cloud!
In any case, working on this game taught me a lot about fun mechanics and time management. It’s still my favourite lost project! If you’re interested, here’s the full video that has supplied all the GIFs in this article. (Ignore the awkward music.) And let me know what you think in the comments!









