87 pointsby keepamovin6 hours ago19 comments
  • YZF4 hours ago
    I was looking at a production service we run that was using a few GBs of memory. When I add up all the actual data needed in a naive compact representation I end up with a few MBs. So much waste. That's before thinking of clever ways to compress, or de-duplicate or rearrange that data.

    Back in the day getting the 16KB expansion pack for my 1KB RAM ZX81 was a big deal. And I also wrote code for PIC microcontrollers that have 768 bytes of program memory [and 25 bytes of RAM]. It's just so easy to not think about efficiency today, you write one line of code in a high level language and you blow away more bytes than these platforms had without doing anything useful.

    • hnlmorg27 minutes ago
      Sure, if you don’t count safety features like memory management, crash handling, automatic bounds checks and encryption cyphers; as anything useful.

      I do completely agree that there is a lot of waste in modern software. But equally there is also a lot more that has to be included in modern software that wasn’t ever a concern in the 80s.

      Networking stacks, safety checks, encryption stacks, etc all contribute massively to software “bloat”.

      You can see how this quickly adds up if you write a “hello world” CLI in assembly and compare that to the equivalent in any modern language that imports all these features into its runtime.

      And this is all before you take into account that modern graphics and audio is bitmap / PCM and running at resolutions literally orders of magnitude greater than anything supported by 80s micro computers.

      • bayindirh23 minutes ago
        Yes, but this doesn't prevent you from being mindful and selecting the right tools with smaller memory footprint while providing the features you need.

        Go's "GC disadvantage" is turned on its head by developing "Zero Allocation" libraries which run blazingly fast with fixed memory footprints. Similarly, rolling your own high performance/efficient code where it matters can save tremendous amounts of memory where it matters.

        Of course more features and safety nets will consume memory, but we don't have to waste it like there are no other things running on the system, no?

        > And this is all before you take into account that modern graphics and audio is bitmap / PCM and running at resolutions literally orders of magnitude greater than anything supported by 80s micro computers.

        This demo [0] is a 4kB executable. 4096 bytes. A single file. All assets, graphics, music and whatnot, and can run at high resolutions with real time rendering.

        This is [1] 64kB and this [2] is 177kB. This game from the same group is 96kB with full 3D graphics [3].

        [0]: https://www.pouet.net/prod.php?which=52938

        [1]: https://www.pouet.net/prod.php?which=1221

        [2]: https://www.pouet.net/prod.php?which=30244

        [3]: https://en.wikipedia.org/wiki/.kkrieger

      • shiroiuma3 minutes ago
        >Sure, if you don’t count safety features like memory management, crash handling, automatic bounds checks and encryption cyphers; as anything useful.

        >Networking stacks, safety checks, encryption stacks, etc all contribute massively to software “bloat”.

        They had most of this stuff in the 1980s, and even earlier really. Not on your little 8-bit microcomputer that cost $299 that might have had as a kid, but they certainly did exist on large time-sharing systems used in universities and industry and government. And those systems had only a tiny fraction of the memory that a typical x86-64 laptop has now.

  • vinkelhake3 hours ago
    I grew up with and absolutely adore The Last Ninja series. I'm not going to comment on the size thing because it's so trite.

    Instead - here's [0] Ben Daglish (on flute) performing "Wastelands" together with the Norwegian C64/Amiga tribute band FastLoaders. He unfortunately passed away in 2018, just 52 years old.

    If that tickled your fancy, here's [1] a full concert with them where they perform all songs from The Last Ninja.

    [0] https://www.youtube.com/watch?v=ovFgdcapUYI [1] https://www.youtube.com/watch?v=PTZ1O1LJg-k

    • kbenson3 hours ago
      The first time I ever heard The Glitch Mob I had such a clear memory of this games soundtrack come to mind that I mentioned it to my brother soon after (as it was his commodore and his copy of the game I was playing when I was young). I'm not even sure if the song I heard even sounds like the game soundtrack particularly closely, but the connection in my mind was very strong.
  • le-mark4 hours ago
    Apparently this person is referring to the available ram on a Commodore 64. The media (data) on disk or tape was much more than that.
    • classichasclass4 hours ago
      Not much more. It all fits on a single side of a 1541 floppy. Even considering compression it couldn't be more than a couple hundred kilobytes.

      https://csdb.dk/release/?id=99145

      • boomlinde3 hours ago
        It's not much, but relatively speaking it's much more.
    • chorlton2080an hour ago
      You can access nearly 64kb of RAM on the C64, if you don't need the BASIC or Kernal (sic) ROMs. They can be software toggled in or out. Agreed that even the tape had more game data than that, but not much more.
  • jml7c53 minutes ago
    Is this even correct? It was a two-sided disk, and each side was 174 KB.
  • socalgal2an hour ago
    Most games back then where small. An C64 only had 64k and most game didn't use all of it. An Atari 800 had max 48k. It wasn't until the 1200 that it went up. Both systems are cartridge based games, many of which were 8k.

    Honestly though, I don't read much into the sizes. Sure they were small games and had lots of game play for some defintion of game play. I enjoyed them immensely. But it's hard to go back to just a few colors, low-res graphics, often no way to save, etc... for me at least, the modern affordances mean something. Of course I don't need every game to look like Horizon Zero Dawn. A Short Hike was great. It's also 400meg (according to steam)

  • anthk7 minutes ago
    Some Pokémon Crystal ROMs pack a huge amount of gaming in very few MB. Z80-ish ASM, KB's of RAM.

    The ZMachine games, ditto. A few kb's and an impressive simulated environment will run even under 8bit machines running a virtual machine. Of course z3 machine games will have less features for parsing/obj interaction than z8 machine games, but from a 16 bit machine and up (nothing today, a DOS PC would count) will run z8 games and get pretty complex text adventures. Compare Tristam Island or the first Zork I-III to Spiritwrak, where a subway it's simulated, or Anchorhead.

    And you can code the games with Inform6 and Inform6lib with maybe a 286 with DOS or 386 and any text editor. Check Inform Beginner's Guide and DM4.pdf

    Nethack/lashem weights MB's and has tons of replayability. Written in C. It will even run under a 68020 System 7 based Mac... emulated under 9front with an 720 CPU as the host. It will fly from a 486 CPU and up.

    Meanwhile, Cataclysm DDA uses C++ and it needs a huge chuck of RAM and a fastly CPU to compile it today. Some high end Pentium4 with 512MB of RAM will run it well, but you need to cross compile it.

    If I had the skills I would rewrite (no AI/LLM's please) CDDA:BN into Golang. The compiling times would plummet down and the CPU usage would be nearly the same. OFC the GC would shine here prunning tons of unused code and data from generated worlds.

  • abrookewood36 minutes ago
    God I loved that game. Don't think I ever managed to finish and now I'm tempted to try again!
  • YasuoTanaka5 hours ago
    It's kind of amazing how much of those old games was actual logic instead of data.

    Feels like they were closer to programs, while modern games are closer to datasets.

  • xvxvx5 hours ago
    I remember this game, the way it drew itself on each screen, the nice graphics. Growing up with games on Atari, Commodore, Amstrad, and Spectrum, was a lot of fun.

    By comparison, COD Modern Warfare 3 is 6,000,000 times larger at 240GB. Imagine telling that to someone in 1987.

    • nine_k2 hours ago
      The Last Ninja ran at resolution 160x200, with effectively 2-bit color for graphic assets. It had amazing animations for that level of detail, but all the variety of the graphics could not take too much RAM even if it wanted to.

      The quest for photorealistic "movie-like" rendering which requires colossal amounts of RAM and compute feels like a dead end to me. I much appreciate the expressly unrealistic graphics of titles like Monument Valley.

  • chmod7754 hours ago
    That short video of the game on twitter is 11.5MB, or about 300x larger than the game itself.
    • Dwedit3 hours ago
      X264 supports a lossless mode without chroma subsampling, which produces very good compression for raw emulator captures of retro game footage. It is much better than other codecs like HuffYuv, etc.

      But for some reason, Firefox refuses to play back those kinds of files.

      • onion2k3 hours ago
        But for some reason, Firefox refuses to play back those kinds of files.

        And that reason is because x264 is a free and open source implementation of the H.264 codec, and you still need to pay a license to use the patented technology regardless of how you do that. Using a free implementation of the code doesn't get you a free license for the codec.

        • Narishma10 minutes ago
          Haven't those patents expired by now?
        • anthk2 hours ago
          Just in the US. Not in Europe. At least for decoding.
    • latch4 hours ago
      I'm not sure this is particularly telling. You can write a tiny program that generates a 4K image, and the image could be 1000x larger.

      Or, if I write a short description "A couple walks hand-in-hand through a park at sunset. The wind rustles the orange leaves.", I don't think it would be surprising to anyone that an image or video of this would be relatively huge.

  • aaa_aaa2 hours ago
    I played the game. Music was exceptional.
  • christkvan hour ago
    Oh man the tape loading time. I dreamed about being able to afford a disk drive.
    • boptom14 minutes ago
      The loading music is exceptional and I enjoyed listening to it while waiting.

      I still occasionally listen to it.

  • reedycat5 hours ago
    Masterpieces like these are a perfect demonstration that performance relies not only on fast processors, but on understanding how your data and code compete for resources. Truly admirable. Thanks for the trip down memory lane.
  • cubefox2 hours ago
    A game which was actually 40 kilobytes: Super Mario Bros. It had 32 side-scrolling levels.
  • mock-possum3 hours ago
    Wow that search/interact mechanic is obnoxious, you can see the player fumbling it every time, despite knowing exactly where the item is they’re trying to collect.
    • beautron3 hours ago
      This is sort of the defining mechanic of these games in my memory. The first thing that pops into my head when I think of Last Ninja is aligning and realigning myself, and squatting, awkwardly and repeatedly (just like a real ninja, lol), until that satisfying new item icon appears. Perhaps surprisingly, these are very fond memories.

      This mechanic is augmented by not even always knowing which graphics in the environment can be picked up, or by invisible items that are inside boxes or otherwise out of sight (I think LN2 had something in a bathroom? You have to position yourself in the doorway and do a squat of faith).

      The other core memory is the spots that require a similarly awkward precision while jumping. These are worse, because each failure loses you one of your limited lives. The combat is also finicky. I remember if you come into a fight misaligned, your opponent might quickly drain your energy while you fail to get a hit in.

      At the time, it seemed appropriate to me that it required such a difficult precision to be a ninja. I was also a kid, who approached every game non-critically, assuming each game was exactly as it was meant to be. Thus I absolutely loved it, lol.

      • medwards666an hour ago
        > LN2 had something in a bathroom? You have to position yourself in the doorway and do a squat of faith)

        Sounds like every time I go to the bathroom ... :D

  • userbinator4 hours ago
    The same size as Super Mario Bros. (NES, 1985)
  • Morpheus_Matrix4 hours ago
    [flagged]
  • ychompinatoran hour ago
    [dead]