The GDC clip is basically him talking on others people work completely unrelated to what he's supposed to sell. High five!
We’ve talked with Kirill Peskov about the technology that shapes the visuals of Wargaming’s naval online battleground.
World of Warships operates a “game as a service” model, publishing major releases every 3 weeks, and our technology development keeps to a similar pace.
We constantly update and refine the technology backlog so priorities stay current. Some features are requested by peer teams, like level art or 3D art; some are requested to improve game performance and stability; some address technical issues. And new visual effects are often proposed by tech artists as prototypes. Our new render techniques are developed in production quality mostly by the render team.
Features go for implementation according to their given priorities. Every feature passes mandatory performance and functional QA so it can be integrated to the mainline. For complex technology changes, there are options to have additional external testing (so-called Super test). R&D tasks are often handled just like the others, but no QA is usually required.
The original BigWorld Engine was implemented long before World of Tanks started. It was (and still is) one of the best engines for non-target MMO games. Especially on the server side.
We considered developing our own server-side, but it was a huge risk due to having very little experience in MMOs. We began using the BigWorld Engine in other games because it already worked well in World of Tanks.
The server technology in the BigWorld Engine works great with massive loads. In the early stages of development, we used the original BigWorld technologies that existed at the time as well as methods developed by the teams in Minsk and Kiev.
During the development process, we implemented a lot of our in-house technologies. Of course, we are working in close cooperation with the BigWorld development team in Australia.
BigWorld used to be an independent studio when World of Tanks first started to use it. But, yes, the BigWorld Engine works predominantly with large, land-based landscapes, where players observe from middle/close distances.
We have slightly different goal in World of Warships: an almost endless sea; land, which looks beautiful and realistic from long and close distance; and a bird’s eye view. And we had to show large forests. Another issue was processing a large number of models in the game, because all ships consist of tons of elements and they all interact with each other.
In the evolutionary process of technology development, we completely changed the scene hierarchy, sea surface, lighting, shaders, forest system, sky, effects system, and weather effects. We added a lot of new technologies such as motion vectors in VFX, for example.
For more effective landscape visualization, we replaced the original terrain system with solid geometry. Terrain is used only for physics and navigation now.
From the beginning, we were faced with showing oceans up to the horizon. The water surface should appear beautiful and realistic from any distance, whether near the ships or at the shore.
The old BigWorld water technology didn’t allow us to achieve the result we needed. Artists had unclear controls of water settings; in the distant view, the water didn’t look great. And, more importantly, we needed to improve water performance. We decided to replace the sea surface with our own new tech. We use a projected grid with a very simple and effective method of deforming water surfaces. We also completely replaced water shaders, reflections, light absorption, SSS, even including underwater volumetric shadows.
We were slightly developing the underwater space, but at this moment we postponed it.
We try to show, as spectacularly as possible, all the effects that exist in the real world. Effects that appear from the interaction of ships and other objects (such an artillery shells) with the water’s surface, ship’s wakes, weather effects, water splashes, etc. We have different systems for it.
To realize the effects on the sea’s surface, such as a ship’s wake, explosions on the water, etc., we combine different particle types. We have special particles for surface deformation that also generate foam and the SSS effect, and ordinary particles for splashes. We also use animated texture atlases, texture blends. The particles are lit according to the illumination of the scene.
The weather system includes full-screen effects for rain and snow, particle effects that exist in the world, and the effect of droplets on ships. It affects the “saturation” of the ship’s surface as well as shaders. The weather system affects the changes in fog, wave height and visibility range.
In all Wargaming titles, the implementation of the sky is different. All titles have their own specific and technological features.
In World of Warships, the sky has a very important place in the game world. It encompasses a significant portion of the “picture”; its color and image affect the entire environment: indirect lighting, reflection in the sea. We went through several iterations, trying to achieve the maximum result with the minimum resources. We even experimented with true volumetric clouds in the game.
Currently, we implemented flow vector technology with texture blend. For lighting, we use HDR sky, and now we are working to improve it.
In the game client, we use a system of LODs for all the geometry: ships, terrain, ground objects. We use Simplygon in the development process.
In addition to the LOD models, we have developed a system for “scaling” the resources of each visual component: effects, lighting components, water surface, the forest system, etc. For example, the effects LOD system includes changing the number of particles, reducing the amount of the effect’s subsystems, and the simplification of particle lighting.
Our lighting system includes sun lighting and indirect lighting from the environment. We recently added local dynamic light sources to the game. We are now working on improving the scene lighting system with spherical Gaussian grid GI.