• @[email protected]
    link
    fedilink
    English
    7610 months ago

    To be fair, game devs did the hackiest shit to deal with the constraints of the time. They did things that no programmer would do today because they’re bad practices when you’re not worried about tiny amounts of RAM or storage.

    • @[email protected]
      link
      fedilink
      English
      3310 months ago

      I love watching videos about old game systems programming. The gymnastics you had to do to code, like, super Mario, just to show more than 3 colors is really interesting.

      • @[email protected]
        link
        fedilink
        English
        2110 months ago

        People who think modern coding practices are bloated should study why certain speed running mechanics work. A lot of them stem from things we would never do today. We’ve removed entire classes of bugs by using “bloated” languages and tools.

      • Karyoplasma
        link
        fedilink
        English
        5
        edit-2
        10 months ago

        You will probably enjoy this video: https://redirect.invidious.io/watch?v=nYDmBdUalgo

        Dude livestreamed Super Mario 64 for more than a month with a bot attached that perfectly abused a physics quirk based on floating point precision, just so he can crash the game at 0:00 at New Year’s by overflowing a value. This over-one-hour-long video is the summary.

      • Buck
        link
        English
        310 months ago

        If you haven’t seen them, look up the Ultimate talk on YouTube. They go into real depth on c64, Gameboy, Atari, Amiga, etc. development and all the tricks that are used.

    • @[email protected]
      link
      fedilink
      English
      1010 months ago

      The games then were closer to embedded dev than software dev. The cartridge had huge limitations and the devs had to know those limits and work around them.

      • @turmacar
        link
        English
        1210 months ago

        Cartridges were also full on daughter boards instead of just an older version of SD cards. There were massive differences between games. The later SNES games with 3d graphics had a whole extra processor included in the cart.

        • @psmgx
          link
          English
          410 months ago

          The old Super FX chip. I’m old enough to remember when they released the original Star Fox and flogged the super onboard 3d processing. The ads in comic books mentioned it by name.

          • TSG_Asmodeus (he, him)
            link
            English
            110 months ago

            Stunt Race FX really stood out to me, even now I remember being impressed by the visuals.

        • @[email protected]
          link
          fedilink
          English
          310 months ago

          2d games did, too. The SA1 chip did a lot to make games run better on the SNES. There’s mods out there for running games on the SA1 chip, especially shooters like Super R-Type, and it’s a substantially better experience.

    • @adam_y
      link
      English
      1010 months ago

      I think it was David Braben that used the video buffer as extra ram. Coded text on screen in the same colour blue as the sky and stored it there.

    • WalrusDragonOnABike [they/them]
      link
      fedilink
      English
      410 months ago

      Sometimes they did it just in case they needed those limited resources, but its not really needed. SMW is a good example, where spite interactions are only checked every other frame, but modders generally remove that limitation without any issues. There might be weird edge cases where in vanilla without glitches you could theoretically accumulate enough sprite on stream it causes a slightly more noticeable slowdown without the ever other frame. With cape float, it only checks if you are holding the jump button once every 4 frames or something like that. Totally unnecessary and makes the game feel less responsive. Granted, during a casual playthrough, you’d probably never notice that floating stopping after letting go of the button varies by 50ms depending on which frame you let go of the button relative to which frame it checks.