01 - A Work In Progress

Here we find ourselves approaching the edge of a long winding road, the end just beyond sight around the next bend.

The final semester of the Game Programming course at SLC requires students to complete a Capstone project of their own choosing so long as it’s a game. We’ve been paired with mentors from Snowed In Studios that will be providing feedback and guidance to help our group achieve our goals and with any luck ship the best game we possibly can. Our group consists of 5 students, all programmers but some of us have backgrounds in graphics and music, giving us a reasonably broad skillset to draw from for the creation of our project. So equipped with just about all the advantages a school can provide we set off on our game dev journey…

The first order of business? We had to decide what to make, which sounds a lot easier than it actually is. My first priority was to ensure that whatever we decided to make, would be scoped reasonably to ensure that it was achievable in the timeframe we had with the additional pressures of school and work time constraints. After a lot of discussions, we knew we wanted to do something in 2D given that 3D would dramatically increase the scope of the project and we knew we wanted to make a genre of game that has become less common in recent years. After more discussions, we finally had our core idea, we wanted to make a couch co-op game that could be played in the company of friends and the joy shared. Taking inspiration from several popular titles like Overcooked, Factorio, and Turn the Line! which we all desperately love, we finally knew what we wanted to make. A local couch cooperative game centering on industry that forces players to engage with each other in memorable ways in situations that are becoming ever more chaotic as the clock ticks on. We decided we would call it “Work In Progress” and began immediately.

In the first weeks of school, we wrote a GDD, followed by several TDDs, and worked hard on the design aspects of our game deciding what features we wanted. After some time we came away with a list of the most important things we simply couldn’t do without.

  1. It had to be local coop

  2. It had to be made using Unity

  3. It had to be 2D

  4. It had to be chaotic

  5. It had to force players to communicate with each other for success

  6. It had to be fun

Once our design due diligence was done we jumped into the task, setting up Azure DevOps services, a private Github Repo, tailoring our group Discord, and setting the foundations for what we all hoped would be our success. With everything in place, we got to the hard work. Our artist E began creating sprites of all kinds we could use, our SFX / Musically inclined group member Dorian was already creating music tracks and sound effects to use, our UI / UX programmer Josh had already begun planning how to overcome the limitations of a shared screen, and one of the programmers Li had already begun working on a localization system in the hopes of bringing our game to as many people as possible. Then there was me, with absolutely no inclination towards art or music, unless stick figures and nights out dancing count, but a deep love for the logical complexity and challenge that programming provides. I began working on the core system that would be the foundation we build our game atop and in a game like this I figured nothing was more important than interaction. So I started there, building a system that I hope will be scaleable and support many different types of interactions that we plan on adding. I think I may have succeeded, at least in a preliminary fashion at least but if there is one thing I’ve learned it’s that you can never account for anything and sooner or later you’ll wind up fixing something you were once certain was finished. I think that’s referred to as being naive if I am not mistaken. While I would love to start adding code blocks and ideas to this blog I think a first post might be a bit early for it but be certain of this, your screen will soon be assaulted with so many semicolons that the key on your keyboard might start fading preemptively.

While we’re still in the really early stages of this project we’ve decided that we want to work by the “Fail fast, iterate quickly” methodology in the hopes of identifying something fun, capturing it, and then distilling its essence and refining it into a real game. The group has been awesome, we’ve all seen excitement and motivation from each other and a willingness to put in the work because after all determination without motivation gets you nowhere. I’m personally very happy to have mentors to guide us, so far they’ve provided the most apt, and useful feedback I’ve ever received and I hope to leverage it into improving as a programmer.

As I sit here writing this I find myself immensely excited for the coming days and weeks. I’m certain there will be problems and challenges both from school and life, as there almost certainly always is, but I’m also steadfast in my excitement and motivation. I know not where the future may lead, but I’m determined to ensure it is a bright one for myself and my classmates.

Previous
Previous

02 - Interactions Everywhere