De meeste spellen uit de echte oude doos bestaan uit één brok code, maar ongeveer tegelijk met het verschijnen van de eerste 3D games, waarvoor zeer gespecialiseerde stukken code werden gemaakt, ontstond de behoefte om delen van deze spellen makkelijk opnieuw te kunnen gebruiken. Daarom werd het kloppende grafische hart van het spel al snel ondergebracht in een 'engine', die qua opbouw en code helemaal werd losgekoppeld van het daadwerkelijke spel.
Daardoor kon de - vaak complexe - achterliggende techniek niet alleen makkelijk aangepast worden voor eventuele opvolgers, maar konden zelfs compleet andere genres van spellen gebouwd worden rond dezelfde kern. Een goed voorbeeld hiervan is een voetbalspel dat gebruik maakt van de engine die John Carmack oorsprongelijk voor Quake ontwikkelde. Extreme Tech gaat een serie van elf artikelen produceren waarin ze de basis van een moderne 3D game engine in begrijpelijke taal uitleggen. In het eerste deel gaan ze in op de basis van de renderer, een onmisbaar onderdeel van iedere engine voor het aansturen van de videokaart. Hieronder een greep uit de tekst over BSP:
I'm sure you've heard the term BSP used when talking about Doom or Quake. It stands for Binary Space Partitioning. This is a way of dividing up the world into small sections, and organizing the world polygons such that it's easy to determine what's visible and what's not -- handy for software based renderers that don't want to be doing too much overdrawing. It also has the effect of telling you where you are in the world in a very efficient fashion.
A Portal based engine (first really brought to the gaming world by the defunct project Prey from 3D Realms) is one where each area (or room) is built as its own model, with doors (or portals) in each section that can view another section. The renderer renders each section individually as separate scenes. At least that's the theory. Suffice to say this is a required part of any renderer and is more often than not of great importance. Some of these techniques fall under the heading of "occlusion culling", but all of them have the same intent: eliminate unnecessary work early.
![]() |