A 2D horror themed task management & evasion game, with a unique window mechanic.

Use tools, navigate through an increasingly treacherous graveyard, while avoiding specters corrupting your screen. Operates as pop up draggable windows on your desktop.

8 person academic game team, created in a custom engine, shipped to Steam.

Watch the trailer below:


Project Overview:

The opening composition of Specter Inspector.

Creating a 2D side scroller in a custom engine. A challenging endeavor.

Scope:

Custom engine built by 5 programmers. Two semesters (about 30 weeks) of development time. About 13 minutes of gameplay. Three distinct modules of gameplay.

Team collaboration:

With 3 designers, and 5 programmers, we cohesively settled on the theme and concept for Specter Inspector very early in development. Us designers sorted ourselves into UX, tech design, and (for me) level design roles.

For the first half of development, programmers were building our custom engine from only a handful of libraries. This would take them roughly half of dev time to build the engine itself.

So while the tech team was figuring out how to make a rectangle render on screen, us designers were working together rapidly prototyping gameplay in Unity, that we hoped would one day have functionality in our engine…

Our team logo, featuring each developer depicted as cute ghosts!

Prototyping in Unity:

Once the concept of a draggable window that you see your character, and the game world through was implemented in Unity, level iteration and ideation began.

I started creating 2D tile maps, and iterating on enemy behavior, level pacing, and balancing encounter design. Some lessons were learned early on, while others took much more time and investment to make themselves known. More on this later…

Much of these early tile maps never saw the light of day in the final game, but watching players navigate through these spaces while contextualizing with our mechanics helped me define and narrow down the types of spaces that served our unique concept well!

Mazes and complicated route-finding led to player frustration, while linear but open and wide levels were easier to understand, and more compelling to navigate. Because the player can only ever see a small window of the game world, finding the right balance between involved route-finding, and branching paths, vs entirely linear design was one of my many challenges to solve.

A prototype experimenting with different window sizes & pop up windows.

Implementing levels in a custom engine:

Roughly 15 weeks from when the project started, was when the custom engine became ready for serious gameplay integration. Our programmers decided not to create editor tools in engine for us designers to use, and opted for a more direct route in regards to integrating gameplay into the custom engine.

Instead of building it all from scratch in engine based on the prototypes us designers had been creating, we had an illuminating thought:

Why should we build it all anew if we can instead just bring it over directly from Unity? We would serialize every UI piece, tile map, enemy, and game asset directly from Unity into our custom engine through Json files.

Our programmers had this in mind from the start, so the structure of our engine intentionally matched the component based system that Unity is built like. Serializing every asset was a tedious process, which mostly fell to the purview of our producer.

Unsurprisingly, serializing large chunks of tile maps from Unity to a custom engine did result in some friction. On my part, identifying broken geometry, tweaking collisions, consistently testing, and being in constant communication with the tech team helped us get these levels functional! Getting objects properly rotated was especially difficult to nail down, and even in the final build some of the tiles were never properly rotated.

The win state for Specter Inspector, captured from an early engine build.

Prototyping & ideation.

The fundamental mechanics of Specter Inspector didn’t change much through iteration, but behavior of our tools the player would use (the E.M.P & E.M.F devices), as well as the structure and flow of levels did go through many iterations.

An early Unity prototype for the view window & player movement.

The E.M.F device alerted players of nearby specters through visual and audio feedback, which remained mostly the same throughout development. The only substantial changes we made were to make the feedback more obvious and salient to the player.

The E.M.P device was previously a ‘Ghost Zapper’, that destroyed ghosts when used on them, however we wanted players to feel scared and inconsequential to the specters they faced. Instead, we opted for this device to stun specters, buying the player a moment to run away, or pass through the specter unharmed. We made this device operated through single use batteries found within the levels, that the player would have to manually load in order to use.

A prototype displaying the E.M.F, and an enemy for the player to overcome.

The structure of our levels originally was one long level with no checkpoints, which gradually got more difficult. However, this format led to player frustrations, a stressful experience, and uneven pacing. We wanted the player to feel tension, but not overtly stressed to the point of not enjoying the experience. We wanted the player to feel like they were playing a balanced cohesive experience with varying levels and engagement curves, not an unrewarding gauntlet.

To fix these pacing issues, I decided to separate the game into three distinct levels:

  1. Inspector Training – Movement & base game tutorial, 4 screens of levels.

2. E.M.F. Training – E.M.F tool usage & simple but progressively more difficult encounter design, 10 screens of levels.

3. E.M.P Training – E.M.P tool usage & more involved & thoughtful encounter design, climaxing in a challenging ending to the game.

This way to structure the flow of the game chunked our mechanics into individual, understandable sections of gameplay that allowed us to build tension and engagement in a cohesive manor.

View of a full level screen, as seen from the Unity editor.


My Roles:

Level Designer

My goal and primary responsibility as the level designer was to ensure that the mechanics, systems, and intended gameplay of Specter Inspector were all exceptionally showcased and emphasized within the spaces where gameplay occurred.

We programmed 3 varieties of enemies? Well, then they all need to be utilized in meaningful ways that highlights their differences. We created a tool that uses consumable batteries? Well, lets make finding the batteries engaging, and put the player in interesting spots when they need to stop and load them. I could go on…

That truly is one of my greatest joys in being a level designer. Being able to show off the fruits of my teammates labor, and spotlight systems, mechanics, and design through the level geometry.

Design Lead

Ensuring design cohesion & consistent progress was being made towards development was my primary responsibility as a design lead. This meant:

  • Ensuring our designers had relevant and impactful tasks to complete.
  • The overall direction of game design aligned with our game pillars.
  • Working with the tech team to realize and match prototype gameplay into our engine.
  • Support my fellow designers and teammates.

Because of the small size of our team, a number of other game design responsibilities fell to me. Such as:

  • Conducting frequent participant observation playtesting, generating user research reports based on feedback.
  • Creating the original soundtrack for the game. Three tracks were created, one for the main menu, one for gameplay, and the other for a now scrapped final boss, that now serves as the trailer music! Listen to the OST below:

Polishing & Publishing:

Polish & Steam release

The Timeline:

After Specter Inspector was officially submitted in an academic capacity, development stopped entirely. The team took about a year away from Specter Inspector to work on another academic project called Barton (which you can read more about in my projects page!). Knowing the potential Specter Inspector had, and not wanting to squander it, I rallied a few of our most dedicated teammates behind me, and we spent the summer of 2025 paving the way for a Steam release.

Final Touches:

We integrated the main menu, a few UI changes, and fixed a few minor bugs. The temptation to revisit my tile maps was certainly there, and there are changes I still wish I could have made to this day. But given the limited time and capacity we had, i deemed doing any additional level polish too risky, and settled for what we had.

Release:

Then it was only a matter of creating all the required Steam assets, content for the store page, and library page. Creating the trailer, and all of these assets fell to me. Tasks which I happily completed. And soon enough, Specter Inspector released to the world on August 15th, 2025.


Play Specter Inspector for yourself on Steam here:

https://store.steampowered.com/app/3912380/Specter_Inspector/

Below is a full gameplay video of Specter Inspector. Check out the level spaces I created, and see what the experience is like: