TechRadar was recently treated to a session of musket-shooting and cannon-firing to celebrate the launch of Sega's Empire Total War, developed by the in-house studio, Creative Assembly.
As part of this all this launch event shenanigans we also managed to speak with the game's Associate Producer, Mark Sutherns, to find out a little bit more about the technology the studio has used in the game which makes it stand out by a country mile from the rest of the titles on the PC shelf.
Creative Assembly was acquired by Sega back in 2005, as part of the Japanese publishers strategy to develop games in the west, specifically targeting European and American gamers.
Empire Total War is the fifth and latest outing in the studio's highly-regarded Total War series, in which you take control of an emerging European nation through the strategic deployment of both diplomatic and military means.
TechRadar: It's the first game in the series to do sea battles – how has this been achieved? What tech goes into recreating the sea?
Mark Sutherns: Yes indeed, sea battles are a brand-new addition to the Total War series and Empire, set in the age of sail, was the ideal game to introduce them. As for how we achieved this – the answer is a lot of effort, concentrated on ensuring that we balance gameplay and realism to create battles that are fun to play, but still remain true to the fundamentals of naval combat during the time.
While the intention was never to create a rigid sailing simulation - wind speed and direction, hull types, the number and power of guns on board and the types of ammo used are all major factors in how these battles play out.
TR: And the technology behind the seascapes?
MS: I'd have to pass you over to our seascape programmer Scott Pitkethly for that one...
Scott Pitkethly: The sea is constructed using waveforms whose frequency and amplitude are statistically derived from deep sea waves. They are animated in frequency space and then transformed into world space using a Fourier transform.
From the surface representation we can derive a set of movement vectors for the sea's surface. These surface vectors are used to deform the surface mesh in real-time to push vertices towards the peaks and away from the troughs to give a realistic water-like movement.
The same information is also used to determine the location of peaks or wave crests to accurately position the foam. The foam is animated using a high resolution cell-based approach to allow it to generate and fall off naturally. This cell-based 'mask' is supplied to the pixel shader which blends it with artist authored animated foam textures.
The surface is rendered using the Fresnel equation to give realistic blending of our projected reflections and refractions. We also have a projected overlay texture to add wakes and other surface detail like splashes directly onto the surface at the pixel shader level.