steam – 3d engine, Delphi (2001-2002)


• 25KB

After playing with hardware rendering for a while I decided to go back and restart from scratch. The reason why I did this was because I really wanted to make a fast and full-featured software rendering engine, so this was my first attempt. I then decided to keep an implementation close to OpenGL and Direct3D on the low-level side of the engine. This option would allow me to expand easily in the future.

I didn’t achieve all my goals with this engine, but it was a good experience, it always is. This project would eventually evolve to a more advanced state when I decided to port the code to C++ and change the name from “steam” to the old “motion”. I changed the name because meanwhile Valve took the liberty to make Steam a trademark.


•  Support for 16bit (5:6:5) and 32bit (8:8:8:8) targets.
•  Multiple viewports.
•  Multiple render targets.
•  Backface culling.
•  Accurate wireframe, flat & gouraud shading triangle rasterizers.
•  Sub-pixel and sub-texel accuracy.
•  Z-buffer / W-buffer.
•  Transformation and Lighting with a partial phong illumination model.
•  Multiple cameras.
•  Frustum culling with 3d polygon clipping.
•  Depth polygon sorting.
•  Loading of MS3D (Milkshape) models.
•  Math libraries.