Home / Dev Blogs
Wow. Hard to believe that we're finally at the end of the road. Almost eight months of hard work have gone into making Mapstermind what it is today. The game hasn't changed much since the midpoint of the semester, only that... there's more of it! We have completed and polished the two levels that will be in the game: The City, and The Seafloor. Each level has it's own unique set of traps for the Mapster to use, and tasks for the Piecelings to complete. We've also almost doubled our playable characters from 4 up to 9!
I am also incredibly excited to announce that Mapstermind will be published on Steam! At the time of writing this, we plan to release the game on 5/13/2021. Feel free to check out the Mapstermind's Steam page here.
I feel like I have grown a lot this past year as a developer, professional, and teammate. This was my first time managing multiple programmers as a lead. I had to learn very quickly that I didn't just have to focus on just my own work, but also make sure that I can support and help everyone else on the team whether it be my other programmers or another team member. I was responsible for the entire technical direction of Mapstermind, which meant that I had to constantly think how each feature or change would effect the overall state of the game. It was challenging not only because I was balancing a lot of responsibility, but because that responsibility took me away from other things that I would have liked to work on instead.
At the time of writing this, Mapstermind is still the same game that it was during the fall semester. As a refresher, Mapstermind is a 3 vs 1 asymmetrical party game where 3 of the players (A.K.A Piecelings) are trying to complete all of the tasks around the map, and escape before time runs out. The final player (A.K.A The Mapster) is a floating pair of hands whose goal is to stop the Piecelings from escaping by using traps and activating events around the map. We are currently developing Mapstermind using Unreal Engine 4, and have onboarded seven new team members since the end of the fall semester.
We are currently split up into two separate scrum teams with one team focusing on polishing our city level and tutorial, while the other team focuses on developing our new seafloor level. We have also added a diegetic main menu and a character selection system, so that any player can choose who they want to play.
We have recently decided to completely redesign our previous city level, as there were a lot of restricting paths and visual clutter that made it hard to tell what was happening in the game. So instead we have switched to a much more open layout with far less buildings and visual destractions. Because of this design shift, we needed to update many of the art assets and trap functionality. A lot of our previous traps were dependent on narrow pathways to be effective, so we are currently reworking these traps as well as reworking the way that the Mapster interacts with those traps. Thankfully, we were able to take a lot of inspiration from our seafloor level, as it was designed to be a more open map from the beginning.
Mapstermind still has many issues that need to be tackled before the end of this semester. Due to the more rushed nature of last semester there was a lot of code that was not architected in a way that easily supports scaling up our game. Sadly this meant that we had to spend a significant amount of time addressing the technical debt that we had accrued over the fall semester. This along with responding to QA feedback on top of developing an entirely new level for the game has been quite the challenge to keep up with. As the lead programmer on the team, I find myself having to manage and address these issues more than working on areas of the game that I actually want to work on.
Even with all of the implements mentioned above, the team has made some remarkable progress. We are in a place now where we are actively testing both our new city stage and seafloor stage, along with the new iterations of our traps. We have also resolved all of the known major game breaking issues that had popped up at the beginning of this semester. With our codebase and pipelines cleaned up, we are on track to reach our goals by the Senior Show in May.
I am extremely proud of all the work my team and I were able to accomplish over the past three months. However, it's important to look back at the entire development process to see what went well, and what could have gone better.
One of the first things I want to highlight is my team's dynamic and communication skills. Right off the bat I think the team jelled well together. Everyone was very respectful of each other and there wasn't really anybody on the team with a big ego that needed to be managed. If any issues did arise, we would talk them out in a civilized and professional manner. Not having any real interpersonal conflicts helped to streamline our workflow, and simply just made it fun to work with the rest of my teammates. Our great team dynamic allowed us to communicate across disciplines easily and effectively, and I felt that the entire team shared the same vision and was on the same page about Mapstermind throughout the entire development process. Most importantly, every member of our team had a love and passion for the game that we were making.
Another high point this semester was our response to QA feedback. There were a lot of challenges that we had to overcome with Mapstermind, with the biggest challenges being balancing the Piecelings and the Mapster, player visibility, and conveying information without cluttering an already busy screen. Each week we would bring our game to QA testing, as well as present our weekly progress to our peers in class. The feedback we recieved was invaluable and largely directed the descisions we made about the game. As a programmer I made sure to be at every test session so that I could see for myself what the main issues with the game were, and where these issue were stemming from. This helped me prioritise what needed to be worked on in the next sprint and plan my work accordingly. Thanks to our constant iteration on feedback we were able to get Mapstermind in a state where it didn't feel unbalanced, and we were able to make immense improvements to player visibility along with effectively managing screen clutter.
Of course nothing ever goes perfectly when developing a game, and there were definitely things that I could have done better as teammate and the team could have done better as a whole.
One of the main things I wish I had done early on in development was getting the desingers and artists in-engine. Having other disciplines working with the build takes an immense load off of the programmer's shoulders, as they no longer have to pull levels together or get art assets into the game. It frees the programmers up to be able to implement new features and fix bugs and other issues with the game. We did eventually get to that point after a few sprints, but starting that process sooner would have helped a lot during the prototyping stage.
Another struggle the team had was managing crunch at the end of a sprint, particularly during the middle of the semester. There were times where we would give ourselves too much work in a sprint, and find ourselves rushing to complete our work before the sprint ended that week. We discussed this issue as a team and began to manage our workloads much better as the semester went on, but if we had started tackling this issue sooner we could have saved ourselves a lot of stress.
I feel like I've grown so much as a developer over the course of this semester. I learned the importantce of having a strong an unified vision of your game, and how to effectively convey that vision to people who are not familiar with it. I learned how important it is to to support your team with strong pipelines and good documentation, so they can do their work in the best and most efficient way possible. I've also experienced what it's like to suddenly have your team double in size, forcing you to onboard new members and get them up to speed with your project. Over the past three months I was able to grow as a programmer and a teammate, and I am confident that I can take what I've learned this semester and apply it to whatever job I may have after graduating.
Before I start off this blog post, I am super excited to announce that Mapstermind was approved for full production next semester! I'm extremely proud of all the hard work the team put in over these last few months and I can't wait to see where we take Mapstermind next! Check out the project here.
In order to pass the greenlight stage and be approved for full production, we needed to have a polished vertical slice of our game that we could present to the faculty judges. Of course, not everything we wanted was able to make it into the vertical slice. For Mapstermind, we prioritised features that were essential to the core experience of the game so that we could best show off and highlight the core mechanics. We would have meetings as a team to discuss and prioritise what is feasible to put in the game with the time that we have. No one person on the team has the final say on what is or is not cut from the game. Instead we discuss the feature in question as a team, and once we reach a general concensus we make our decision. Using this method helped us stay on track and allowed us to apply finishing touches to the build with plenty of time to spare.
Testing your game is an extremely important part of the game development process. Over the past couple of weeks we have been bringing Mapstermind to QA between one and two times a week, so we can see how players are reacting to the experience that we are creating. I am happy to say that our game has been very well recieved at our testing sessions (though it's not without its flaws of course). One of our main goals with Mapstermind was to create an intense yet lighthearted competition between the two teams: Piecelings and The Mapster. We have largely been able to achieve this goal, and we have had many testers come up to us after testing telling us that they really enjoyed the game and thought that it was a lot of fun. I think a large reason for this is due to the amount of effort we put in to balancing the roles of the Piecelings and the Mapster. While not entirely perfect, we have been able to reach a state where the large marjority of players feel that the game is balanced well, and that no one side has an overwhelming advantage.
We have taken the feeback we get from testing and use it improve upon any sort of discrepancies, whether they be mechanical or gameplay, that might have arisen. One example of this would be the additon of a tutorial for new players to play when testing Mapstermind. Previously we would have to give a long explination about how to play the game, and it was often hard for players to understand what they were doing. After adding a hands-on tutorial for the players we found that people's understanding and subsequently their enjoyment of the game increased exponentially. There is still much more work to be done and improvements to be made, but I feel like we are moving in the right direction and will be ready for production next semester.
About three weeks have passed since my team has chosen which game concept we want to work on for the rest of the semester, and we finally have a name for the game: Mapstermind! Mapstermind is a fast-paced 3v1 party game where a 3-player team must collaborate to escape a game board-like room before the timer reaches zero. These players (dubbed "The Piecelings") must complete a multitude of tasks to work towards unlocking the room's main door. The fourth player, a floating pair of hands called "The Mapster" places traps, pulls levers, and presses buttons to trap, fling, and annoy the other three players. The sole objective of The Mapster is to waste as much of the other player's time as possible.
Mapstermind should encourage teamwork among the Little Guys while creating intense yet lighthearted competition between them and the Mapster. In order to achieve this, we need to strike a good balance between the Piecelings and the Mapster. If either side is too powerful, we lose that competitive feeling that we want our game to have. We also want our game to be lighthearted and friendly fun, and making a deliberate choice to have cute art style and characters will help sell that feeling even more. Most couch co-op party games are straight forward and easy to understand, and we have been iterating constantly on visual feedback and objective clarity so that we can make the experience as smooth as possible for the players.
It has been a few weeks since starting the pre-production process, and my team has narrowed down the project that we would like to pursue for the rest of the semester. We have decided to go with a 3 vs 1 couch co-op party game, though the specific interactions between the group of 3 players and the single player is still being worked out. The team really liked the idea of letting the lone player mess with the environment in some way to thwart what the other players were doing. There is a lot of potential to create fun and unique mechanics from this. We have already started experimenting with different win/loss states like having a time limit versus more of a battle scenario where both teams of players are trying to reduce each other's heath to zero. We've also been playing with the idea of having the lone player being able to place various traps and obstacles around the map to hinder the rest of the players.
There are not many other couch co-op party games around that have a 3v1 competition as their core focus, and even less that give the solo player the ability to thwart everyone else though environmental manipulation. Our idea provides a unique experience for players to enjoy, with a large potential for interesting interactions between the teams of players. We want our game to be something that you invite your friends over to play on the weekend, and have a blast taking turns messing with each other. Those who enjoy fast-paced and teamwork based gameplay will enjoy our game, along with those who like to use a bit of strategy while playing.
Our first round of QA testing was very positive, which reinforced for us that we have a solid idea that is worth pursuing. My team is incredibly excited about this idea, and are looking forward to iterating further on what we have.
The past three years here at Champlain College have taught me that managing the scope of your game with the time that you have is an extremely important skill to have. It is important, especially in small scale teams, to be aware and realistic about what your team will be able to accomplish. There are times when you have to make a descision on what can and can't stay in the game base on the the time and resources you have. Unfortunately, this is easier said than done.
During our initial brainstorming process, my team explored a bunch of different genres and ideas that we could potentially pursue. The first thing we did was decide on whether or not our game should have networked multiplayer. At this stage, I am the only programmer on the team with any networking experience, and I was aware of the complexity that creating a networked game would add to the project. The team was interested in exploring that option, so I informed them of what it would require to make a networked game, and we decided that our time and resources would be better spent elsewhere. Our goal was to have a polished prototype that could move on to the spring semester, and we feared that spending too much time on networking would hinder the development of our game.
The team as a whole still wanted to have a cooperative experience of some sort, so we decided to add local multiplayer games to our list of potential games to pursue. During our brainstorming we would discuss a particular style of game or mechanic, and weigh it against how feasible it is to develop that idea with the time that we have. I would always try to not get swept away at the coolness or "wow factor" of an idea, and instead think of how we could go about implementing what we were talking about. Thinking this way really helped me to stay grounded while brainstorming, and kept me focused on staying in scope with the time that we had.