Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    Fabien Sanglard

    fabiensanglard.net · Personal blog · on HN since 2009

    Fabien Sanglard writes detailed code reviews of classic game engines such as Doom and Quake, and has published books on them.

    Visit blogRSSHN submissions
    GamesProgrammingRetro Computing
    What HN says

    Commenters rank it among the best technical blogs, praise his game engine books, and like the minimal, distraction-free site design.

    Stats for nerds
    525HN people shared it
    376linked in comments
    24Kstory points
    Jul 2026last shared
    2013people per year2026

    Top posts on HN

    1. 1
      The Polygons of Another World
      10 people · 879 points · first shared 2020 · 125 comments on HN
    2. 2
      Observing my cellphone switch towers
      2 people · 800 points · first shared 2021 · 132 comments on HN
    3. 3
      Floating Point Visually Explained
      13 people · 752 points · first shared 2017 · 106 comments on HN
    4. 4
      To become a good C programmer (2011)
      8 people · 708 points · first shared 2011 · 132 comments on HN
    5. 5
      Why fastDOOM is fast
      1 person · 672 points · first shared 2025 · 219 comments on HN
    6. 6
      How DOOM fire was done
      3 people · 637 points · first shared 2018 · 115 comments on HN
    7. 7
      Compile like it's 1992
      3 people · 621 points · first shared 2014 · 69 comments on HN
    8. 8
      FizzleFade
      9 people · 608 points · first shared 2017 · 176 comments on HN
    9. 9
      Street Fighter II paper trails – allocating sprite space by hand
      4 people · 555 points · first shared 2021 · 76 comments on HN
    10. 10
      Inside the Super Nintendo cartridges
      1 person · 548 points · first shared 2024 · 153 comments on HN

    What HN people wrote when they linked it

    • amiga386Apr 2026

      You'd be committing the classic fallacy of "i'll just work on these tools, then make the game", which while a fun exercise, almost never results in a game being released.

      Think about what your ultimate goal is:

      - you want to make games: use an existing engine. don't bother with half of the features, focus on whether the game is fun or not. add polish (like character animation transitions) later. use stock assets to begin with.

      - you want knowledge to work in games industry but not actually release a game yourself: learn all the bells and whistles of Unreal Engine

      - you want to make things that are unlike regular games: develop your own code

      - you don't ever intend to release a game, you just want to see how they're made: just read other people's code. Read the Quake engine source code and https://fabiensanglard.net/ as a companion site.

      If you're talking about using raylib, that is also a game engine, just a simpler one. We can look in both directions; if this is an exercise exclusively for personal learning and development, why not also learn about what's done for you by that library and by the GPU, etc? Occlusion, rasterisation, depth buffering, perspective-correct texture mapping...

      "the number one most important skill is how to keep a tangle of features from collapsing under the weight of its own complexity" https://prog21.dadgum.com/177.html

      this is what game engines do - they abstract the essential complexity present in all games, and keep it from infecting the…

    • thrower123Nov 2021

      The biggest thing is lower resolution. 640x480 at 256 colors was a high-color, high-resolution mode at the time.

      Small bitmaps, with indexed palettes and run-length-encoding to further shrink them.

      Caches were tiny, memory was slower, hard disks massively slower, and if you had to hit a CD to load data, forget about it. So packing data was important, and organizing data for cache locality, and writing algorithms to take advantage of instruction pipelining and avoid branches.

      Fabian Sanglard has a great blog that goes into the nitty gritty of a lot of these techniques as used in different games.

      https://fabiensanglard.net/

    • polpoMar 2026

      I had a Cyrix 6x86 when Quake first came out. My disappointment at how poorly Quake ran on it was significant, especially because pretty much every other game at the time ran well on the Cyrix. The FPU performance in Quake was doubly handicapped on the Cyrix: not only was its FPU slower than the Pentium's to begin with, Quake's code was indeed hand-optimized for the Pentium's FPU pipeline. Fabien Sanglard's writeup of Michael Abrash's optimizations for Quake goes into great detail: https://fabiensanglard.net/quake_asm_optimizations/

    • bishopdynamicsJul 2026

      This is awesome! Great work! I love playing around with these older game engines that have source available, its really neat to explore how they work, and fiddle around with it.

      If you haven’t already, Fabien’s write ups of the various ID engines are a joy to read: https://fabiensanglard.net/quake3/index.php

      Shameless plug: I also like to play around with old game engines: https://github.com/bishopdynamics/Continuum

    • dkonofalskiApr 2022

      >we do well to remember what actually happened rather than just lionizing one man

      This statement alone was worth the price of admission. As a fan of game engine history (highly recommend Fabian's books: https://fabiensanglard.net/), I have to remember that all of these things were built on the shoulders of giants. It wasn't just one person that contributed, even if it may be only their code that lives on.

    • zeta0134Nov 2025

      Rebecca was well known in emulation circles for her high quality work on various games of the era, often pushing the hardware in unusual ways. This article is one of my favorites, detailing the wacky tricks she used to get Another World's 3D rendering system running acceptably on a Super Nintendo

      https://fabiensanglard.net/another_world_polygons_SNES/

      Rest in piece, you absolute legend.

    Related

    Code of Honorcodeofhonor.com91 people

    Tough times on the road to Starcraft

    Code of Honor
    Personal · last shared 2026
    Dan Farquhardfarq.homeip.net61 people

    The biggest CRT ever made: Sony's PVM-4300

    Dan Farquhar
    Personal · last shared 2026
    The Witness Blogthe-witness.net54 people

    A Shader Trick

    The Witness Blog
    Company · last shared 2025
    Fabian Giesenfgiesen.wordpress.com200 people

    Why do CPUs have multiple cache levels?

    Fabian Giesen
    Personal · last shared 2026
    #AltDevBlogADayaltdevblogaday.com163 people

    John Carmack on the importance of Static Code Analysis

    #AltDevBlogADay
    Publication · last shared 2023
    James Hagueprog21.dadgum.com472 people

    Things That Turbo Pascal is Smaller Than

    James Hague
    Personal · last shared 2026
    Chip Morningstarfudco.com30 people

    How To Deconstruct Almost Anything (1993)

    Chip Morningstar
    Personal · last shared 2026
    Gaffer On Gamesgafferongames.com159 people

    UDP vs TCP

    Gaffer On Games
    Personal · last shared 2026