Blackout is a two-player co-op puzzle game where players take the role of an arctic researcher trying to restore power to the Fawl-T Research Station. Players must work together to navigate the base and activate machines by connecting them to a source of power. Will you be able to fix the issues, or will the base be stuck without power? It’s up to you to decide.
Features:
Online multiplayer with a server browser (requires Steam)
13 levels of puzzles
Full controller support
Original music score
Graphical options menu
About my role:
As lead programmer on this project, I covered all elements of the game from basic player controls to puzzle elements, art implementation, online networking, and UI programming. I was also responsible for managing the other programmers by making sure they had equal amounts of work and providing assistance if they were stuck on anything.
This was my first time ever making a “full-scale” game in Unreal Engine so there was a huge learning curve for me. Despite that, I was able to get the game to a place where my whole team was very happy with the final product!
Three major challenges:
Number 1: Online Networking
One of the requirements for this game was for it to have online multiplayer. This was a co-op experience so online multiplayer made a lot of sense but was something none of us had any experience with before. Fortunately we were able to find a very helpful plugin called Advanced Sessions which had a sub-plugin providing Steam online multiplayer support. This was extremely advantageous to us because it meant we did not have to set up a dedicated server for our game which would have been a pain with constant iteration on the game and a small team size. In the final product, just by running Steam in the background, you can create and host a server for you and a friend to join via a server browser in the main menu.
Number 2: Puzzle Power System
All of the puzzles in our game revolved around restoring power to a room in the research base. The power had to be activated through a combination of wires, wire interfaces, pressure plates, generator outlets, lifts, and turrets so we needed a standardized way to control the flow of power through all of these puzzle elements. As a solution, we made a “powerable” interface that each of these objects could implement, easily allowing them to be powered and provide power to other objects. This was difficult to develop and cost us a lot of time early on in the development cycle, but was critical to simulating the flow of electricity and made puzzles easy to create and modify later in the development process.
Number 3: Development and testing during COVID-19
COVID-19 was a major disruption in the middle of our development process. The whole team had previously been living in the same building during the start of the Spring 2020 semester and had weekly work meetings together at the labs on campus, but as soon as the COVID crisis began we were forced to move back home and the semester resumed remotely. Fortunately, it did not take our team very long to figure out how to navigate around the difficulties created by our new working environments. We had regular meetings 2-3 times per week on Discord and continued managing the status’ of all of our tasks through an online task board. I was in charge of polishing and producing playable builds once a week for our class-time when we would have build reviews. This created a good cycle of work, polish, test, and fix bugs each week. I believe this is why out final product ended up feeling so complete and enjoyable to play.
While I hope I never have to go through this type of transition during development again, I am just glad it worked out so well and our team dynamic was able to adjust so quickly to working online.
Leave a Reply