Achievement | Engine/Game --------------------------------------------------------------------------------------------- | ------------- storing world space positions in gbuffer | STALKER uploaded texture upside down | All Quake engines fixed function pipeline on top of a single vertex buffer | Tesseract made your own texture compression format that works with the driver's decoder somehow | Darkplaces (S2TC) cleared color, depth and stencil buffers individually | idTech4 line rendering with quads | Various per-vertex lighting | Cube, Minecraft, Gears of War, Skyrim used facet normals | Various manual gamma correction on sRGB textures | Various used degenerate vertices to build triangle strip | Various used separate vertex buffers for vertex attributes | Various blamed it on the driver | Every engine "fixed" shadow acne with subnormal bias | Darkplaces, Cube2, Tesseract surface area heuristic uses hyperbolic functions | Irrlicht scene graph is a linked list | GL Quake, Serious Sam mixing audio in render loop | Win Quake, GL Quake blocking on hardware occlusion queries | Various skeletal animation done in scripting language | Total Annihilation, Natrual Selection 2 wrote a geometry shader | Various "AAA" engines environment mapping using different sky texture | Various block-compresssed tangent space normal maps | Various font rendering with texture per-glyph | libass wrote SIMD for unaligned data | idTech3, idTech4, Darkplaces, others integrated Scaleform | Wayforward, others shipped a debug build | Skyrim shipped with debugger because it didn't crash in debugger | Unknown compiled with -ffast-math and physics became more interesting | Any engine using Bullet issued hardware occlusion queries for the HUD | Stardock (Galactic Civilizations) render functions are virtual | Unreal 4 glReadPixels without a PBO | Various destroyed render resources after deleting graphics context | Various wrote software rasterizer because driver kept crashing | Epic (UT99) (Pixomatic) level stored in XML | Various tile/side-scroller games shipped dedicated server bins for s390x only | Battlefield 1942 (x86 came later) "thread safe" heap allocator uses thread local storage as a heap | Unknown game scripting language requires a SAT solver | Mono scripting (C# requires SAT) engine depends on Qt | Wayforward (arguable though) hybrid shader language built ontop of macros targeting GLSL and HLSL | Source 2 (togl), Doom 3 BFG, RAGE implemented atomics using global mutex | Oberon Media debug build is slower than running release build in valgrind | Neothyne incremental GC is called when player takes damage | Unknown in game updater uses bittorrent | WoW in-house developed SWF renderer | Doom 3 BFG, RAGE temporal blocking artefacts caused from encoding video frames with S3TC | Neothyne added whitespace because asset hashed to the same hash as another asset | Spyro: Enter the Dragon engine (or engine components) are shared libraries | Source 2 gimbal lock while using quaternions because euler angles still exist in pipeline | Neothyne issued a hardware occlusion query based on a *future* frame (frame independent rendering) | Not disclosed actually did something about "half pixel offset" in D3D that made things worse | Unity used both OpenGL and D3D at the same time | CryEngine (Compute was GL) Ported to OSx and Linux by writing a D3D to OpenGL "porting layer" | CryEngine, Source Physics simulation fixes T-junctions in meshes each physics step | CryEngine Syncronization primitives implemented with shared memory and files (File system sync) | CryEngine User interface is a webbrower | Tabletop Simulator, Overgrowth, GTA V, others Allocates all of system memory | Various Input event processing on audio thread | Bioshock Infinite IPC using flat files on disk | XCom Oblique frustum is actually a cylinder | Starsiege: Tribes SIMD math code using virtual functions | No Man's Sky Serialized entity state as separate files (with more open FDs than a default install supports) | ARK: Survival Evolved native Linux/MacOS OpenGL port runs slower than Windows version in Wine | Source engine shipped with assertions enabled | Shovel Knight bootstraps itself just so it can render its icon set | Houdini creates temporary files to format strings, which is then used as keys to reference objects | CryEngine reference counted pointers for event handling in input processing | Godot everything inherits from a base object type | Godot, UE, UE2, UE3, UE4, CryEngine