On the video below, I talk about how we are creating evil bots for single-player mode. It outlines the main principles and techniques and has some tidbits on certain obstacles we face while bringing these things to life.
I start with discussing the specs we have in the Game Design Document (GDD), followed by an initial meeting on what the bot should look like. Then I do quick drafts using just primitive shapes to get the shape what we are going for. This process usually takes a few to several days, depending on how many modifications are needed.
Once we are happy with the basic shape of bot, I move into "high-poly" (high polygon count) modeling- adding details and the actual look to the bot. Also at this stage, I color code the materials onto the high-poly model for the texturing phase.
After that, I do the actual game asset- this means reducing the number of polys (polygons) as much as possible while still keeping the shape of the bot. I forgot to mention at this point in the video that I'll copy this mesh (3D computer model) to become a "cage mesh" for the texture "bakes". A cage file basically covers the entire high-poly model altogether. The actual game mesh, on the other hand, will have some places going slightly through the high-poly model.
Once I have that finished I "bake" (pre-calculate) the textures in xnormal, colorid, normal, ambient occulsion and curvature for use in the Substance Painter software. In Substance Painter, this colorid approach helps me to set up initial materials for the model quickly and I can start the actual texture detailing faster.
Another stage in the process is "rigging," which means placing "bones" in the mesh to allow it to move. I have two sets of bones, the actual bones that will deform the mesh and bones that I use for animating. The animating bones have constraints on them so they only move the way they should, no matter what I try to do them.
Finally, in Unreal Engine 4 (UE4) everything starts to come to life. I make an animation blueprint that lays the groundwork for Tyler. He can then add the code to call (trigger) the animations when needed in-game.