Crustacean Nations Update 5
CRUSTACEAN NATIONS POSTMORTEM
Crustacean Nations is coming to the end of its development cycle, and I can honestly say that it is one of the most successful games I've worked on. It was a pretty big technical challenge, but the team worked well together to make a product we're proud of. We still have two more weeks of polish to go before the game is actually done, but all of the mechanics are almost fully implemented. This week our designers even added a random chance for crabs to spawn with hats on, and it's features like these that will really tie up Crustacean Nations nicely.CRUSTACEAN NATIONS POSTMORTEM
What went well?
This game is very tech-heavy being a traditional RTS game. With that in mind, we scoped properly and executed our plan effectively. This could have been our downfall, but our team was well aware of our strengths and weaknesses, and we used this information to make a realistic scope and follow through with our plan. Knowing the technical complexity of an RTS, I took some serious time to design the overarching architectural systems of the game, and this worked out beautifully. The whole game relies on a script called TeamID. This script is applied to almost every team-specific object in the game. On top of controlling team-specific colorization, it also automatically handles interactions between teams. This made it super easy to have the game support matches with two, four, or any number of players with no additional programming effort.Our team dynamic was also amazing over the course of this project. Each of us get along well when working within our disciplines or in small interdisciplinary groups, and we also work well when bouncing ideas off the whole group. We were all able to communicate with each other effectively which I believe to be the biggest factor of our success. It is also worth noting that each team member had a strong passion for this game, and we saw all team members including designers, artists, and our sound designer working in the build.What went well?
What went poorly?
Due to the technical nature of this game, I feel as though I accidentally dug myself into a hole where the game's success relied on me working a lot of hours. As a result, I did end up working too much on this project. That was the primary downfall of this project. Overall not much didn't work over the course of this game since we were realistic in scoping during the brainstorming phase of development. Besides working a lot of hours, we had some issues with performance along the way. Eventually we concluded that performance issues were coming from one specific part of the AI code, and we were able to optimize it out. Additionally, at some points in development, we ran into some bugs that made the game pretty unstable. After this, we had to redo our git workflow, but I learned a lot in that process.What went poorly?
You can now sacrifice units to summon the spider crab!
What have I learned for future projects?
First, I learned that for small projects or prototypes, having everyone on the team work off of the master branch is okay and saves a lot of time. However as the game gets more complicated, several branches are a must. We ended up reserving our main branch for art and sound implementation while making sure that main is always stable. Next, we made two extra branches, design for level design and UI, then feature-dev for brand new features that could potentially break things. We merged them all together at the end of the week and build the game from there. This ended up working very well and I will definitely take this information to capstone. On a different note, I am going to make sure the technical complexity of our next project is not as intense as Crustacean Nations. This will ensure I have plenty of time for polish and other graphical additions. Ideally I would pick a game that allows me to take more of a tech art role since that is what I enjoy the most recently. In any case, I have learned to think deeply about the game's architecture early. Having a good class structure set up for our objects in-engine makes implementation so much easier, and I will definitely try to come up with clever features like TeamID for future projects. I have also learned countless small elements of coding efficient algorithms and bugfixing that will prove eternally useful moving forward. What have I learned for future projects?