To glean some insight into how modern video games development is shaping up today, the Computer Weekly Developer Network caught up with Richard Huddy, European gaming enablement manager at Intel.
Huddy explains that he teaches games developers how to write games -- but what he really does is explain how the technology inside his firm's Graphical Processing Units (GPUs) and Central Processing Units (CPUs) works. In this way, games programmers can be encouraged to look at processor optimisation and the need to define areas where applications can benefit from parallelism and concurrency threading.
The parallelism here is on the graphics side as lots of pixels are "in flight" at any one time through the GPU.
"Games development is different in this way... i.e. getting the best out of a GPU with multiple cores is quite different to getting the best out of a CPU," explains Huddy.
In terms of how an image is manipulated by a game engine, a mutant killer character (for example) is broken up into lots of triangles. There are lots of pixels associated with each triangle -- and lots of triangles associated with each character... plus there are lots of parts of the model in the total character (with different textures for example) ... so this is (for example) where parallelism could be brought to bear, as different processing tasks can focus on creating different parts and/or aspects of the image.
Image credit: http://fallout.wikia.com/
NOTE: Rasterisation is the process of working with an image that has been described in a vector graphics format and then subsequently converting it into a raster image (in the form of pixels or dots) for output to video.
Huddy warns that "ray tracing" is the other technology used here.... Although this is used more in movies (and "micro polygon rendering" also comes into play if you want to get technical) -- although again this is not used in PC games.
"Intel does a great Ray Tracer product called EMBREE and this is out in the public domain -- open sourced. This is great way of using CPU cores for rendering images really quickly," said Huddy.
Tomb Raider tricks
If you have noticed the amazing camera spin when playing Tomb Raider 2013, you'll have seen the panning camera sweep around Lara Croft start to blur the background if you keep spinning - almost like a real life person's view of a dizzying spin.
"Tomb Raider's camera spin is fundamental to creating a more realistic camera experience -- video games used to show images in perfect focus everywhere, but movies have used techniques to blur out... now video games are building in this same kind of 'temporal coherence' too," said Huddy.
NOTE: Pigeons see at 1000 Hz, humans 60 Hz -- and everything else we start to blur out.
Perceptual computing to take account of user eye movements will start to be important in games as we go forward now.
"Specialist skills in games development are different to those seen within business applications development -- the same bad habits might exist, pizza, coffee... one skill here would be a "willingness to solve impossible problems" if you look at what GPUs have been doing in the last few years (look at Battlefield) ... developers have tackled huge scale problems and tiny nuances in rendering to to produce a fake for artificial intelligence," said Intel's Huddy.