efficiency

Track_Shovel@slrpnk.net to Lemmy Shitpost@lemmy.world – 951 points –
64

SMB had game file size limitations in the dozens of kilobytes range.

For comparison, that screenshot is 342kb, and Super Mario Bros is 40kb. The screenshot is more than 8.5 times bigger than the game it comes from.

I managed to recreate almost the same screenshot in 5kb (and with much less compression artifacts!)

before adding the text and circles it was only 1.6kb

it's a case where jpeg compression ironically results in the picture getting 60x larger and more blurry because everyone recompresses the images and jpeg is designed for large photos and not pixel art

Use png and IDK I don't remember which cmd line soft but it stripped out unused colors and compressed images like that one hard.

That, without the red lines and circles, and without jpeg jitter should be like 1kb. Or less less.

Now, as an oldtimer, when you load that 1kb image up, it will still take like 640x320 bytes (it was all 8bit) so 200KB of RAM. But back in the day I guess it was more like the original GB 160x144 so 22.5KB RAM needed to show that image.

Did it work like that?

No, because cartridges didn't have a lot of space, and the consoles didn't have much RAM, so you used tiles. You had a tile map image, each tile was 8x8 pixels pointing to a palette (so you could use 4-bits for the color. More or less so, there were a lot of 'modes'). Each tile had a number and your screen was some 20x18 tiles x 1 byte numbers, designing the 'tile' to be shown at that particular position of the screen.

All done by hardware so way fast!

To make the scrolling run you had a 'delta' pixels to slightly move the "screen" around.

Fun times.

Time to go to bed πŸ˜ͺ😴

ROM Cartridges like that were also basically as fast as RAM, and mapped into system memory, so you could reference things directly instead of having to load things to RAM first like off a disc

Yes yes! But wasn't there some limit, like if you had a 1Mbit cartridge you still had to shuffle the data around? Or was it just a penalty to map a different chunk of memory?

My memory is sure not that fast or reliable:-)

Not the guy you replied too, and my memory is also fuzzy, but I always love how crazy and analog nes hardware was. Im like 70% sure that later in the nes lifespan they made it to where cartridges had more rom and could shuffle the data banks/tables around and that the nes could only process something like 32kb at a time I think? So they would just swap around the data sets depending on when they where needed.

Almost like one of those choose your own adventure books... Im probably horribly wrong in that summary and analogy though. It's been years since I last got a refresher on nes tricks lol

Here's the same image in 3.8kb (lossless jxl):

Interestingly, lossy jxl is larger (59kb):

Modern AAA games need optimisations too

Optimization? Pffffft. Nvidia probably pays game developers to make unoptimized games just to boost gpu sales.

What I would give to have modern devs work that hard to reduce file sizes

Is it more than the price of a hard drive?

For the sake of all my homies with data caps and limited hard drive funds, I would gladly give more than it costs me personally

I've seen this same suggestion years ago on Blender tutorials. Generating a scene isn't about making it realistic, it's about fooling the audience into thinking it's real without making it too hard to create. Look at videos from Ian Hubert on how to fake it well.

Halo 3 came out 17 years ago. I learned this today (and still don't really see it...), so I say they did amazingly well!

Welcome to gamedev. Its all smoke, mirrors, and magic tricks. Come intervene in our fancy electric rock dreams.

You want them to pay to design TWO ROCKS???? What are they, billionaires???

The monkey's paw curls. New AAA games now feature thousands of individual rock models, among other labor- and space-saving measures being forgone in favor of realism. The game is 400 GB and the devs have worked 110 hours per week for the last 3 months

There was a game that came out a few years ago that scanned in most of its rocks for photorealism. I can’t recall the name. EA was the publisher, I think?

Tons of games do that now. Usually they get scans and models from other companies, like Quixel Mega scans. It makes for a relatively fast workflow. Pretty much any photo-real game is doing something like this, it's just more affordable than paying people to digitally sculpt rocks by hand.

I think the newer Star Wars Battlefront games did that.

And all the 5GB worth of rocks were generated using a single Houdini script.

It's one more rock, Michael. What could it cost, ten dollars?

Setting aside that asset production is genuinely one of the most expensive parts of game dev, if they're smart they can use some clever GPU instancing to improve performance by reusing assets

No clue if that's happening here, though

I honestly don't see the similarity. So nice rotating, scaling, moving skills I guess.

Generally more than half of the rock is underground, so while it might be only one rock, you see many distinct sides of it...

The desks in Skyrim are just clouds embedded in the ground and recoloured.

The desks are clouds...? How would clouds even remotely look like desks??

Was this supposed to say rocks? I'm so confused πŸ˜…

I think the joke here is that in Super Mario Bros (NES), the bushes are recolored clouds, with their bottoms hidden by the ground. By changing the reference to Skyrim, you get a surrealist joke.

Anyway, that's what I thought the reference was and it made me heartily lol!

This is literally every game with rocks, since fucking forever..

Lmao, done that before. You do have to worry about the resolution of the textures when changing the model's size, though.

Also, I've made small caves systems and mountains like this, before slapping myself for not remembering terrain generation.

Edit: this is a bit of tangent, but I'm super excited to see more boulders rendered using polycam. Generally, the models are a bit janky and never have straight polygons (along the x,y,z axis) So things like furniture and corridors won't work. Boulders though, it's perfect!

Maybe not polycam in specific, since they too believe that you need lidar to get high quality scans, which isn't true at all.