Tanks2.DE is a 2D online multiplayer tank shooter, featuring tanks from the World War 2 era.

Post news Report RSS Devblog: Map Generator

In Update 0.1.9 all battlefields will be generated randomly. This article explains how the current version of the generator works, and what the generated maps look like!

Posted by on

So let’s get into it! Please take a look at this randomly generated map part first:

1.jpg

Noticed something? Yes? Perfect! If you look close enough, you will see repeating patterns. And the reason for this is simple: prefabs!

The map is generated out of many different predefined building blocks, or prefabs, or whatever you like to call them. Here is one of them:

2.jpg

Looks familiar already? Don’t worry, there are a lot more of them, and we keep adding new blocks to the generator with every update! They are scattered randomly around the map, varying in size and look.

While this approach may sounds limiting first, there is a good reason for it: performance. The new map system was created with real time changes and a vision system in mind. The initial map generation is really fast, spawning and destroying objects at runtime is quick and efficient (thanks to the object pooling system which has been introduced in an earlier update) and the bandwidth usage is low, especially for the initial download of the map when entering a battle.

Of course this approach might not be perfect, but it’s fast, reliable, and it still supports manually built maps. (Just in case we will need them again in the future)

We will see how this works out really soon. But for now, feel free to leave your thoughts about this feature in a comment below, or discuss it directly with us on Discord!

Please note that the shown changes are not final yet. They may still get reworked or completely abandoned at any time without further notice. The Devblog series is here to inform you about the latest development plans for the game.

Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: