welcome to our public development Post Mortem of Autobahn Police Simulator 2. Over the next few weeks, we’ll be providing insights into the challenges of developing the title and talking about it in a sometimes humorous, sometimes serious way. But enough of the forewords! Let’s start!
Part 1: Overview
Motorway extension without construction sites
Our title Autobahn Police Simulator 2 (or shorter: ABPS2) was released in December 2017 and is the direct successor of the Autobahn Police Simulator from 2015, a job simulation in which the player takes on the role of a police officer on a fictitious section of the German Autobahn. The player has numerous tasks: Checking vehicles and drivers, securing and documenting accidents and for the first time also investigative work. The second part is in every respect an extension and improvement of the individual concepts compared to the first game.
Above all, we have made the world bigger and more varied then in prequel. The police station as headquarters has been made accessible and plays a more important role during the game than in the first part. The same applies to the game world. We especially concentrated on making the detailed aspects of our game world more diverse in order to enable the player to navigate better. This was achieved in particular through improved (level) design tools that brought about an optimized workflow. Especially visibile is this for example in motorway exits: They looked almost the same everywhere in the first part, they are uniquely designed in ABPS2.
An overview of the improvements and extensions compared to the first part:
- fully dubbed dialogues during traffic controls and in story mode
- New traffic offences and additional tasks in the event of accidents
- Role-playing elements allow you to improve your station, vehicles and character
- Introduction of the “Intuition View”; a help that shows players interesting objects
- A character editor that allows the versatile individualization of the game character (pc version only)
We are especially proud of the story that was fully voice dubbed and recorded in both English and German. Among the dubbing actors there are some voices that are known from NordRheinTV or the Rocketbeans. Already in the conception stage we took care to give the player a lot of freedom between missions to give the open-world aspect of the game space.
Floating point problem
All these expansions have of course made the game much more complex in development than the first part. In addition, this time we designed and implemented features that were outside our proverbial “comfort zone”, i.e. things that we haven’t implemented often or never before. This in turn has meant that we have had great challenges in development and also in release. However, this is always the central consideration in game development: if you do without new features you save time – but then the project also becomes less cool, less meaningful and less us.
Yet „extensive” also means “hard learning curve”: I don’t think we’ve ever learned so many new things in the course of a project as we have with ABPS2. In particular, the way the story was designed made the complexity of the game explode. Especially the dubbing was much more detailed than I thought: 15,000 words in itself is quite a challenge; making it dynamic (e.g. so that the player can play a male or female character!) without making mistakes still brings sweat to my brow. Luckily, we were able to rescue ourselves in the form of a tool that simplifies management and at the same time makes communication with the recording studio very effective. In the end, there was really only one line of dialogue, which for some unknown reason was not recorded. Here we used a bit of sound magic (also known as: Cut together from other recordings, hopefully nobody noticed 😉 ). At this point, thanks again to the recording studio!
Unfortunately, a major problem arose late in the development process – a problem that went beyond the limits of the technical possibilities; more precisely, the limits of the 32bit floating point number space. Since computers have only a limited precision in the representation of so-called floating-point numbers, calculations become more and more inaccurate the larger the numbers become. In our case, this leads to several unsightly artifacts in the game. The closer you get to the edges of the game world, the more shadows flicker and character animations start to derail. There are a number of techniques to prevent this from happening and still maintain the illusion of a large game world, but it was too late and it would have been too much effort to adapt the whole game to it. Fortunately, we found workarounds in many places to hide these artifacts. We don’t want to have that experience again, so for the third part, we’ve taken a completely different approach to eliminate these problems once and for all.
But of course, there were also many positive things. Thanks to the Character Creator, we were not only able to give the player the opportunity to create his own character, but also had the opportunity to bring a lot of variety to the game internally. By the way, the idea of the Character Creator came up during development – it was never intended from the beginning of the project. The idea was developed during a brainstorming session, and after the rapid development of a small prototype, it was clear to us that we wanted it in the game! In the end, the Character Creator saved us a lot of time, despite its complex technical development. We were also able to use it internally to create all the non-player characters, which greatly shortened the development time for characters.
Further improvements in our development process included, among other things, giving our game designers the opportunity to realize their own ideas faster. Therefore, it was absolutely necessary to free the game designers from the dependence on the programming team. This has led us to introduce a visual scripting tool that simply can be operated by our designers but is still as powerful as if a programmer who would implement game logic. In the end, this allowed us to better use resources in the development process and make many more iterations for the missions.
So much for the overview. In the next part we will tell you about a procedurally generated traffic control, what we thought about it and what has become of it.