It was exactly one year ago today that our team released The Rat Boy into "public alpha" (a rather optimistic way of putting it) for our graduation project for my game design degree.
I say it was optimistic because the game was far from finished. It was more of a prototype to be honest. I worked on it for another month or two after I graduated, but one night I came to a realization. The assets we made for the game were made almost entirely in the student version of Maya, and as a result, none of them could be used commertially, so no matter what I did, I couldn't sell the game in it's current state, and I would have to inevitably rebuild the entire game with new models before I could sell it. So at that point I put the game into what I call an " extended hiatus" and moved onto my current projects.
So what went well on this project? Despite what the final product looks like, I'd say many things.
First off, I think everyone in the class got lucky to be matched up together. It started as a class of 4 people, then 5, then 3 (technically). As anyone who has ever gone to Montgomery County Community College knows, especially if you attended their game design program, the herd thins out quickly. When a class starts, especially one of the basic classes like the first game design class, you start with maybe 25-30 people. By the end, you are usually left with about half of that number statistically, but usually less in the game classes.
As you move further on in the program, the number of students gets smaller and smaller. By the time you get to the 4th and 5th game classes, which are basically the same class because it's a 2 part capstone course, only the best and most dedicated have made it.
When Game 4 started, it had 4 students including myself. About a week into the course, another joined, bringing the number to 5
Luckily for us, the class couldn't have possibly been better rounded out for the task of making a game. We had a designer, a few programmers, and an artist. we had basically everything we needed to make a good game. And if you've seen final projects from previous years like I have, you know that not every project is so lucky. Either the game has a bunch of programmers and someone on the team who can design, but the art is a mess with glitched out textures, or you have a good artist and some good programmers, but theres no actual gameplay because no one has any design sense.
If your team doesn't have at least one of everything like we had, you end up with some critical deficiency.
At the beginning of the class, we all had to come up with a proposal for what kind of game the team would make. I had an idea for a game I did previously in one of the other game classes, except adapting it to be bigger. I've been toying with and tweaking this idea for years, and just put it out there in a reletively disasterous presentation where my powerpoint completely fell apart. Despite that, people thought the idea was cool, with a core mechanic of using seemingly random objects in the enviornment as tools and weapons.
Laurence presented a MOBA, which....was pretty unrealistic given our resources. But the thing you need to know about Laurence is he is more than likely the best programmer I've ever met. He just has such a natural aptitude towards this sort of thing, I always say he has a mind of metal and wheels. Watching him program is what it must have been like to watch Mozart conduct music or watching Leonardo Di Vinci paint. So if he had the right direction, I'm sure he could probably figure out a MOBA by himself. I feel like one day he will be the second coming of Satori Iwata.
The only thing that matches his programming talent is possibly his tenacity and dedication. He actually wasn't enroled for the second semester of the capstone course, because by some strange miracle at the enrolement office, despite being a computer science major, he somehow made it into the game design capstone course. A miracle I am grateful for, as this project would have been completely boned on multiple fronts without him. But he showed up to our class anyway. He scheduled the classes he was supposed to take around our class, just so he could join us and help with the project. That is the kind of dedication I will always respect. I still talk to Laurence to this day.
Mitch presented an idea for something of a mutant sidescroller. The character would mutate between human and animal forms. This kinda speaks to his own set of skills. Mitch was a pure artist. He was in his element when he was alone with a pencil and his notebook of sketches. He loved werewolves and shapeshifters and things like this. He had a notebook full of drawings of all kinds of different things, but above all else, animals and mutants. And I loved his art, it was truely great, he had such a good eye for detail when he was drawing.
His one weakness however was anything more complicated than a pencil and paper. If Laurence has the mind of metal and wheels, Mitch was pretty much a wood elf, completely the opposite. If you sat him in front of a computer, it would just stop working. Both of his computers were broken at one point during the project. He just didn't have a mind for code. Which was entirely OK for what we were doing, since we needed him more as an artist than we did as a programmer, since our programming was pretty well covered. It was my own mistake that put him in a difficult position towards the end of the semester. The last time I saw Mitch was on the last day of class. He couldn't even make it to the final release of the game.
Joseph's presentation was.......interesting. He had his recorded...and it was rather interesting to say the least... He wanted to do a game about a dark maze. He also wanted to do one about an old man...it involved drawing rather....graphic stick figures...It was rather eye opening
Joe was the one who joined the class late. But he worked more than hard enough to make up for it. He was also a programmer, who we kinda assigned to more specialized programming tasks before we finally decided to have him be our AI specialist. His work ethic was something else. While he was taking the game classes, he also took something like 16 credits worth of classes, and also had a job, and was also in the Marines. I heard him once described as always moving at about a hundred miles an hour. It was a pretty accurate analogy, because nothing could stop this guy. I still hear from Joe from time to time, he's trying to start his own game company. I hope that one day he can be the Insomniac Games to my Naughty Dog.
Dustin was actually only in the first class due to the fact that he essencially took the two classes out of order due to complications in his scheduling. He got accepted to DigiPen part way through the semester and is probably still there now, which is pretty interesting.
After everyone gave their presentations, we had to decide what we wanted to make. This was the point where I was able to work some teamwork magic. I looked at what everyone wanted, and found a way to completely rework my idea to include what everyone else wanted. Laurence wanted a programming challenge, Mitch wanted to make mutants, and Joe wanted a dark setting, and I wanted my game mechanic with using common junk to solve puzzles. We gradually made compromises until we ended up with the concept that we called Mutant Brothers.
Originally, we wanted to build a whole city, and have both Rat Boy and his big brother to be playable characters. Rat Boy would have had his stealth gameplay and puzzle solving, while Big Brother would have been more combat oriented gameplay. Something along the lines of the early Resident Evils where you had two different characters with different sets of skills working through the same areas except slightly differently.
But even early on we realized that we really needed to tone down the scope of the game, and had to decide which story we would go with, and toned it back the size of the world until it was just limited to a single warehouse. We ended up going with Rat Boy as the main character because we believed that out of the two, Rat Boy represented a far more interesting challenge for the player. I've always been more fond of the stealth genre anyway.
The first semester was dedicated to a bunch of smaller prototypes that demonstrated some of the smaller mechanics in a more isolated way. This was where I effectively taught myself the basics of Unity, building the first prototype from cubes. It included basic code for movement, the camera system, and enemy patrols. We also had prototypes for an early iteration of the inventory system, which Laurence was in charge of. It was more like the inventory system from Diablo or Resident Evil 4 than what we ended up with in the end. We then made a second prototype that actually included a lot of features that we ended up cutting from the final version, such as a flashlight, physics based barrels, and a pretty buggy ladder (which I really wish we could have figured out for the final version)
The second semester was where our work truely began. We pretty much scrapped all the old prototypes and started again, this time using custom assets rather than Unity primitives.
This is where we ran into our first real problem. When we imported all of our 3D assets, we didn't know that for whatever reason, Unity imports 3D models at .01 scale. And by the time we discovered the problem, it was already too late and half the levels were already built. This caused countless strange errors with the physics engine, raycasts, and moving things around in general, because everything was so small. The floating point rounding errors would throw off just about everything, and cause things to fall through terrain, or get stuck in it. It really was the biggest problem that plagued the project.
By this point, we had all really fallen into our roles. I was lead designer, pretty much keeping the entire project on track as best as I could. But I had taken on way more jobs than that in the process. I was pretty much responsible for all of the enviornmental models, all of the level designs, all of the programming on the character controller, all of the 2D UI assets, and all of the sound design for the game. This might have been a mistake on my part, which I'll get to.
Laurence meanwhile was the lead programmer. For most of the project his main task was the inventory system, which included a lot of data management tasks which were WAY above my skill level in programming at the time. He also handled all of the saving features, such as preserving room state and the item economy. In retrospect, these were all massive challenges that were probably a bit huge for a game we were trying to build as a college project. But Laurence took care of it like a boss.
I put Mitch in the position of technical artist. He had already drawn up all the characters, which all looked really awesome. I then gave him the duty of modeling out those characters and rigging them. This was probably another big mistake I made. We spent a lot of time waiting on those models, because Mitch probably wasn't prepared to handle this kind of thing. He was great at drawing, and he was a decent modeler, but he had trouble beyond that. This was something I should have been aware of and adapted to much more quickly than I did. When I saw how much trouble he had exporting a single model, I should have moved him to making enviornmental assets and taken over the characters.
Joe was in charge of the enemy AI. The goal was to produce a system that worked similar to the MGS paradigm, where the enemies worked on a state machine that determined their state based on their awareness of the player. This was another fault with my design. When Hideo Kojima made MGS5, he had an 80 million dollar budget. While I did spend money on this project despite knowing it would never make money, my budget was no where near 80 million, but instead like less than $100. And while Kojima had probably over 100 people working on his game, mine had 4. My expectation that I could do nuanced stealth with these restrictions was possibly unrealistic. Alternatively, perhaps when Joe was having trouble, I should have perhaps had Laurence shift from the inventory system to the AI and them work together sooner than I eventually did.
I think all of the shortcomings I see in this project may have come down to a problem I had at the time that truthfully I occationally still struggle with. As team leader, I always seem to want to take on more tasks than I can handle at once, because I just wanna do all the things, but in exchange it hinders my ability to focus on the management part of leading the team.
Part of this comes from my philosophy of trying my best to not ask anything of anyone on my team that I couldn't do myself. Often, people who I would look up to as leaders lead by example, and with the ambitious goals I like to set on projects, I want my team to feel confident that I am dedicated to the project, and they know I'm not asking them to do something unreasonable that I couldn't do myself.
But at the same time, this ends up causing me to take on more and more parts of the project, until, to put it into computer terms, my processor is pegged and my ram is full and I just can't fuction efficently anymore.
This has happened to me before on previous projects like this, and this time I was aware of it, so I tried to put a little more trust into my team, since I knew I was in good hands. Unfortunately, this idea sometimes left my sight and I would occationally get wrapped up in more and more responsibilities.
There was a point in this process where I was approaching critical mass and my ability to stay focused was almost completely gone. Luckily Laurence came in clutch and helped take some of those responsibilities off of my shoulders and helped me re-delegate tasks across the team at a critical moment. That really helped us get out of a particular dulldrum we were in.
By the last few weeks of the process, I had pretty much resigned to the fact that the grand vision would not be realized in it's entirety. Not this time anyway. So instead, I focused on building a few discreet challenges into the game as a sort of proof of concept. Each room presented different challenges that represented the different modes of play I wanted the game to have. The main hub room was going to be more dedicated to the stealth elements, which, right up until the last day of development, didn't work, we only really got it working, to at least a satisfactory level on the last day of development. The Northeast Passage was going to be dedicated to exploration challenges, such as using the crowbar to remove vent covers, platforming (something I worked hard to get working the way I wanted to, but could never really get exactly perfect), and a vent maze. The Southeast Passage was dedicated to a puzzle solving room, which was based off of a concept drawing that Mitch did early on that I wanted to make sure was included in the final "alpha".
One of the new stipulations that was added to our course, which was literally the first time it had ever been done in this college's game program, was that we needed to release the game onto an app store. It could be any app store, as long as it was published. It was a goal set for us by a professor who we really were privlidged to get a chance to work with, who during the one semester he taught at our college, he had to leave during because he got hired by Telltale Games to work on The Walking Dead game. This should give you an idea of how good he was. Well, we originally slated this game for release on the Windows Store, but on the last night, no one could really figure out the publishing process, because the only one of us who had Windows 8 on their machine was unavilable when we were gonna publish our official release build.
I emailed that professor that night, as just a cry for help into the void, expecting no response, and he showed us itch.io, which allowed us to publish pretty much however we wanted, which was really nice. That last 48 hour crunch was some of the craziest time in my life. I was pretty much awake during all of it, at any one time having at least one member of the team on Google Hangout. It didn't help that the day before the final class and the presentation my car had been vandalized and wasn't running, so I had to do everything remote, until a friend of mine literally just handed me his car keys and said "here, don't crash it." so I could drive to the final presentation of the game. I'm glad he trusted me despite the fact that I was very obviously suffering from intense sleep deprivation.
I'd say the final product came out well given my final goal once I realized the game was too big for a 6 month development cycle. The game is playable, and, as noted by those in attendance for our final presentation, "Unlike projects from previous years, theres, you know, actually stuff to do".
I'd call that a positive review. It wasn't the game I wanted it to be, but hey, there was stuff to do.
Regardless of what the final product turned out to be, the biggest take away I got was just the massive amount of stuff I learned about game design in such a short time. It was the best Crash Course through Unity 3d money could buy, thats for sure. And it was pretty much my first real foray into leading a team. I had done so previously, but not with the amount of success we all had with this group. As I said, I'm still in touch with most of these guys, and I suspect Rat Boy won't be the last game we make together.
So why did I call this the first Post Mortem? Because I'm still not done with this idea. I doubt it'll look anything like it does currently, but one day I will do this project the justice it deserves. This isn't the last you've heard about Rat Boy. Just the last you'll hear until I can afford a Maya licence and the ability to pay a much larger team. When that day comes, Rat Boy will be back.