The Settlers Online
Adobe Flash, the technology that had been powering The Settlers Online for more than ten years, was discontinued in late 2020. Mi’pu’mi Games supported Ubisoft Düsseldorf in preserving the game for its still thriving user base by porting it to WebGL. Placing the game onto a modern and solid technical foundation, we paved the way for continued feature development.
After the initial release, we supported the live service with performance and quality improvements for more than 3 months.
In order to achieve our goals, we took the technology and processes we created for a past project for another spin. This meant…
- Converting the game’s core logic from ActionScript to C# using our very own ANTLR-based code converter
- Integrating the converted core logic into a new Unity project
- Adapting the game’s intermingled rendering code to call into our very own tile-based caching renderer
- Re-designing and re-implementing all of the game’s several hundred UI widgets in Unity
- Implementing usability improvements across the board
- And connecting all the dots
Continued Feature Development
Although the game logic is largely server-based, some calculations are being performed on the game client to cut down on unnecessary data transfer. This brought with it the challenge to share functionality between an ActionScript-based body of code (the game) and a Java-based one (the server). The original developers therefore decided to implement the shared logic in ActionScript and convert it to Java, using a custom-built code converter.
Since the discontinuation of Flash, this approach is no longer viable. We therefore separated the shared logic into a stand-alone .net library, added a testing harness around it and established a pipeline for using both in the Java-based server code. This eliminates the requirement for future developers to be familiar with the game’s Flash-based legacy and develop new features like for any other Unity-based game.
With a little help…
With our services highly in demand and a very rigid time frame in place, we enlisted the help of our capable friends at Zeppelin Studio. They assisted us with:
- Developing solutions for code-sharing between C# and Java
- Extending and maintaining our tile-based renderer
- Extending and maintaining our A2CS code converter
- UI programming
- Gameplay programming
- Time- and release-critical bug fixing
- Server deployment and maintenance
After concluding production of the game’s release candidate, we entered into a live-development phase. Zeppelin supported us in managing the reduced small team of engineers from then on.