Live data from Hacker News

The 1987 game “The Last Ninja” was 40 kilobytes

twitter.com

51–60 of 199 posts

Re: The 1987 game “The Last Ninja” was 40 kilobytes

#51
post #7

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.

However, very few tapeloader games ever tried to load more assets from tape. Generally it would just load a memory image and that would be that for the entire game.

Re: The 1987 game “The Last Ninja” was 40 kilobytes

#52
post #49

Earlier quoted context omitted.

> The savings there would be negligible (in modern terms) but the development cost would be significantly increased. ...and this effort and small savings here and there is what brings the massive savings at the end of the day. Electron is what "4KB here and there won't hurt", "JS is a very dynamic language so we can move fast", and "time to market is king, software is cheap, network is reliable, YOLO!" banged togethe…

> Electron is doing none of that. I agree. I even said Electron was one piece of bloat I didn’t agree with my my comment. So it wasn’t factored into the calculations I was presenting to you. > Did you watch or ran any of these demos? Some (if not all) of them scale to 4K and all of them have more than two colors. You mean the ones you added after I replied? > I didn't say they are waste. That quote is out of context.…

I did no edits after your comment has appeared. Yep, I did edits, but your reply was not visible to me while I did these. Sometimes HN delays replies and you're accusing me of things I'm not. That's not nice.

> writing cool effects for the demo scene is very different to writing software for a business which has to offset developer costs against software sales and delivery deadlines.

The point is not "cool effects" and "infinite time" though. If we continue about talking farbrausch, they are not bunch of nerds which pump out raw assembly for effects. They have their own framework, libraries and whatnot. Not dissimilar to business software development. So, their code is not that different from a business software package.

For the size, while you can't fit a whole business software package to 64kB, you don't need to choose the biggest and most inefficient library "just because". Spending a couple of hours more, you might find a better library/tool which might allow you to create a much better software package, after all.

Again, for the third time, while safety nets and other doodads make software packages bigger, cargo culting and worshipping deadlines and ROI more than the product itself contributes more to software bloat. That's my point.

Oh I overlooked this gem:

> I have friends who are doctors but that doesn’t mean I should be giving out medical advice ;)

Yet, we designed some part of that thing together, and I had the pleasure of fighting with GPU drivers with them trying to understand what it's trying to do while neglecting our requests from it.

IOW, yep, I didn't wrote one, but I was neck deep in both of them, for years.

Re: The 1987 game “The Last Ninja” was 40 kilobytes

#53
post #32
post #6

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 th…

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…

I would also add internationalization. There were multi-language games back in the day, but the overhead of producing different versions for different markets was extremely high. Unicode has .. not quite trivialized this, but certainly made a lot of things possible that weren't.

Much respect to people who've manage to retrofit it: there are guerilla translated versions of some Japanese-only games.

> 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

Yes, people underestimate how much this contributes, especially to runtime memory usage.

Re: The 1987 game “The Last Ninja” was 40 kilobytes

#54

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…

R.I.P Ben. He was such a positive human being and encouraging you to do great things, even if you doubted yourself.

Here is a little clip of him from Bedroom to Billions: https://www.youtube.com/watch?v=aRsLOUYL3mk

Re: The 1987 game “The Last Ninja” was 40 kilobytes

#55
post #43
post #32

Earlier quoted context omitted.

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…

Back the day people had BASIC and some machines had Forth and it was like print "Hello world" or ." Hello world " / .( Hello world ) for Forth. By comparison, giving how they optimized the games for 8 and 16 bit machines I should have been able to compile Cataclysm DDA:BN under my potato netbook and yet it needs GIGABYTES of RAM to compile, it crazy that you need damn swap for something it required far less RAM 15 ye…

BASIC was slow in the 80s. Games for the C64 (and similar machines) were written in machine code.

> By comparison, giving how they optimized the games for 8 and 16 bit machines I should have been able to compile Cataclysm DDA:BN under my potato netbook and yet it needs GIGABYTES of RAM to compile, it crazy that you need damn swap for something it required far less RAM 15 years ago for the same features.

That’s not crazy. You’re comparing interpreted, line delimited, ASCII, with a compiler that converts structured ASCII into machine code.

The two processes are as different to one another as a driving a bus is to being a passenger on it.

I don’t understand what your point is in the next two paragraphs. What Go, TCL, UNIX nor Inferno have to do with the C64 or modern software. So you’ll have to help out there.

Re: The 1987 game “The Last Ninja” was 40 kilobytes

#56
post #32
post #6

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 th…

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…

I implemented a system recently that is a drop in replacement for a component of ours, old used 250gb of memory, new one uses 6gb, exact same from the outside.

Bad code is bad code, poor choices are poor choices — but I think it’s often times pretty fair to judge things harshly on resource usage sometimes.

Re: The 1987 game “The Last Ninja” was 40 kilobytes

#57
post #44

Earlier quoted context omitted.

>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 certai…

This. An old netbook cam emulate a PDP10 with ITS, Maclisp and some DECNET-TCP/IP clients and barely suffer any lag... Also the Amiga's have AmiSSL and it will run on a 68040 or some FPGA with same constraints. IRC over TLS, Gemini, JS-less web, Usenet, EMail... not requiring tons of GB. Nowadays even the Artemis crew can't properly launch Outlook. If I were the IT manager I'd just set Claws-mail/thunderbird with fil…

> Also the Amiga's have AmiSSL and it will run on a 68040 or some FPGA with same constraints. IRC over TLS, Gemini, JS-less web, Usenet, EMail... not requiring tons of GB.

The AmiSSL came out long after the C64 was a relic and required hardware that was an order of magnitude more powerful than the C64 ;)

Re: The 1987 game “The Last Ninja” was 40 kilobytes

#58
post #53
post #32

Earlier quoted context omitted.

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…

I would also add internationalization. There were multi-language games back in the day, but the overhead of producing different versions for different markets was extremely high. Unicode has .. not quite trivialized this, but certainly made a lot of things possible that weren't. Much respect to people who've manage to retrofit it: there are guerilla translated versions of some Japanese-only games. > this is all befor…

The framebuffer size for a single 320x200 image with 16 colours is 32k, so nearly the same amount of memory as this entire game.

320x200 being an area of screen not much larger than a postage stamp on my 4k monitor.

The technical leap from 40 years ago never fails to astound me.

Re: The 1987 game “The Last Ninja” was 40 kilobytes

#59
post #50
post #47

Earlier quoted context omitted.

> 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 Those are the systems we are talking about though. > 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. Actually th…

> Actually this systems didn’t. In the early 80s most protocols were still ASCII based. DES was standardised in '77. In use, before that. SSL was not the first time the world adopted encrypted protocols. The NSA wouldn't have weakened the standard, it was something nobody used.

DES wasn’t common place though (or at least not on the mainframes I worked on). But maybe than says more about the places I worked early on in my career?

Also DES is trivial to crack because it has a short key length.

Longer keys require more compute power and thus the system requirements to handle encryption increase as the hardware to decrypt becomes more powerful.

Post reply on HN