Imposters
October 3rd, 2010
We can achieve a lot of performance gains by using texture atlases and instancing, but it won't be enough for dense environments like forests and jungles. For these, we need imposters! What are imposters? Imposters are an extreme form of LOD (level of detail) optimization, replacing entire models with simple, flat pictures of themselves. They are much like the ...
SIMD optimization
September 22nd, 2010
Fifteen years ago, it would be impossible to make a graphics-intensive game without using hand-written assembly language. Almost all classic games used it extensively, including Doom, Marathon and Prince of Persia. That has all changed with modern optimizing compilers and complicated CPUs. Now, writing assembly code by hand hurts performance more often than not, and is largely just used for ...
Face morph test
August 22nd, 2010
To test out facial expressions, I created shapes for winking, squinting, sniffing, and 'oh' phonemes. Then to see how they looked in-engine, I used Angelscript to weight them with asynchronous sine waves. This means that each shape cycles smoothly between its 'on' and 'off' state, and since they cycle at different rates, we can see them in every possible combination ...
OpenGL update
August 21st, 2010
Since my controversial post comparing OpenGL and DirectX, there have been two significant new developments: the release of OpenGL 4.1 and the release of Steam for Mac. OpenGL 4.0 Tessellation with TessMark A few months ago, the Khronos Group announced the release of OpenGL 4.0, bringing it to "feature parity" with DirectX 11, including the much-advertised tessellation ...
Hand shapes with intermediate frames
August 12th, 2010
Some of you asked whether Robbert could make fists yet, so here is an update on that front. This is a pretty important feature for a fighting game -- punches are difficult to perform without fists. It takes a lot of bones to rig a hand, even a simplified one like Robbert's. You need at least two bones per finger ...
AWOL technology
August 8th, 2010
Aubrey recently posted about the artwork he did for a pre-Overgrowth game prototype, called AWOL. Today I'd like to show some of the technical work I did for that prototype. The first thing I did is make a quick level editor to test out the basic movement and aiming controls. This allowed us to easily create simple test levels ...
Linear algebra for game developers ~ part 4
July 31st, 2010
Last time we talked about transformation matrices, and how they let us change from one coordinate system to another. A lot of you expressed interest in quaternions, so today I will go over 3D rotations. But first let's review 2D rotations. 2D Rotation Since there is only one possible axis of rotation (the axis going into the screen), the ...