This article was originally published on Gamasutra on March 17, 2015
Tropico 5 is a city-builder/political simulation game in which the player assumes the role of the authoritarian leader of a small island country. We’ve already created two other Tropico titles, but this one was our most ambitious addition to the franchise, both in terms of budget and development time.
By the decree of the glorious leader of Tropico, El Presidente himself, this installment was supposed to be the perfect, flawless sequel, aimed to win us the hearts of both veteran players and newcomers to the series. Was it? No, of course not.
It turns out that ruling a totalitarian country and making a video-game sequel have at least one thing in common. You can never please everyone! You’ve been there – the feedback alternates from “everything is the same” to “why did you change all the stuff I liked,” often about the same particular feature, and it is not easy to say on which side of this precarious balance you erred.
Before I delve into all the mistakes we made, let me brag a little about the things that surprised us pleasantly.
What went right?
1. Starting from Scratch
It is tempting and often reasonable to approach a sequel as a grand expansion pack, building upon your existing, working title. We’ve created other games, like Tropico 4, in just such a manner. For Tropico 5 we decide to take the harder route and start from scratch, both in terms of game code and game design.
To explain the reasoning behind our decision, let me first give you an example that demonstrates how the various mechanics in Tropico interact with one another. Please, read the next sentence very carefully, because it describes my single favorite bug in the Tropico series.
When your election opponent in Tropico 4 was married to his great-grandmother the game was freezing in an unresponsive state.
There was no gameplay problem with any other people on the island marrying their great-grandparents, only with your election opponent. Why was this happening?
There was a certain gameplay logic that tilted the election support of family members of your opponent and their own extended families so they are more likely to vote against you. This could cause an infinite loop when the family member in question was related to the candidate as a spouse and a parent/grandparent at the same time.
However, this was supposed to be an invalid situation; since the marriage logic explicitly forbade picking parents, grandparents and siblings as spouses (we are not making Game of Thrones, after all). Not great-grandparents, though – we assumed the generation gap with their grandchildren will be too big and at least one of the pair will be out of marriage age. It turns out that assumption was wrong. Cue the incest and rare impossible-to-reproduce game-freezes on election days!
My point is that the hundreds of different mechanics in Tropico, major and minor, tend to interact with one another in unpredictable and weird ways. By the time we were starting with Tropico 5 we were sitting onTropico 3 (2009), its expansion Absolute Power (2010), Tropico 4 (2011), its own expansion Modern Times(2012) and several DLCs.
This was like a mountain of strata, spaghetti code and hundreds of features piled together over years and years of development and releases. A minor change in the transportation system could break a seemingly unrelated gameplay mechanic like education or construction. Some features, like our tourism system, were changed so many times over the years that we had to check through 3 different design documents and our bug database to find out how they actually work in practice.
This is why we decided to start from the top.
We approached Tropico 5 as a completely new game. All existing game code was thrown away and the programmers couldn’t be happier! Every game feature was redesigned, which gave the design team an excellent opportunity to pass through all mechanics and streamline, deepen, experiment, reevaluate and redesign where needed. We optimized some of our core systems, like the individual citizen simulation and the resource transportation. We’ve made more sensible new designs, learning from our past mistakes. We replaced whole systems, like the trade mechanics, with more comprehensive ones and trimmed the fat in others, removing weird and heavy game logic that the player could never see. Our new features, like the research system, meshed up well with the core of our new game since we were able to change that core to accommodate them.
All in all, this made for a better product in the end, although starting from scratch also allowed us to mess up some things. I’ll elaborate more on that in the “what went wrong” section.
2. Leveling up the Franchise
Tropico 5 is not just a sequel; it is the fourth sequel in the franchise, not counting expansion packs and DLCs. At this point in the life of a franchise, a handful of new buildings, mechanics and quality of life improvements are not enough to provoke the interest of the fans and attract new players. We needed something grander for the largest Tropico ever; we needed a way to bring the franchise to a new level.
We’ve discussed a lot of ideas, the most radical being changing the core premise and setting (remember how Tropico 2 used to be a pirate game?), but ultimately decided to stay true to the Caribbean dictator theme and to extend its scope as much as possible.
We added the concept of Eras in Tropico 5, starting the game in the Colonial Era where Tropico is a minor colony of a superpower, continuing through the World Wars, the Cold War and finally the Modern Times Era. The rules of the game and the challenges change in each Era, sometimes subtly, sometimes radically; new mechanics are introduced gradually as Tropico moves forward in time.
We went through many design cycles reworking and polishing our introductory Colonial Era. We had two primary design goals – to create the perfect first impression for the game and to use it as an extended tutorial for new players, gradually progressing from holding them by hand and placing simple tasks before them to allowing them to making their own decisions. We even found the perfect metaphor and reward for the end of this “tutorial era” and recognizing the players’ achievement in mastering the basics of the game – the political independence of their country!
Later eras gradually phase-in more advanced mechanics and change the focus and difficulty of the game. During the World Wars the player deals with education, industry, politics and war. The Cold War focuses more on dealing with insurgencies, tourism and foreign diplomacy. Finally, you can build the ultimate utopia or dystopia in the Modern Times while the game throws everything it has against your regime.
We decided early in development to never forbid the players to construct older/obsolete buildings from earlier Eras. This was a direct result of a hard-earned lesson from a previous project. There is no reason to place arbitrary restrictions that would only annoy our players and we tried to avoid those in all aspects of the design.
In retrospect the Eras were the key new feature that helped us make the new game attractive, fresh, and not just a rehash of Tropico 4. We’ve added several other large new features such as research, dynasties, and citizen roles, but none of them had such singular impact on the scope of our game.
3. Mature Engine and Tools
All our titles at Haemimont Games are created using our own proprietary engine, cloud-based server technology and toolset. The list includes games in vastly different genres such as a third person action-adventure (The First Templar) and a turn-based tactical game (Omerta: City of Gangsters). We prefer to rely on our own technology instead of third-party software and to create our own tools, tailored to the needs of the specific project.
A lot has been said about the importance of tools, but I’d like to add my own voice to the choir and tell you how tools are awesome, using one of our tools as an example – the Sequence Editor.
From a pure design perspective, the Sequence Editor is perhaps the most important tool we used in the project. It is used for scripting missions, but also for creating general gameplay logic and implementing certain gameplay features such as Elections and Edicts.
The Sequence Editor is not unlike a high level programming language. It is used to create sequences from a pool of possible actions that are executed linearly. Several sequences may run in parallel and interact with each other, and a single sequence may be started multiple times. Sequences use logical operators, cycles, variables and there is an action that allows custom gameplay code to be added to a sequence. We can also manipulate whole sets of citizens or buildings grouped under labels. Developers can check the state of all active sequences and variables in real time to debug them while playing the game in developer mode.
In short, the Sequence Editor allows us designers to interact with most aspects of the gameplay without writing actual code or involving a programmer – changing prices or costs, applying effects, killing or spawning citizens, modifying resources… It is very accessible, since most parameters are filled using boxes and drop-down menus and even the members of our design team with no actual experience of writing code had little trouble getting used to it.
The Sequence Editor was developed over the course of several projects, but previously it was used mainly for scripting missions. Tropico 5 was the first project in which we gave power to the design team to implement some of the base game logic using sequences. Of course, this also empowered the designers to break the game in unusual and unique ways, normally reserved for the programmers, but it also gave us power to iterate quickly and efficiently and experiment on the mechanics without involving the code team.
4. White boxing the Alpha
“White boxing” is a level-design approach that can be quickly summed up as making a level with basic shapes either because the art is still in the pipeline, or more likely because you wish to iterate quickly while testing functionality of the level. Tropico 5 level design was not done with white boxing, but we used a very similar method and mindset when creating the user interface and the buildings for the first time.
Being a multiplatform simulation game that supports both gamepad and keyboard/mouse controls, Tropico 5 has tons of complex user interface dialogues. In previous projects the work on them ate tons of resources both in the design, art, and code departments. It is next to impossible to nail down user interfaces without a lot of trial and error.
This is why we decided to make the Alpha version of Tropico 5 with “white boxed” user interface – every dialogue was just a mockup quickly put together by a designer and programmer, using no art, but having the full functionality requested by the design team. This allowed us to iterate quickly and nail down questions such as “What do we want in the infopanel menu that is displayed when a building is selected?” and “How do you navigate the Almanac with a gamepad?”
It was easy to make changes and move components in the temporary interface on the fly, or even scrap them altogether and start fresh. When a game mechanic changed we adjusted the dialogue related to it practically instantly.
We started working on the “real” artsy user interface late in the project, when mechanics didn’t change as much and the desired UI functionality was clear. We created this interface faster and using less resources than in any other project of similar scope and we are very happy with the end result.
We used the same approach regarding buildings in the alpha version. There are around 100 different buildings in Tropico 5 and they are all part of the core gameplay experience. Almost none of those were ready at the Alpha milestone. Every building still in the pipeline was replaced with a colored box, but its functionality was there, in the game. This removed any art-playability dependencies and allowed for a bigger time frame to test and iterate on the game mechanics.
5. The City-Builder with a Character
Tropico has always strived to be the different city-builder. Even in a niche genre such as this, it is important to position your product properly and make it look different than competing titles. City-builders and simulation games are not generally known for their story and humor, but Tropico is.
One aspect that makes the Tropico series different than any other title in the genre is its trademark tongue-in-cheek comedy. Living in Bulgaria, most of our writers have first-hand childhood experience with the real-life totalitarian regime, and political jokes come easily to us. We decided to capitalize on the series’ sense of humor as much as we can in Tropico 5 and to joke with everything that we can get away with, researching important technologies like “Hot Water” and “Sliced Bread” and settling international diplomacy with dance-off competitions between presidents. Bearing in mind that the game touches several sensitive subjects, we try to keep the tone lighthearted and goofy, staying away from anything offensive.
How do we deliver the humor and story of the game to the players?
We do it with the help of a caricaturized cast of likeable weirdoes and many, many walls of text. Yes, we’ve heard that gamers don’t like to read, a statement that may or may not be true, but we’ve still made the conscious decision to write several novels’ worth of text in our localization kit.
Still, Tropico 5 is not a visual novel, and our walls of text are optional to read, never required to experience the game. Important gameplay-related information such as objectives and game effects is highlighted and all flavor text can be easily ignored.
What Went Wrong?
Enough bragging, let’s move on to the pitfalls of the project and all the things that went not as smoothly. Being the just and illustrious leader that he is, I am sure that El Presidente will forgive us, as long as we’ve learned from our mistakes.
1. Starting from Scratch (Again)
After all the good things I said about our decision to dump the old game code and design and start from scratch for this sequel, let me confess that there were several negatives attached to this decision.
When you start on a blank sheet, you are more likely to make mistakes. Not the minor mistakes that are part of the daily life of a developer; but big costly mistakes worth months of development time.
Early in development we wanted to move the focus of Tropico 5 core mechanic away from the individual simulation of the units on the island. The reasons for that were numerous and sounded convincing at the time – we wanted the new game to feel fresh and different; we wanted to remove the dependencies of the economy from the individually simulated citizens; we wanted to optimize the game and allow for realistic population numbers, without simulating every individual citizen. All of this was communicated with our publisher Kalypso Media and approved, so we’ve started working on this idea.
Two months later we had a working prototype. It was different, it was interesting, there was definitely a nice new simulation game somewhere there. Only one problem – this game didn’t feel like Tropico. Not to us and not to our publisher.
Turns out that by tweaking our core mechanics we’ve strayed too far away from the franchise roots and were on our way towards making a game that just wouldn’t feel true to the series. We talked a lot, took a cold shower and decided to scrap almost everything and revert to the individually simulated units, only this time implementing them smarter than before. There was a lot of good work thrown away, but when you are making a sequel you can’t afford to make a product that doesn’t feel true to its predecessors.
Still, some of the mechanics that are currently in Tropico 5 trace their roots to this failed redesign, such a standardized new system for production, resource conversion and building effectiveness. Those were good, solid mechanics and our failed experiment allowed us to discover them.
2. Multiplayer Struggles
Tropico 5 is the first game in the series that features a multiplayer mode. True multiplayer in a city-builder/simulation game is still a rare sight, so we were exploring largely uncharted territories with this feature.
We’ve developed multiplayer games in the past and we were pretty confident in our technology, so the big issue was what kind of multiplayer would be appropriate for the Tropico series. We wanted to support cooperative and competitive play. We wanted some kind of cooperation between players, but we also opportunities for backstabbing and even the possibility of a direct military confrontation. Tropico 5 is not a military game at heart, but when your country has an army, it feels only natural that you should be able to invade your neighbor.
We’ve quickly went through several basic concepts – players are situated on different islands but can see and attack each other; player cities are on the same island and individual games can be played asynchronously; all players rule the same country and are given roles such as Minister of Interior and Minister of Economy to manage certain aspects of the gameplay. Those either sounded underwhelming or too risky and experimental. Finally, we settled on a traditional RTS-like multiplayer with different paths to victory – economic, direct confrontation or fulfilling objectives faster than the other teams.
Still, we underestimated the challenge of adding a multiplayer to a game that is not naturally built around multiplayer. Too often our test games felt like we were playing single player on the same map, so we’ve added a bunch of diplomacy actions that allowed the players to interact with each other, share resources, workforce, and money.
There were a bunch of technical difficulties as well. Multiplayer development took way more resources than anticipated, even post-release. We were fighting bugs that caused asynchronous states of the game between players. We had to implement some anti-cheating code in a patch. We also had to address the problem of mods that made synchronous multiplayer impossible.
The multiplayer mode is there. It even works cross-platform between Windows, Linux and Mac OS/X. Our metrics tell us that a relatively small percentage of our players spend much time playing online, so we know we could’ve done it better. Multiplayer in a city-building game remains a rather rare sight. Maybe there is a reason for that, but there is a lot of untapped potential in this direction.
3. Designing the Dynasties
The Dynasties were another major new feature that had to go through a few re-designs to fit with the game. It turned out to be one of those ideas that sound good as a concept on paper, but are difficult to pull off in practice.
The Dynasty is the extended family of the ruler of the island. It consists of several individuals with their own traits and quirks that can either rule the island or be assigned as directors to one of the buildings on the island. They gain skills, go through all sorts of wacky events and generally create trouble and drama for game designers.
It was incredibly hard to nail down all the details related to Dynasty members and make them work satisfactorily in our game. Do they age like normal citizens? Does their appearance change with age or is it customizable by the player? Do they die after the player invested so much work in them? How do they appear on the island? Do they marry with the populace? Can you get rid of them? How to make events related to them that feel fair and not random without changing the core of the game? It was the “door problem” all over again.
To finalize the Dynasty mechanics we had to change the way we look at them. We started by imagining them as some kind of special, prestigious citizens, and gradually shifted our vision to look at them as an extension of the player character.
Dynasty members exist in the metagame, they persist between missions in your profile. You start with a single dynasty member, somewhat like the first character level in an RPG game. You can not only invest in him or her, but gain new dynasty members and find out new skill combinations that work well together. After you have played our game for a long time you have your dynasty as your ultimate achievement in the world of Tropico 5, as the “build” with which you play the game.
4. The Challenges of Cross-Generations Development
Tropico 5 is developed for multiple platforms – Windows, Linux, OS/X, Xbox 360 and PlayStation 4. It is our first game for PlayStation 4.
We faced a unique set of challenges for each platform we targeted. For the Xbox 360 those were the challenges we knew from previous projects – say, optimizing the frame rate and loading times within the given hardware constraints of the platform. It was not an easy task, but we knew what to expect on that front.
In contrast, PlayStation 4, our new platform, was terra incognita for us. Knowing that the game already runs on Xbox 360, we severely underestimated the challenges of going next-next gen.
Figuring out how our code will interact with the foreign code, double-checking and reading documentation at every step, familiarizing ourselves with new certification requirements, all of those took way more time than we anticipated. Starting with only two dev-kits also didn’t help matters.
We finally emerged from PS4 development with a hard-earned lesson. It doesn’t matter that your game works just fine on those old consoles and low-end PCs. You will face many, many challenges that are not related to memory limitations and processor power. Going to a new platform is always a huge challenge and should never be underestimated.
Another thing that we miscalculated was how hard it was to support the game updates and the DLC content across all the platforms. Even tracking all the different versions was a challenge, our QA needs increased exponentially and a little change could trigger the Tropico Butterfly Effect, having huge and unexpected impact on a specific platform.
5. Some Disappointments and how we addressed them
Needless to say, the fans of our series are extremely important to us. Those are the guys and gals that live their virtual lives in Tropico, evangelize the game to other players, play it for hundreds of hours and break it in amusing and unpredictable ways.
We’ve created enough city-building games to know that two numbers matter very much to our players – map size and population cap (which also translates to buildings cap, since most of our buildings have to be staffed to work). We’ve set the population cap at 2000 on PC – more than that and we would’ve had serious performance issues on low-end platforms. It sounded more than enough! To finish the campaign you rarely needed to go above 500 citizens anyway and we doubled the number from Tropico 4. Still, our fans were disappointed; they wanted to create huge megalopolises and to fill the largest flat maps with buildings from one end to the other.
We re-examined the issue and we decided that our players are right. If they had top of the line, high-end PCs, locking them to 2000 citizens was no fairer than if we decided to, say, lock them at 30 FPS frame rate (and we all know how well this tale ends). We decided that it is better to deliver late than never and patched the game with an option that allowed players to increase the population cap up to 10000 at their own risk. In multiplayer games the cap is shared between players, so the game remains fair.
Resolving such an issue post-release is expensive, but it builds good relations with the fans and happy fans help future projects. Some other disappointments that we’ve addressed post-release were the lack of multiplayer save games and speed controls as well as a much demanded prison/arrest mechanic. I am proud that we addressed all those issues in patches, even though I am not happy that they were in the game at release.
Tropico 5 was our largest recent project. Even though the game is a sequel, which is usually easier to develop than a brand new game, it was a huge, complicated project, bigger than any other title in the franchise. Looking back at it, I am quite happy with how the game turned out in the end and I am certain that the lessons we’ve learned will aid us much in our future projects. Viva El Presidente!
- Developer – Haemimont Games
- Publisher – Kalypso Media
- Release Date – May 23, 2014 (Windows); September 19, 2014 (Linux, OS X); November 11, 2014 (Xbox 360); April 28, 2015 (PlayStation 4)
- Platforms – Windows, Linux, OS X, Xbox 360, PlayStation 4, Xbox One
- Number of Developers – 50 full-time
- Lines of Code – Engine: 435 000, Tools: 60 000, Game Code: 136 000
- Development Tools – Haemimont Games proprietary engine and tools
- Words Localized – 155 000 (around 4 novels)