Skip to content

Instantly share code, notes, and snippets.

@graphitemaster
Last active October 7, 2024 07:07
Show Gist options
  • Select an option

  • Save graphitemaster/f8e6666c48fbedf6e554 to your computer and use it in GitHub Desktop.

Select an option

Save graphitemaster/f8e6666c48fbedf6e554 to your computer and use it in GitHub Desktop.

Revisions

  1. graphitemaster revised this gist Nov 15, 2018. 1 changed file with 7 additions and 7 deletions.
    14 changes: 7 additions & 7 deletions gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -9,25 +9,25 @@ line rendering with quads
    per-vertex lighting | Cube, Minecraft, Gears of War, Skyrim | Looks very bad compared to lightmaps and or realtime lighting |
    used facet normals | Goldsrc, UE2, UE3 | Looks very bad compared to smooth normals, lighting will be incorrect |
    manual gamma correction on sRGB textures | Various | Incorrect and defeats the purpose of sRGB assist |
    used degenerate vertices to build triangle strip | UE1, Goldsrc, Source, Witness (lightmap mesh parameterization) | Degenerate vertices can lead to rendering artifacrs depending on hardware |
    used degenerate vertices to build triangle strip | UE1, Goldsrc, Source, Witness (lightmap mesh parameterization) | Degenerate vertices can lead to rendering artifacts depending on hardware |
    used separate vertex buffers for vertex attributes | Frostbite, idTech3, idTech4, UE3, UE4 | Interleaved data is more efficent |
    blamed it on the driver | Every engine | Wastes time |
    "fixed" shadow acne with subnormal bias | Irrlicht, Godot, Serious Sam | Floating point precision can lead to rendering artifacts |
    surface area heuristic uses hyperbolic functions | Irrlicht, Frostbite | Geometry is Euclidean not hyperbolic, this is just completely wrong |
    scene graph is a linked list | GL Quake, Serious Sam | Not very cache efficent |
    mixing audio in render loop | Win Quake, GL Quake, qfusion (Warsow) | Ties audio mixing to framerate and hitches in rendering can cause audio aliasing |
    blocking on hardware occlusion queries | Various | Defeats the purpose of culling (to speed things up; blocking is the opposite) |
    skeletal animation done in scripting language | Total Annihilation, Natrual Selection 2, Unity | Skeletal animation is expensive why would you do it in non-native code? |
    skeletal animation done in scripting language | Total Annihilation, Natrual Selection 2, Unity | Skeletal animation is expensive, why would you do it in non-native code? |
    wrote a geometry shader | Various "AAA" engines | Often slower than just feeding data from CPU due to how HW implements them |
    environment mapping using different sky texture | Various | Reflections are incorrect |
    block-compresssed tangent space normal maps | Various | Normal maps break when block-compressed |
    font rendering with texture per-glyph | libass, Gutair Hero III | That's a lot of textures and texture binds |
    wrote SIMD for unaligned data | idTech3, idTech4, Darkplaces, others | Processing unaligned data is slower than aligned and often slower than scalar |
    integrated Scaleform | Wayforward, CryEngine, XCOM2, Several others. | Scaleform is huge and crashes linkers it's also full of bugs, don't use it |
    integrated Scaleform | Wayforward, CryEngine, XCOM2, Several others. | Scaleform is huge and crashes linkers, it's also full of bugs, don't use it |
    shipped a debug build | Skyrim | Debug builds run slower and often contain source code |
    shipped with debugger because it didn't crash in debugger | Wing Commander (sort of) | No time to fix a bug |
    modified debugger exception to hide a crash | Wing Commander | But time to hide it |
    compiled with -ffast-math and physics became more interesting | Anything which uses Bullet. | Bullet depends on subnormals and other strnage float quirkyness to work |
    compiled with -ffast-math and physics became more interesting | Anything which uses Bullet. | Bullet depends on subnormals and other strange float quirkyness to work |
    issued hardware occlusion queries for the HUD | Stardock (Galactic Civilizations) | The HUD is always visible why issue queries for it? |
    render functions are virtual | UE3, UE4, CryEngine | Virtual dispatch on different renderables is not cache friendly |
    glReadPixels without a PBO | Various | Blocks the render thread and forces a syncronization, i.e causes a hitch |
    @@ -38,10 +38,10 @@ shipped dedicated server bins for s390x only
    game scripting language requires a SAT solver | Mono scripting (C# requires SAT) | SAT solving is expensive and confusing |
    engine depends on Qt | Wayforward, Doomsday | Qt is a massive runtime dependency |
    hybrid shader language built ontop of macros targeting GLSL and HLSL | Source 2 (togl), Doom 3 BFG, RAGE | The readability of Perl |
    debug build is slower than running release build in valgrind | Neothyne | Valgrind emulates x86 imagine debug native slower than release interprted |
    debug build is slower than running release build in valgrind | Neothyne | Valgrind emulates x86, imagine debug native slower than release interpreted |
    incremental GC is called when player takes damage | Several shipped RenPy and Love2D games. | Need to hide the GC pauses somewhere |
    in game updater uses bittorrent | WoW, Halo3 for PC. | Too cheap to host distribution so saturate everyone's internet instead |
    in-house developed SWF renderer | Doom 3 BFG, RAGE | SWF has embedded action script |
    in-house developed SWF renderer | Doom 3 BFG, RAGE | SWF has embedded Actionscript |
    added whitespace because asset hashed to the same hash as another asset | Spyro: Enter the Dragon | Not enough time to replace the hash function |
    engine (or engine components) are shared libraries | Source 2, Godot, Irrlicht | Waste of development time to maintain builds and offers no real benefit |
    actually did something about "half pixel offset" in D3D that made things worse | Unity | Waste of development time to fix something that only made things worse |
    @@ -54,7 +54,7 @@ Allocates all of system memory
    Input event processing on audio thread | Bioshock Infinite | Audio heavy scenes drop input events randomly |
    IPC using flat files on disk | XCOM | File explosion |
    Oblique frustum is actually a cylinder | Starsiege: Tribes | Doesn't work and causes culling issues |
    SIMD math code using virtual functions | No Man's Sky, Doom 3 BFG | Virtual dispatch breaks pipelining of SIMD on some older architectures |
    SIMD math code using virtual functions | No Man's Sky, Doom 3 BFG | Virtual dispatch breaks pipelining of SIMD on some older microarchitectures |
    Serialized entity state as separate files (with more open FDs than a default install supports) | ARK: Survival Evolved | File explosion and requires ulimit adjustments to work on Linux due to FD limit |
    native Linux/MacOS OpenGL port runs slower than Windows version in Wine | Source, Source2, Minetest | Bad port |
    shipped with assertions enabled | Shovel Knight | Makes things slower and can cause confusion for users if one triggers |
  2. graphitemaster revised this gist Nov 15, 2018. 1 changed file with 65 additions and 65 deletions.
    130 changes: 65 additions & 65 deletions gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -1,65 +1,65 @@
    Achievement | Engine/Game
    --------------------------------------------------------------------------------------------- | -------------
    storing world space positions in gbuffer | STALKER, F.E.A.R.
    uploaded texture upside down | Various engines, mostly Quake derived.
    fixed function pipeline on top of a single vertex buffer | Tesseract, GoG porting layer
    made your own texture compression format that works with the driver's decoder somehow | Darkplaces (S2TC)
    cleared color, depth and stencil buffers individually | idTech4, Unity
    line rendering with quads | Various
    per-vertex lighting | Cube, Minecraft, Gears of War, Skyrim
    used facet normals | Goldsrc, UE2, UE3
    manual gamma correction on sRGB textures | Various
    used degenerate vertices to build triangle strip | UE1, Goldsrc, Source, Witness (lightmap mesh parameterization)
    used separate vertex buffers for vertex attributes | Frostbite, idTech3, idTech4, UE3, UE4
    blamed it on the driver | Every engine
    "fixed" shadow acne with subnormal bias | Irrlicht, Godot, Serious Sam
    surface area heuristic uses hyperbolic functions | Irrlicht, Frostbite
    scene graph is a linked list | GL Quake, Serious Sam
    mixing audio in render loop | Win Quake, GL Quake, qfusion (Warsow)
    blocking on hardware occlusion queries | Various
    skeletal animation done in scripting language | Total Annihilation, Natrual Selection 2, Unity
    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, Gutair Hero III
    wrote SIMD for unaligned data | idTech3, idTech4, Darkplaces, others
    integrated Scaleform | Wayforward, CryEngine, XCOM2, Several others.
    shipped a debug build | Skyrim
    shipped with debugger because it didn't crash in debugger | Wing Commander (sort of)
    modified debugger exception to hide a crash | Wing Commander
    compiled with -ffast-math and physics became more interesting | Anything which uses Bullet.
    issued hardware occlusion queries for the HUD | Stardock (Galactic Civilizations)
    render functions are virtual | UE3, UE4, CryEngine
    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)
    game scripting language requires a SAT solver | Mono scripting (C# requires SAT)
    engine depends on Qt | Wayforward, Doomsday
    hybrid shader language built ontop of macros targeting GLSL and HLSL | Source 2 (togl), Doom 3 BFG, RAGE
    debug build is slower than running release build in valgrind | Neothyne
    incremental GC is called when player takes damage | Several shipped RenPy and Love2D games.
    in game updater uses bittorrent | WoW, Halo3 for PC.
    in-house developed SWF renderer | Doom 3 BFG, RAGE
    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, Godot, Irrlicht
    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, Several 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, Doom 3 BFG
    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, Source2, Minetest
    shipped with assertions enabled | Shovel Knight
    bootstraps itself just so it can render its own icon set | Houdini
    creates temporary files to format strings, which is then used as keys to reference objects | CryEngine
    reference counted pointers for simple value types like vectors and events | Godot
    everything inherits from a base object type | Godot, UE, UE2, UE3, UE4, CryEngine
    decided to use a lesser supported graphics API than the one they wanted to use | Godot
    Achievement | Engine/Game | Why it's bad |
    ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
    storing world space positions in gbuffer | STALKER, F.E.A.R. | Depth buffer can be used to derive position saving a lot of memory bandwidth |
    uploaded texture upside down | Various engines, mostly Quake derived. | Difficult to debug with tools like apitrace, nsight, pix, renderdoc, etc |
    fixed function pipeline on top of a single vertex buffer | Tesseract, GoG porting layer | Inefficent use of modern rendering since you need to stream data every frame |
    made your own texture compression format that works with the driver's decoder somehow | Darkplaces (S2TC) | To avoid S3TC patents which are now expired |
    cleared color, depth and stencil buffers individually | idTech4, Unity | Clearing them individually is slow path in driver, all at once is optimal |
    line rendering with quads | Various | Less efficent and don't get hardware assisted AA like line rendering gets |
    per-vertex lighting | Cube, Minecraft, Gears of War, Skyrim | Looks very bad compared to lightmaps and or realtime lighting |
    used facet normals | Goldsrc, UE2, UE3 | Looks very bad compared to smooth normals, lighting will be incorrect |
    manual gamma correction on sRGB textures | Various | Incorrect and defeats the purpose of sRGB assist |
    used degenerate vertices to build triangle strip | UE1, Goldsrc, Source, Witness (lightmap mesh parameterization) | Degenerate vertices can lead to rendering artifacrs depending on hardware |
    used separate vertex buffers for vertex attributes | Frostbite, idTech3, idTech4, UE3, UE4 | Interleaved data is more efficent |
    blamed it on the driver | Every engine | Wastes time |
    "fixed" shadow acne with subnormal bias | Irrlicht, Godot, Serious Sam | Floating point precision can lead to rendering artifacts |
    surface area heuristic uses hyperbolic functions | Irrlicht, Frostbite | Geometry is Euclidean not hyperbolic, this is just completely wrong |
    scene graph is a linked list | GL Quake, Serious Sam | Not very cache efficent |
    mixing audio in render loop | Win Quake, GL Quake, qfusion (Warsow) | Ties audio mixing to framerate and hitches in rendering can cause audio aliasing |
    blocking on hardware occlusion queries | Various | Defeats the purpose of culling (to speed things up; blocking is the opposite) |
    skeletal animation done in scripting language | Total Annihilation, Natrual Selection 2, Unity | Skeletal animation is expensive why would you do it in non-native code? |
    wrote a geometry shader | Various "AAA" engines | Often slower than just feeding data from CPU due to how HW implements them |
    environment mapping using different sky texture | Various | Reflections are incorrect |
    block-compresssed tangent space normal maps | Various | Normal maps break when block-compressed |
    font rendering with texture per-glyph | libass, Gutair Hero III | That's a lot of textures and texture binds |
    wrote SIMD for unaligned data | idTech3, idTech4, Darkplaces, others | Processing unaligned data is slower than aligned and often slower than scalar |
    integrated Scaleform | Wayforward, CryEngine, XCOM2, Several others. | Scaleform is huge and crashes linkers it's also full of bugs, don't use it |
    shipped a debug build | Skyrim | Debug builds run slower and often contain source code |
    shipped with debugger because it didn't crash in debugger | Wing Commander (sort of) | No time to fix a bug |
    modified debugger exception to hide a crash | Wing Commander | But time to hide it |
    compiled with -ffast-math and physics became more interesting | Anything which uses Bullet. | Bullet depends on subnormals and other strnage float quirkyness to work |
    issued hardware occlusion queries for the HUD | Stardock (Galactic Civilizations) | The HUD is always visible why issue queries for it? |
    render functions are virtual | UE3, UE4, CryEngine | Virtual dispatch on different renderables is not cache friendly |
    glReadPixels without a PBO | Various | Blocks the render thread and forces a syncronization, i.e causes a hitch |
    destroyed render resources after deleting graphics context | Various | Undefined behavior |
    wrote software rasterizer because driver kept crashing | Epic (UT99) (Pixomatic) | Impressive but also a huge waste of time and technical debt |
    level stored in XML | Various tile/side-scroller games | XML is the worst serialization format for levels |
    shipped dedicated server bins for s390x only | Battlefield 1942 (x86 came later) | No one has s390x hardware |
    game scripting language requires a SAT solver | Mono scripting (C# requires SAT) | SAT solving is expensive and confusing |
    engine depends on Qt | Wayforward, Doomsday | Qt is a massive runtime dependency |
    hybrid shader language built ontop of macros targeting GLSL and HLSL | Source 2 (togl), Doom 3 BFG, RAGE | The readability of Perl |
    debug build is slower than running release build in valgrind | Neothyne | Valgrind emulates x86 imagine debug native slower than release interprted |
    incremental GC is called when player takes damage | Several shipped RenPy and Love2D games. | Need to hide the GC pauses somewhere |
    in game updater uses bittorrent | WoW, Halo3 for PC. | Too cheap to host distribution so saturate everyone's internet instead |
    in-house developed SWF renderer | Doom 3 BFG, RAGE | SWF has embedded action script |
    added whitespace because asset hashed to the same hash as another asset | Spyro: Enter the Dragon | Not enough time to replace the hash function |
    engine (or engine components) are shared libraries | Source 2, Godot, Irrlicht | Waste of development time to maintain builds and offers no real benefit |
    actually did something about "half pixel offset" in D3D that made things worse | Unity | Waste of development time to fix something that only made things worse |
    used both OpenGL and D3D at the same time | CryEngine (Compute was GL) | Impressive but also requires extensions to share resources between contexts |
    Ported to OSx and Linux by writing a D3D to OpenGL "porting layer" | CryEngine, Source | The time to develop that surely must've been more than just writing a GL backend |
    Physics simulation fixes T-junctions in meshes each physics step | CryEngine | It's possible to simulate without making T-junctions to begin with |
    Syncronization primitives implemented with shared memory and files (File system sync) | CryEngine | Using file IO to syncronize code |
    User interface is a webbrower | Tabletop Simulator, Overgrowth, GTA V, Several others. | Massive dependency full of security holes |
    Allocates all of system memory | Various | Waste of virtual address space makes context switching overhead more expensive |
    Input event processing on audio thread | Bioshock Infinite | Audio heavy scenes drop input events randomly |
    IPC using flat files on disk | XCOM | File explosion |
    Oblique frustum is actually a cylinder | Starsiege: Tribes | Doesn't work and causes culling issues |
    SIMD math code using virtual functions | No Man's Sky, Doom 3 BFG | Virtual dispatch breaks pipelining of SIMD on some older architectures |
    Serialized entity state as separate files (with more open FDs than a default install supports) | ARK: Survival Evolved | File explosion and requires ulimit adjustments to work on Linux due to FD limit |
    native Linux/MacOS OpenGL port runs slower than Windows version in Wine | Source, Source2, Minetest | Bad port |
    shipped with assertions enabled | Shovel Knight | Makes things slower and can cause confusion for users if one triggers |
    bootstraps itself just so it can render its own icon set | Houdini | Excessive masturbation |
    creates temporary files to format strings, which is then used as keys to reference objects | CryEngine | File io to format strings and also lookup hashtable values by key |
    reference counted pointers for simple value types like vectors and events | Godot | Unnecessary |
    everything inherits from a base object type | Godot, UE, UE2, UE3, UE4, CryEngine | OOP spelt backwards is POO |
    decided to use a lesser supported graphics API than the one they wanted to use | Godot | Tons of extension wrangling that is buggy and requires driver workarounds |
  3. graphitemaster revised this gist May 29, 2018. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -61,4 +61,5 @@ shipped with assertions enabled
    bootstraps itself just so it can render its own icon set | Houdini
    creates temporary files to format strings, which is then used as keys to reference objects | CryEngine
    reference counted pointers for simple value types like vectors and events | Godot
    everything inherits from a base object type | Godot, UE, UE2, UE3, UE4, CryEngine
    everything inherits from a base object type | Godot, UE, UE2, UE3, UE4, CryEngine
    decided to use a lesser supported graphics API than the one they wanted to use | Godot
  4. graphitemaster revised this gist Dec 25, 2017. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -15,7 +15,7 @@ blamed it on the driver
    "fixed" shadow acne with subnormal bias | Irrlicht, Godot, Serious Sam
    surface area heuristic uses hyperbolic functions | Irrlicht, Frostbite
    scene graph is a linked list | GL Quake, Serious Sam
    mixing audio in render loop | Win Quake, GL Quake
    mixing audio in render loop | Win Quake, GL Quake, qfusion (Warsow)
    blocking on hardware occlusion queries | Various
    skeletal animation done in scripting language | Total Annihilation, Natrual Selection 2, Unity
    wrote a geometry shader | Various "AAA" engines
  5. graphitemaster revised this gist Sep 25, 2017. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -61,4 +61,4 @@ shipped with assertions enabled
    bootstraps itself just so it can render its own icon set | Houdini
    creates temporary files to format strings, which is then used as keys to reference objects | CryEngine
    reference counted pointers for simple value types like vectors and events | Godot
    everything inherits from a base object type | Godot, UE, UE2, UE3, UE4, CryEngine, Cube2, Tesseract
    everything inherits from a base object type | Godot, UE, UE2, UE3, UE4, CryEngine
  6. graphitemaster revised this gist Sep 25, 2017. 1 changed file with 24 additions and 28 deletions.
    52 changes: 24 additions & 28 deletions gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -1,68 +1,64 @@
    Achievement | Engine/Game
    --------------------------------------------------------------------------------------------- | -------------
    storing world space positions in gbuffer | STALKER
    storing world space positions in gbuffer | STALKER, F.E.A.R.
    uploaded texture upside down | Various engines, mostly Quake derived.
    fixed function pipeline on top of a single vertex buffer | Tesseract
    fixed function pipeline on top of a single vertex buffer | Tesseract, GoG porting layer
    made your own texture compression format that works with the driver's decoder somehow | Darkplaces (S2TC)
    cleared color, depth and stencil buffers individually | idTech4
    cleared color, depth and stencil buffers individually | idTech4, Unity
    line rendering with quads | Various
    per-vertex lighting | Cube, Minecraft, Gears of War, Skyrim
    used facet normals | Various
    used facet normals | Goldsrc, UE2, UE3
    manual gamma correction on sRGB textures | Various
    used degenerate vertices to build triangle strip | Various
    used separate vertex buffers for vertex attributes | Various
    used degenerate vertices to build triangle strip | UE1, Goldsrc, Source, Witness (lightmap mesh parameterization)
    used separate vertex buffers for vertex attributes | Frostbite, idTech3, idTech4, UE3, UE4
    blamed it on the driver | Every engine
    "fixed" shadow acne with subnormal bias | Darkplaces, Cube2, Tesseract
    surface area heuristic uses hyperbolic functions | Irrlicht
    "fixed" shadow acne with subnormal bias | Irrlicht, Godot, Serious Sam
    surface area heuristic uses hyperbolic functions | Irrlicht, Frostbite
    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
    skeletal animation done in scripting language | Total Annihilation, Natrual Selection 2, Unity
    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
    font rendering with texture per-glyph | libass, Gutair Hero III
    wrote SIMD for unaligned data | idTech3, idTech4, Darkplaces, others
    integrated Scaleform | Wayforward, others
    integrated Scaleform | Wayforward, CryEngine, XCOM2, Several 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
    shipped with debugger because it didn't crash in debugger | Wing Commander (sort of)
    modified debugger exception to hide a crash | Wing Commander
    compiled with -ffast-math and physics became more interesting | Anything which uses Bullet.
    issued hardware occlusion queries for the HUD | Stardock (Galactic Civilizations)
    render functions are virtual | Unreal 4
    render functions are virtual | UE3, UE4, CryEngine
    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, Doomsday
    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
    incremental GC is called when player takes damage | Several shipped RenPy and Love2D games.
    in game updater uses bittorrent | WoW, Halo3 for PC.
    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
    engine (or engine components) are shared libraries | Source 2, Godot, Irrlicht
    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
    User interface is a webbrower | Tabletop Simulator, Overgrowth, GTA V, Several others.
    Allocates all of system memory | Various
    Input event processing on audio thread | Bioshock Infinite
    IPC using flat files on disk | XCom
    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
    SIMD math code using virtual functions | No Man's Sky, Doom 3 BFG
    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, Source2, Minetest
    shipped with assertions enabled | Shovel Knight
    bootstraps itself just so it can render its icon set | Houdini
    bootstraps itself just so it can render its own 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
    reference counted pointers for simple value types like vectors and events | Godot
    everything inherits from a base object type | Godot, UE, UE2, UE3, UE4, CryEngine, Cube2, Tesseract
  7. graphitemaster revised this gist Sep 24, 2017. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -60,7 +60,7 @@ IPC using flat files on disk
    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
    native Linux/MacOS OpenGL port runs slower than Windows version in Wine | Source, Source2, Minetest
    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
  8. graphitemaster revised this gist Sep 24, 2017. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,7 @@
    Achievement | Engine/Game
    --------------------------------------------------------------------------------------------- | -------------
    storing world space positions in gbuffer | STALKER
    uploaded texture upside down | Various engines, mostly quake derived.
    uploaded texture upside down | Various engines, mostly Quake derived.
    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
  9. graphitemaster revised this gist Sep 24, 2017. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,7 @@
    Achievement | Engine/Game
    --------------------------------------------------------------------------------------------- | -------------
    storing world space positions in gbuffer | STALKER
    uploaded texture upside down | All Quake engines
    uploaded texture upside down | Various engines, mostly quake derived.
    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
  10. graphitemaster revised this gist Sep 24, 2017. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -36,7 +36,7 @@ level stored in XML
    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)
    engine depends on Qt | Wayforward, Doomsday
    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
  11. graphitemaster revised this gist Sep 24, 2017. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -64,4 +64,5 @@ native Linux/MacOS OpenGL port runs slower than Windows version in Wine
    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 vector types | Godot
    reference counted pointers for event handling in input processing | Godot
    everything inherits from a base object type | Godot, UE, UE2, UE3, UE4, CryEngine
  12. graphitemaster revised this gist Sep 24, 2017. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -63,4 +63,5 @@ Serialized entity state as separate files (with more open FDs than a default ins
    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
    creates temporary files to format strings, which is then used as keys to reference objects | CryEngine
    reference counted pointers for vector types | Godot
  13. graphitemaster revised this gist Aug 10, 2017. 1 changed file with 14 additions and 13 deletions.
    27 changes: 14 additions & 13 deletions gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -1,32 +1,32 @@
    Achievement | Engine/Game
    --------------------------------------------------------------------------------------------- | -------------
    storing world space positions in gbuffer | STALKER
    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
    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
    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
    used separate vertex buffers for vertex attributes | Various
    blamed it on the driver | Every engine
    "fixed" shadow acne with subnormal bias | Darkplaces, Cube2, Tesseract
    "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
    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
    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
    @@ -48,18 +48,19 @@ added whitespace because asset hashed to the same hash as another asset
    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
    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
    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
    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
    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 iconset | Houdini
    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
  14. graphitemaster revised this gist Mar 10, 2017. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -61,4 +61,5 @@ Oblique frustum is actually a cylinder
    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
    shipped with assertions enabled | Shovel Knight
    bootstraps itself just so it can render its iconset | Houdini
  15. graphitemaster revised this gist Mar 9, 2017. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -60,4 +60,5 @@ IPC using flat files on disk
    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
    native Linux/MacOS OpenGL port runs slower than Windows version in Wine | Source engine
    shipped with assertions enabled | Shovel Knight
  16. graphitemaster revised this gist Feb 27, 2017. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -59,4 +59,5 @@ Input event processing on audio thread
    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
    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
  17. graphitemaster revised this gist Feb 27, 2017. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -59,4 +59,4 @@ Input event processing on audio thread
    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 Reloaded
    Serialized entity state as separate files (with more open FDs than a default install supports)| ARK: Survival Evolved
  18. graphitemaster revised this gist Feb 27, 2017. 1 changed file with 62 additions and 61 deletions.
    123 changes: 62 additions & 61 deletions gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -1,61 +1,62 @@
    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
    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 Reloaded
  19. graphitemaster revised this gist Feb 24, 2017. 1 changed file with 4 additions and 1 deletion.
    5 changes: 4 additions & 1 deletion gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -55,4 +55,7 @@ Physics simulation fixes T-junctions in meshes each physics step
    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
    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
  20. graphitemaster revised this gist Dec 4, 2016. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -54,4 +54,5 @@ Ported to OSx and Linux by writing a D3D to OpenGL "porting layer"
    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
    Allocates all of system memory | Various
    Input event processing on audio thread | Bioshock Infinite
  21. graphitemaster revised this gist Aug 13, 2016. 1 changed file with 3 additions and 1 deletion.
    4 changes: 3 additions & 1 deletion gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -52,4 +52,6 @@ actually did something about "half pixel offset" in D3D that made things worse
    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
    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
  22. graphitemaster revised this gist May 24, 2016. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -49,7 +49,7 @@ engine (or engine components) are shared libraries
    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), Source
    Ported to OSx and Linux by writing a D3D to OpenGL porting "layer" | CryEngine
    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
  23. graphitemaster revised this gist May 24, 2016. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -49,7 +49,7 @@ engine (or engine components) are shared libraries
    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)
    used both OpenGL and D3D at the same time | CryEngine (Compute was GL), Source
    Ported to OSx and Linux by writing a D3D to OpenGL porting "layer" | CryEngine
    Physics simulation fixes T-junctions in meshes each physics step | CryEngine
    Syncronization primitives implemented with shared memory and files (File system sync) | CryEngine
  24. graphitemaster revised this gist May 24, 2016. 1 changed file with 5 additions and 1 deletion.
    6 changes: 5 additions & 1 deletion gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -48,4 +48,8 @@ added whitespace because asset hashed to the same hash as another asset
    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
    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
    Physics simulation fixes T-junctions in meshes each physics step | CryEngine
    Syncronization primitives implemented with shared memory and files (File system sync) | CryEngine
  25. graphitemaster revised this gist Apr 27, 2016. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -44,7 +44,7 @@ incremental GC is called when player takes damage
    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 | Not disclosed
    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
  26. graphitemaster revised this gist Apr 25, 2016. 1 changed file with 51 additions and 49 deletions.
    100 changes: 51 additions & 49 deletions gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -1,49 +1,51 @@
    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 | Not disclosed
    engine (or engine components) are shared libraries | Source 2
    gimbal lock while using quaternions because euler angles still exist in pipeline | Neothyne
    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 | Not disclosed
    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
  27. graphitemaster revised this gist Apr 25, 2016. No changes.
  28. graphitemaster revised this gist Apr 7, 2016. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -31,7 +31,7 @@ issued hardware occlusion queries for the HUD
    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 | Unknown
    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
  29. graphitemaster revised this gist Apr 7, 2016. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -17,7 +17,7 @@ surface area heuristic uses hyperbolic functions
    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
    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
  30. graphitemaster revised this gist Mar 12, 2016. 1 changed file with 3 additions and 3 deletions.
    6 changes: 3 additions & 3 deletions gistfile1.md
    Original file line number Diff line number Diff line change
    @@ -2,19 +2,19 @@ Achievement
    --------------------------------------------------------------------------------------- | -------------
    storing world space positions in gbuffer | STALKER
    uploaded texture upside down | All Quake engines
    implemented fixed function pipeline on top of a single vertex buffer | Tesseract
    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
    implemented per-vertex lighting | Cube, Minecraft, Gears of War, Skyrim
    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
    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