Genre: First-Person Walking Simulator
Engines and Languages Used: Unity, C#
Development Time: 3+ Months
Team Size: 1
Primary Roles: Programmer, Writer, Artist (2D and 3D)
This is a Cleaning Simulator game based on a real-life experience of mine that I went through. It was my first big Unity project, and served as the basis for a lot of my projects going forward.
Pre-Production
This game was developed for an Intro to Game Development class. The main and only requirement for the project was to make a 3D game with 3D models in it, otherwise everything else is fair game. 
I was inspired by The Beginner's Guide by Davey Warden-in particular, a part in that game where you need to clean up a house that keeps getting messy. Analysis of that game aside, I decided to take that basic gameplay element and make it the main mechanic of my project.

I was also inspired by Metal Gear Solid - in particular, the first game on the PlayStation - when Snake is getting tortured and the player has to button mash over and over again to make sure his health bar stays up.
By making the scope small, I was able to create an intriguing game that would be relatively bug free yet engaging to interact with.
As for the story, I focused on the topic of personal loss and death. I usually like making stories about specific characters than more abstract feelings, so this was a real test of what I could do without the usual tropes I love to use.
Game Design
I wanted to do something that would be repetitious, but challenging/engaging. I recognized that, as a first project, I shouldn't do anything too mechanically deep, as that would require a lot of programming to make sure it worked right. I wanted to focus on one particular and simple gameplay mechanic and make sure it just worked well.

I settled on making a game about cleaning, something I tend to do when I'm stressed out. The gameplay mechanic is represented by a bar that starts out partially empty, and the player has to mash space bar to fill it up. At the same time, it keeps going lower and lower, and each item gets a lot harder to clean, thus the player has to mash more and more.

I think this helped captured the idea that cleaning is simple, but it can be agonizing when things get messy again. And, of course, the mechanic had to be fun too. I chose button mashing in the first piece because it is pretty satisfying to mash the space bar and see a bar get filled up, with some resistance from the game along the way.
For the level design, I took real life inspiration from a friend's dorm. The objects that need to be cleaned were based on stuff I find myself cleaning often at my own home. I took some liberties in how the dorm was represented by putting more walls, so that when the objects would get "messy" again, it would happen off the player's view. 

The objects circle in red are related to the game. Note the walls surrounding most of them, so that it obscures the view from the player.

A good solution solves multiple problem - I reused my 3D models as part of a small platforming challenge that appears near the end of the game.

Programming
The first thing I needed to create was a first person controller. A good controller is one that you barely notice what's going on under the hood, so to speak. Learning about these type of controllers was very interesting and showed me how meticulously coded. For example - knowing to put a limit to how far a player can move their mouse up so as to not rotate the camera too far was something I never considered beforehand.
To create the cleaning mechanic, I repurposed a health bar tutorial to better fit the gameplay mechanic I had in mind. 
The original tutorial used 2 functions that allowed for health to be subtracted and added. I reprogrammed it so that the subtracting function is always active when cleaning begins, and that the adding function was active when the player button mashed the space bar button.
As for how its all strung together, I did have a game object that would track which objects were done or not. It's not the most efficient code in the world, but it works.
For the dialogue, I used Brackey's tutorial on Text Boxes and repurposed that to be used in a 3D setting. I believe there was a bug that occurred if you cleaned up an object (which triggers new dialogue to play) while a dialogue was currently playing, hence why I added Bushy begging the player to listen to him first.

I recognize that for a bigger game, it could be a lot better of course. But hey- it worked for the purposes of the class.
Art
The requirements for the project was that the game had to have some 3D models in it. At the time, I had wanted to make this game purely 2D because that was what I was good at, but my grade was on the line, so...I decided to play a bit more into my weaknesses and combined them with my strengths.
I did this hybrid mix of 2D and 3D art. I used an Unity Asset that allowed me to make doodles in game, and then I would make 3D models of them in blender. This had some cool thematic purposes- "messy" objects would be in this doodle state, while "clean" objects were 3D models.
The hope was that the player would notice this and realize that, by extension, Bushy is "messy" because of the emotional problems he was dealing with.

The non-3D, messy looking sprite that appears on the game world indicates the object needs to be cleaned.

...And when cleaned, it turns into a 3D Model. I utilized my lack of experience in 3D Modeling to make something that's sort of unsettling.

Rather than try to hide how poor my 3D Models were, I pushed the unsettling factor a bit more using the lighting system.

The Future
I received praised for the way I handled the development of the game on top of the gameplay as well. I don't think I'd ever fully this concept ever again, as its a very personal project from a mindset I don't really have anymore. In a weird way, I'm sort of ashamed of making it very personal!
However, one of the most important lessons I learned from this game, at least in terms of telling a story, was to capture more of a universal feeling rather than one only I would feel alone. The spiritual successor of this game ended up being The Game With No Graphics, which not only improved on the story telling front, but the design front as well - all while having less code, funny enough.
Back to Top