Monday, October 6, 2014

The production pipeline for the modern videogame


In my previous blog, I went into a brief overview of a general 3D production.In this blog I will be covering more in regards to a modern video game pipeline.

It was not too long ago when video games were just pixels, simple primitives that will show a very basic representation of what the game was trying to show.

    This is tennis, as represented by the Atari 2600.
Of course, technology got better. More pixels could be shown on screen and the clarity of the objects increased.

Street Fighter 2. A massive jump from tiny sprites

With advancements in technology, we saw textures and polygons, albeit much like the first pixelated sprites, they were very primitive as well.

Wipeout - Now we see 3D, the future looks bright.


With larger budgets, more work going into 3D and technology allowing this all to happen, we now have visuals like this.
Crysis 3: Modern 3D, what a drastic change from pixels

As far as technology has come, we still find that there are limitations. Normal mapping, bump mapping, shaders, filters and other techniques have been borrowed from the movie industry and put into video games. While we still have a long way to go to get it completely believable, we still have more work to do to create a modern 3D game.

As in the previous blog,we have many parts that build a game from the idea to the final production.

*Pre-Production

Once again, we have to start off with ideas, designs and an overall goal to accomplish for a game to be made. The story is written, the game-play is discussed and the characters/world have been designed.

Concept art for Dark Souls character

Concept world design for Dark Souls 2




Now that we have something to work with, we get into the 3D work

*Modelling

We have come a long way from the basic models seen in the 90s, now we can create characters with richer detail and more life-like realism and believability. 

The characters are given to the 3D modeller as 2D sheets of the side, front, back and 3/4 view. This is then placed into a 3D programme like 3D Studio Max, Maya, Blender or Lightwave to be turned into 3D models. The 3D modeller has to take into account the limitations of the game engine they are using or the polygon budget they have been given as the game has a much lower overall freedom as say a blockbuster movie, which could have a near limitless polygon count. Modern CPUs and processors are definitely more powerful than they used to be, but can still only render so much on screen and efficiently.

To counter the limitations, tricks have been made to overcome the lack of polygon count. 

A low polygon mesh is created that ticks to the overall polygon count requested, the model looks slightly more polygonal than it would seem before it is completed. Next a higher polygon version of the character is created and the detail of the character is captured in a "Normal" sheet and applied to the low polygon model, giving the illusion to the low poly model that it has the same detail of its higher poly version. If the 3D artist is skilled, they can create a character or object that looks indistinguishable from its high poly version as a game asset.
Example of a normal map
CD Projects Geralt model for the Witcher. From the left; Low poly, Low poly with smoothed polygons, high definition and poly model, final render of low poly with the difference applied in a normal map and textured.





Texturing:
Texturing allows the flat colourless model to have colouring, materials and more believability. The model is unwrapped to a flat sheet and painted on.

Wall texture



Character texture (Unreal 2003)
Much like polygons, games and game engines have a texture budget that has to be stuck to. Ram and video-ram only allows so much space for textures to be cached, streamed and used. There are some examples of game engines allowing very large or unlimited texture budgets, but is compressed once in game. Id Software's "RAGE" is an example of this, with "Id Tech 5" allowing massive textures or "Mega textures" to be shown, allowing developers to apply an unlimited amount of textures with no layer limits.

*Specular

Specular is a technique used to show reflection and material highlights on a model. Generally a black and white sheet, the white represents highights, the black highlights no highlights.
                                   
Example of specular map
*LOD

LOD or "Level of detail" allows a model to lower its overall detail over a distance. Models that are closer to the viewers eyes have full detail, while a model that is very far away may only be a sprite sheet or 5-20 polygons. This allows game engines to swap between models and lower polygon and texture size of objects that do not need it.

LOD example. The polygon count of the front model is much higher than the one in the
background.
Animation:

Much like film makers, a model that is animated uses bones and skeleton rigs in order to make the character or object animate. 

A character model and skeleton rig.


Since animation in games is much less predictable than a linear film, more animations are required to make sure the character or objects movements blend together. If a player goes from a run to a kick, or a run to a jump the animation has to blend together based on the players input. Once again, animations are stored to ram so there are limitations to how many can be used.

Mocap: Ryse Son of Rome
Mocap, or motion capture is also a possibility. This allows actors to be set up in special suits and act as puppets for the game characters.The actions and motions are recorded and used in scenes or for character movement/action.

With technology like PhysX coming out, objects like cloth, hair, fur and other dynamic objects can be calculated in real time by the game engine.



*Exporting and compiling
Exporting and compiling models and assets allows the 3D models to be converted to the game engine. The game engine can then recognise the objects as something that can be rendered.

*Level Editing
Once objects are in the engine, they can be placed by the level designer into the game world, or scripted to animate in the game world

*Optimisation
Not everything goes to plan and some objects may need to be optimised due to going over the polygon/texture/animation budget. Games are often given a target frame rate (30-60fps) that needs to be consistent, so sacrifices such as compression need to be made in order to reach or maintain these goals.  

Once again, this is a general overview of what is necessary in modern 3D video games and the pipeline to create modern games.









                                 






                               

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.