Last active
October 7, 2024 07:07
-
-
Save graphitemaster/f8e6666c48fbedf6e554 to your computer and use it in GitHub Desktop.
Revisions
-
graphitemaster revised this gist
Nov 15, 2018 . 1 changed file with 7 additions and 7 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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 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? | 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 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 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 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 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 | -
graphitemaster revised this gist
Nov 15, 2018 . 1 changed file with 65 additions and 65 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,65 +1,65 @@ 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 | -
graphitemaster revised this gist
May 29, 2018 . 1 changed file with 2 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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 decided to use a lesser supported graphics API than the one they wanted to use | Godot -
graphitemaster revised this gist
Dec 25, 2017 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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, 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 -
graphitemaster revised this gist
Sep 25, 2017 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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 -
graphitemaster revised this gist
Sep 25, 2017 . 1 changed file with 24 additions and 28 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,68 +1,64 @@ 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 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, Cube2, Tesseract -
graphitemaster revised this gist
Sep 24, 2017 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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, 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 -
graphitemaster revised this gist
Sep 24, 2017 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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. 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 -
graphitemaster revised this gist
Sep 24, 2017 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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. 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 -
graphitemaster revised this gist
Sep 24, 2017 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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, 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 -
graphitemaster revised this gist
Sep 24, 2017 . 1 changed file with 2 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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 event handling in input processing | Godot everything inherits from a base object type | Godot, UE, UE2, UE3, UE4, CryEngine -
graphitemaster revised this gist
Sep 24, 2017 . 1 changed file with 2 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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 reference counted pointers for vector types | Godot -
graphitemaster revised this gist
Aug 10, 2017 . 1 changed file with 14 additions and 13 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,32 +1,32 @@ 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 @@ -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 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 -
graphitemaster revised this gist
Mar 10, 2017 . 1 changed file with 2 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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 bootstraps itself just so it can render its iconset | Houdini -
graphitemaster revised this gist
Mar 9, 2017 . 1 changed file with 2 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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 shipped with assertions enabled | Shovel Knight -
graphitemaster revised this gist
Feb 27, 2017 . 1 changed file with 2 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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 native Linux/MacOS OpenGL port runs slower than Windows version in Wine | Source engine -
graphitemaster revised this gist
Feb 27, 2017 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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 Evolved -
graphitemaster revised this gist
Feb 27, 2017 . 1 changed file with 62 additions and 61 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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 Serialized entity state as separate files (with more open FDs than a default install supports)| ARK Survival Reloaded -
graphitemaster revised this gist
Feb 24, 2017 . 1 changed file with 4 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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 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 -
graphitemaster revised this gist
Dec 4, 2016 . 1 changed file with 2 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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 Input event processing on audio thread | Bioshock Infinite -
graphitemaster revised this gist
Aug 13, 2016 . 1 changed file with 3 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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 User interface is a webbrower | Tabletop Simulator, Overgrowth, GTA V, others Allocates all of system memory | Various -
graphitemaster revised this gist
May 24, 2016 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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) 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 -
graphitemaster revised this gist
May 24, 2016 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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 Physics simulation fixes T-junctions in meshes each physics step | CryEngine Syncronization primitives implemented with shared memory and files (File system sync) | CryEngine -
graphitemaster revised this gist
May 24, 2016 . 1 changed file with 5 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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 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 -
graphitemaster revised this gist
Apr 27, 2016 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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 | 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 -
graphitemaster revised this gist
Apr 25, 2016 . 1 changed file with 51 additions and 49 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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 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 -
graphitemaster revised this gist
Apr 25, 2016 . No changes.There are no files selected for viewing
-
graphitemaster revised this gist
Apr 7, 2016 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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 | 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 -
graphitemaster revised this gist
Apr 7, 2016 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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, Natrual Selection 2 wrote a geometry shader | Various "AAA" engines environment mapping using different sky texture | Various block-compresssed tangent space normal maps | Various -
graphitemaster revised this gist
Mar 12, 2016 . 1 changed file with 3 additions and 3 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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 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
NewerOlder