In my sophomore year at Purdue University, I was put in contact with Professor David Whittinghill, who was working on a project to model civilizations, ideologies, and sustainability in an RTS format. Being a big fan of strategy games, I was eager to help out, and joined in the preproduction phase as a Level Designer.
Preproduction
The first semester was largely devoted to preproduction, so my responsibilities included analyzing the systems present in modern RTS games and brainstorming how to implement our own twists on the mechanics. We were informed that a lot of the sustainability and ecosystem simulations would be handled by researchers working on a separate design track, so the Design Team's responsibility was to manage the gameplay and strategy elements.
Some of the work I did included pitching themes, feature breakdowns, unit designs, and UI mockups and whiteboxes of the starting area. I also began tentatively designing a build system in Unreal, though we ended up using another system.
2D sketches from Renee Bauer, 3D cake castle model from Luke Miller. All other assets from web.
Production
During the production phase, I primarily responsible for designing and implementing the game's combat system, which mostly involved breaking down how Age of Empires has their units function, and then making my own version. I used Unreal Engine's Pawn-Sensing Feature to detect when Units are nearby one another. I used an enumerator to control their behavior, and controlled unit stats (i.e. attack speed, movement speed, damage output) in a data table where those values could be easily adjusted and experimented with.
My other primary responsibility was to brainstorm and design mechanics that might be implemented in the future, once the basic functions of the RTS were fully programmed. One of my biggest interests was creating a civics-style system akin to that of 4X games like Stellaris. These would represent huge bonuses and penalties that would change the functionality of the game.
Some of my other responsibilities included developing a custom resource-manager using SQL to store data and PyQT6 to design the application. I was pulled away from this project, however, to help more with the programming and implementation of the game.
Above: Code and screenshots from combat & wall-placing functionalities.
Project Challenges
Studio Structure: In the first semester, our studio had a very distributed architecture, and our meeting times were often later in the evening to work around our class schedule. Everyone was encouraged to work on their own feature. Being rather green to designing RTSs, the features I made, including an early build system, were resource intensive and not usable. In the second semester, the project was associated with a class and therefore we could meet more regularly, help one another, and better communicate specifications.
Divided Focus: Due to being a full-time student and the fact that this project was not class-affiliated for some sections, I didn't always have the time to make as much progress on the game as I would have liked. During midterms and finals, this project took a back seat as I worked on graded assignments.
Documentation Issues: Our programming team, including myself, neglected to properly document our game features, leading to issues where if a team member was building off of a feature created by another person, we would struggle to figure out how their feature worked and have to consult them frequently to fix it.
Information Gap: Due to the structure of Fledging Media, major parts of the project, including the ideologies of factions in the game, or the ecosystem simulation are being handled by researchers at other universities that are not in frequent contact with our team. Thus, aside from fundamental aspects of the game such as building and unit movement, we have had to work on systems that are not crucial to the function of the game, such as combat.
Despite all of these challenges, or rather because of these challenges, I feel like I learned a lot about building games in a studio environment, and I think I will be better prepared for future projects. After all, the only way to learn is to make mistakes. So I am happy that I made plenty now!
Comments