I've already talked about the nature of the capstone project in a previous post, so I will skip all of that here and get straight into the details on our game, Space Junk, starting with the team formation.
The original idea behind Space Junk belongs to two of my eventual team mates - Jessica Dungca, who gave the pitch and acted as team lead during formation, and Erica Lee, who Jessica credits as the originator of the basic premise during brainstorming. I knew immediately upon hearing the words "raccoon-ing junk and building a space ship" that a) my own pitch was bad and I wanted to work on this game instead and b) this needed to be about actual raccoons gathering actual junk.
After being very insistent with Jessica that I would be a good addition to the team and being generally excited, we ended up with the following:
- Jessica Dungca - art, design
- Erica Lee - general support, menu design, market research, sound asset gatherer
- Jordan Hamann - art, animation
- Michael Biggers - programming
- Me (Bobby Brace) - programming, production, design
After much discussion, we settled on the following design: the game, Space Junk, would be a very laid-back, cooperative adventure with two players and two stages. Stage one would be the assembly phase, where the two raccoons run around and gather garbage and place it on a rocket-shaped grid, one piece of junk per square. After completing this task, the players would transition to an auto-scrolling space adventure game where the two players would work together to control their garbage rocket, dodging and destroying space debris, before making it to the moon where they would have a picnic. With this in mind, I set up a SCRUM board with all the tasks we could conceive of to meet minimum standards of completion (many more were added later). I decided to put our game's tagline above it which Michael had come up with as a joke but we all loved, "We are all trash held together by friendship." And with that we got to work.
What went wrong
Problems came at me real fast when I hit my first major hurdle on the first night - Windows Updates. Unbeknownst to me, it had been so long since I had used my laptop that I had a major patch to install, which began downloading in the background and hogging all of my hard drive I/O capability. Thankfully I was able to mostly overcome this by letting it run all night and waking up early to make sure the updates installed. Then I disabled Windows Updates for the rest of the project.
The much worse hurdle was setting up GitHub. We decided early on that only Michael and I would be using the repository to mitigate conflicts as much as possible. I also went about setting up a .gitignore file using an existing template. Of course none of that worked the way we expected and we spent roughly two hours being crippled by some cursed conflicts in the meta files (which we learned to ignore) and again with our different interface set ups (which we learned to accept). We did work through these kinks, but between that and my computer issues, I think I lost about 3 hours of working time which is pretty rough.
The biggest problem that we had was, of course, time. The three lost hours cost us a few things - more animations, sound and music, an annoying bug in the controls of stage one, and getting the grid system working in that first stage. That last one was pretty big - we didn't have the level fully running until about 90 minutes before submission and it was then found that the system built to check the contents of each individual box in the grid didn't work and we really didn't have time to fix it, so Michael hacked it apart and just checked the entire grid as a whole for the 15 pieces of garbage we were using. I also lament the loss of Jordan's beautiful explosion animation that they made for the space debris in stage two, as well as all the sound effects that Erica acquired early on in the project. I only had time to hook up one sound, so I chose the firing sound during the second phase which I figured provided some of the highest player feedback.
What went well
I think the first thing that anyone would notice went well is that the art is phenomenal. Jessica and Jordan both did a fantastic job bringing this game to life. Jessica alone managed to churn out 15 individual pieces of garbage in beautiful bright colors as well as the background for stage one. Jordan created two separate animations for the two raccoon heroes (top view and side view) as well as the space debris, can projectiles, and background for stage two. As mentioned above, there was also an explosion animation that didn't make it in, due to me running out of time to hook it up.
It seems like patting myself on the back, but overall I think our organization as a team also went well. We took the time at the start of the project to clearly mark out what needed doing and verified that it was doable by at least one person on the team. As people finished work, they just needed to walk up to the task board, put their name on a card, and move it on to In Progress. By the end of the 43 hours there were only a couple of To-Do items left, neither of which was actually vital. The project started well-scoped, even for having two completely different play modes which may be considered a bit much for a game jam, and at no point were we struggling with scope creep. If we hadn't lost those few hours, I have no doubt that our problem would've become figuring out what else to add. But most the most important thing is that we completed the project and submitted on time.
I would also say that actually coding the game went well once we got going. With two programmers on the team and two stages to complete, the obvious thing to do was to each take one. Michael handled everything the garbage collection game in stage one (which I wasn't confident I could handle at all) and I handled everything in stage two. My work there actually ended up being far easier than I anticipated and only took me about 4-6 hours to complete. I spent the rest of my time hooking up the animations, handling the sprites, hating the input manager, putting the menus together with the images that Erica handed me, handling all code merges, and eventually performing the actual final build.
What I learned
Make sure your machines are updated before bringing them to a time-sensitive event. Have a backup plan in case of hardware failure. Also, Windows Updates can be completely disabled, so maybe just do that for the time that you need to make sure you have no interruptions. I can't stress enough how annoyed I was with that entire experience.
Know how you're going to handle code at the beginning before you start actually coding. If you're using a system that your unfamiliar with, read up on it ahead of time. For me that would be learning how Unity interacts with GitHub, which honestly is still a bit of a mystery to me. I may try a different management system in my next attempt or, ideally, let someone more experienced handle it and ask them to teach me what they're doing.
Effective time and project management is vital to the success of a project. This is something I already knew, to be fair, but seeing how well everything came together really reinforced this idea. In previous game jams I had used a purely digital SCRUM board that really only I was looking at. I much preferred the method used this time around - index cards taped to a white board. I may endeavor to use a physical board from now on.
Market research is cool, actually. The presentation that we had to give was put together by Jessica and Erica (though we all spoke) and it contained a market/competitive analysis for our game. Honestly, from what we eventually found, child-friendly cooperative games turns out to be a starving market and it's maybe not a bad idea to get in on that. Will we do so with Space Junk? Maybe. But not right away.
Thanks for sticking around this long! I hope you enjoyed reading my thoughts. You can check out the game in the Games section of my site here if you're curious. Also feel free to leave a comment here or shoot me an email. I'd love to hear more from the community. I do plan to write one of these up whenever I finish a new project, so you can look forward to a lot more of this in the near future.