10
Dec

Basic Graphics Implementation

Overview When I first started this site I was originally planning to post about the construction of the engine along the way, what design decisions I made, and why.  Now that I am restarting the graphics portion of the engine it is a good chance to do that.  I won’t cover everything I do for [...]

05
Dec

Scene Graphs

Overview There are a lot of misconceptions regarding what a scene graph is, does, and how it is applied to the world of video games.  For many years even Wikipedia took note of this confusion and mentioned the dispute within in the industry as to exactly what it is and does.  This is probably largely [...]

29
Nov

State of the Engine

Since joining tri-Ace 2 years ago I have learned a lot about physically based rendering and from working on their in-house engine I have gleaned new ideas on engine design.  Not only that but I was building off a previous iteration of my engine which was mainly based on DirectX 9, meanwhile DirectX 11 has [...]

06
Feb

Efficient Instant-Insertion Quadtrees

Overview This tutorial will present an efficient implementation of quadtrees.  It is expected that you have at least a basic understanding of what quadtrees are and do, and if not you can read about them here: http://en.wikipedia.org/wiki/Quadtree Although they improve performance in algorithms related to searching for visible objects or in detecting collisions for physics, quadtrees [...]

09
Dec

[Update] Personal

I wanted to avoid posting anything personal here at all costs, but it has been so long since the last update I felt I need to explain the current state of things so that people do not misunderstand that the project is dead. It is quite far from it. I am currently working on getting [...]

11
Oct

[Release] LSDxt DXT Compressor

The first version of my DXT compressor is now available for release here. The algorithm and comparisons are described here: DXT Compression Revisited Here is a list of the commands: -file <path> Input file to process.  There can be multiple of these. -outfile <path> Output file for the last -file input.  By default, if no output [...]

18
Aug

[Progress Update] DirectX® 11 and Reflections

It has been a while since I have posted, but only because my progress has recently been hindered greatly.  A few weeks ago my hard drive fully crashed and I had to get a new one, reinstall both operating systems (twice), and a lot of software.  I still haven’t installed everything. Then I went to [...]

08
Jun

[Progress Update] BRDF’s, Cell Shading, DirectX 10, Windows x64, and More

Although I have not posted any updates for a while I am no slouch.  Of course given my .MAP tutorials that are still in progress it is clear that I am still working.  But that is really only the tip of the iceberg. I left DirectX 10 behind long ago but have recently been catching [...]

20
May

Making Buildings from .MAP Files Part 2

Overview This is part 2 of my series on loading buildings/interiors/maps from Valve Hammer Editor .MAP files.  Part 1 can be found here.  The purpose of this tutorial is ultimately to generate a convex solid-leaf BSP tree in which each leaf contains at least part of a room.  Generating convex sets of polygons is the first [...]

14
May

Making Buildings from .MAP Files Part 1

Overview Valve Hammer Editor is a pretty common tool for making buildings and structures for games these days, and in some cases entire levels.  It exports .MAP files containing solids, called “brushes”, which make up the solid areas of the building/structure/map.  There are a few tools that can convert these to .BSP files for use [...]

31
Mar

Fixed-Time-Step Implementation

Overview There are many topics covering the concept behind fixing your time step.  Last time I read them was many years ago and having just re-read them I just realized they already cover about 50% of what I planned to cover, but while they do give implementations and explain certain concepts fairly well, people still [...]

11
Mar

[Update] Post Processing

Another progress update.  There isn’t much special to say about what I have added because it is fairly standard post-processing, but I felt a few screenshots would be of interest for anyone following this project. I generally lay down a solid foundation before adding any features.  I could have added post-processing long ago but I [...]

11
Mar

Passing Data Between Game States

Overview I mentioned in the previous article that passing data between game states is easy enough, and a many readers wanted to know how this could be done.  So by popular demand I will provide 2 methods for how this can be done.  I will also go into more detail on how state changes are [...]

03
Mar

General Game/Engine Structure

Overview The subject of how one should organize a game has been appearing a lot lately.  Mainly these questions are focused on how to organize all the different parts of the game, such as the menu, the gameplay area, the bonus rounds, the story screens, etc. The most common proposal I see are switch cases [...]

15
Feb

DXT Compression Revisited

Pre(r)amble I made a previous post on a new method for compressing images into the DXT format.  Various sources, including former NVIDIA employee Ignacio Castaño, agreed that the quality was not quite what it should be, and I began a more thorough investigation into why.  Some of my test images also had a few bad artifacts [...]

04
Jan

iOS Support

A few weeks ago I purchased a MacBook Pro and later began the arduous process of porting the engine to iOS.  My engine is organized into mini-engines, which are each their own projects (brought together into one master project) and build into separate libraries.  The sound library, terrain library, physics library, etc.  This keeps things [...]

01
Dec

New DXT Compressor (Algorithm Explained)

Overview DXTn is a type of image compression whose decompression is hardware-accelerated, which means you can send the same amount of texture information over the bus to the graphics card for a much smaller bandwidth fee since it does not need to be decompressed before the transfer.  This makes DDS files using the DXTn compression [...]

13
Nov

[Progress Update] Shadows

The last progress I posted that included screenshots was when I added textures.  That was a few months ago.  While I have not had much to report since then, I have been no lazy bum.  There were many advancements, but I wanted to wait until I had shadows before I posted anything major. I am [...]

27
Oct

Procedures for Safe Coding

Overview One of the things every programmer learns as he or she gains experience is how to avoid mistakes.  Each time you make a mistake, you surely consider a way to avoid that mistake next time.  As you gain experience, you start to discover practices that can help you to avoid a lot of mistakes. [...]