1. phoboslab.org21 min
    2 reads2 comments
    2 reads
    You must read the article before you can comment on it.
    • thorgalle
      Reading streakScout
      10 months ago

      This is a "making of" blog post from Dominic Szablewski, who rewrote the game wipEout (1995) after its Windows source code got leaked. He was able to make it playable in modern web browsers. I never played it before (it was released a bit before I was born), but having enthusiastically played later Wipeout instalments on the PSP & PS4, this really piqued my interest!

      3D/game programming is not something I'm familiar with today, but some of the challenges described here were relatable from a general programming perspective. It also shows how getting a conceptual understanding of the old code represented the bulk of the work of writing a modern implementation that is true to the look and feel of the original.

      The rewrite is just one fifth of the size of the original.

      It's hard to justify writing C these days. It's not the language you'd start a commercial project in. So this wipEout rewrite was a welcome excuse and by far the largest C project I ever worked on. I had an absolute blast cleaning up this mess!

      I can imagine how rewarding it is to piece this project together!

      • KapteinB
        Top reader this weekReading streakScout
        9 months ago

        I loved reading this. Thanks for sharing!

        I studied video game development in college. We mostly worked with C# and DirectX, and Wipeout is a completely different beast, but I still recognise some of the techniques described in this article. I ended up working in an entirely different industry, but I do know the feeling of taking over someone else's hastily written and poorly documented source code and trying to hack functionality on top of it before deadline.

        Also, more people should write C. I mean, I get why they don't, and I don't do it either; because it's hard! But when you think about it, modern software with all its virtual machines and just-in-time compilation is pure insanity from a performance viewpoint. We sacrifice a lot on the altar of convenience.