Sid Meier’s Civilization VI

As a Civilization fan of almost a decade I couldn’t wait to work on the Android port. This was a very new type of project for me. I hadn’t worked on Android previously, I hadn’t used Google Firebase, Crashlytics, Cloud Functions or interacted with the Play Store back-end at all.

The project presented many challenges, QA was provided by the publisher in another time zone, the game featured a huge C++ and Lua codebase with only a very slim Java layer, it was the first Android project for many of us, and we quickly discovered that OpenGL was too slow and Vulkan drivers varied greatly in quality and performance across devices.

I was primarily tasked with investigating/understanding Firebase and then implementing it into the app. Our plan was to use Firebase for authenticating DLC purchases within the game, as well as collecting and analysing crash dumps. I ended up using a combination of Firebase authentication, cloud functions and the database features.

Outside of purchase authentication I spent a substantial amount of time bug-fixing. Often these were very low level engine and platform-abstraction layer issues. Some examples include tracking down file and memory mapping problems, visual artifacting and device-specific crashes.

One very interesting problem we encountered was that the size of the project was just way larger than Android Studio was ever built to cope with. As such it was completely unusable. We had to transition over to Visual Studio during the project just to be able to continue development.

  • Instead of having draconian endpoint security software deployed across the company, we were given Razer gaming laptops by the client to develop on. We then networked them and used grid computing software to distribute code compilation across a sea of Razer laptops for everyone on the project

  • Android

  • 3 months

  • 8-10 people

  • Android Development, Back-End Development, Engine Programming, Graphics Programming

  • C++, Lua, Java, Perforce, Google Firebase, Google Cloud Platform, Android Studio, Visual Studio, Jenkins, SN-DBS, Jira

Previous
Previous

Destroy All Humans! 2 - Reprobed (Windows, Playstation 5, Xbox Series S/X)

Next
Next

Hotline Miami Collection (Windows, Mac, Linux, Xbox One)