Ahoy Shipwrights!
Not all news can be a showcase of pretty landscapes and new tools you can use. The invisible part of the process is equally important. The playability of the game highly depends on its performance after all. We decided to share the steps we take to make sure that our open-world map runs smoothly and the game looks as beautiful as possible without melting the players' computers.
[img]{STEAM_CLAN_IMAGE}/34736738/046d09335359f0cc64e88febccdb1df7a8b7b242.png[/img]
The main goals of the project: open world, a huge number of objects the players can interact with and the best possible graphics were the base for the creation of all necessary tools explained below. This was a tricky task but after some thinking, the best solution seemed to be a mixture of simple and more complex systems.
[img]{STEAM_CLAN_IMAGE}/34736738/c6b2af8e2a4d5ec80160663f83af0ca6ea15e37d.png[/img]
A separate test map was created to see how the engine will handle all the assets and textures. We filled it to the brims with buildings, trees, and most importantly huge amounts of grass.
Then the map was cut into smaller pieces, which we can load depending on where the player is. This allows us to show the highest quality textures and VFX in the surrounding area. We load the lower quality textures behind the horizon and the player, which helps us keep the immersion without worrying too much about the performance.
[img]{STEAM_CLAN_IMAGE}/34736738/e3824f120210bd49afd3fa4d84d97361883f050a.png[/img]
[img]{STEAM_CLAN_IMAGE}/34736738/4417698b63d9e6f3b6eb058452525c3edc72cd22.png[/img]
Even though the grass was at some point the trickiest part to get just right, finally getting the system to work reliably makes rendering trees and even whole pieces of land much easier.
[img]{STEAM_CLAN_IMAGE}/34736738/5a1388efab73d65a8b5cff87b4a28838ad4bc6bc.png[/img]
[img]{STEAM_CLAN_IMAGE}/34736738/65af669af00688bfbf9fb1864c5eb2409374f6b8.png[/img]
The game will also be equipped with a separate controller responsible for animating and rendering the grass directly through the GPU. This will increase the calculating power available and relieve the CPU. A system like this allows us to keep stable 60fps on maximum settings when using a GTX 960 graphics card. (the light green part of the graph represents the editor)
[img]{STEAM_CLAN_IMAGE}/34736738/a9ebc51229725cc2b417ab28e1be27e63b6c7da9.png[/img]
A traditional LOD system, which will switch models into less demanding variations depending on how close to them the player is, supports all these systems. The models are almost identical visually while being much easier to handle for the engine. With the number of objects on the map going into thousands, LODs are a must.
[img]{STEAM_CLAN_IMAGE}/34736738/447c6f86a68cb1d2dc8f35d71c4c8f15b703ca57.png[/img]
The last implemented system allows the game to save and load the status of singular trees. It will differentiate between ones that have fallen and ones still standing. This system will ensure that up to 800 objects at once with no hiccups or frame drops.
The backend part of the process may not be the spectacularly looking or the most interesting for all the players, but we wanted to shine the spotlight on the hard work of our programmer. You can show them some love by hopping onto our community discord and saying hi or sharing this devblog on your social media.
[url=https://discord.gg/QHyAszNg8k][img]{STEAM_CLAN_IMAGE}/34736738/0f7cf581eb79600a2b406c6c30394bb870a6d8e5.png[/img][/url]