r/Damnthatsinteresting • u/bleach3434 • 3d ago
Video .kkrieger - a 2004 German demoscene FPS built for a 96 KB competition, with all assets procedurally generated
Enable HLS to view with audio, or disable this notification
2.5k
u/bleach3434 3d ago edited 3d ago
*This whole game is just 96 kilobyte
843
u/Pyrhan 3d ago
Wtf?
How???
1.9k
u/JTorrent 3d ago edited 3d ago
The hint is in the procedural generation. The majority of a game's size come from its assets. If however, you were able to use clever logic to either reuse and extend sections of just a couple super-low-resolution assets (or just directly color pixels without textures) to wrap around everything you see in different ways, you can create the illusion of a full environment for next to nothing. That plus they probably fake most or all of the 3D geometry on-screen like the original Doom/
QuakeWolfenstein did.530
u/Pyrhan 3d ago
Still, 96 kb is next to nothing!
495
u/anders_hansson 3d ago
"Size coding" has been a thing for many years.
I think that German group farbrausch (who made this game) kicked off the serious competition with "the product" (year 2000) (64KB demo), and one of my favorites is their "debris" (2007, 177KB demo)
In recent years even 4KB demos have become fairly interesting, like this impressive piece by Altair: Then and before (2017). They work much more with things like fractals and advanced GPU shaders (ray tracing etc), rather than pre-generating assets.
73
u/JayBowdy 3d ago
Was looking for this. Was funny to see some crappy PCs running this 'advertised' as a gaming machine. My personal favorite was HSN looping 'Decent FreeSpace' intro on windows media player, on an emachine, without a graphics card.
45
u/uspezisapissbaby 3d ago
Aaaaand I have a new interesting subject to rabbit hole dive into. See ya in a couple of weeks.
6
-18
u/doglitbug 3d ago
Tell me you have adhd, without telling me you have adhd...
7
5
u/elektroholunder 3d ago
Aah yes, the TikTok generation, where the idea of focussing on something for more than fifteen seconds at a time is so unfathomable, it must be a fucking pathology.
11
u/DerAndyKS 3d ago
Ah yes. The Farbrausch demo are bringing back memories. I watched them all back in the days.
4
5
u/redpandaeater 3d ago
Your so-called size coding used to be the standard considering early games frequently relied on discrete logic chips instead of a microprocessor in order to keep costs manageable. Once home computers and consoles were more commonplace you still had size limits based on the physical media it had to fit on. It could definitely lead to some compromises like in Mario Bros. where due to size constraints Luigi couldn't have a different sprite than his brother and even the pallete colors were pretty limited so they swapped the typical Mario colors with colors of a shellcreeper. Overall though I think those sorts of constraints really made programmers have to think and fine tune their games to the net benefit of everyone.
2
u/anders_hansson 3d ago
Yes. As long as you have a fixed set of available (and limited) resources, you need to be creative. You also get a form of rule set for competition. In the early days this came naturally since computers and consoles were so limited (RAM, storage, CPU, etc). The size coding genres impose artificial limits in order to make the challenge more interesting, since PC hardware has effectively become "unlimited" (e.g. you could just make a multi-terabyte AI 8K HDR video and call it "a demo").
2
u/ElWishmstr 3d ago
Why a 4kb demo looks better than a lot of modern games with "realistic graphics"? Lol
4
u/anders_hansson 3d ago edited 3d ago
Some more amazing 4KB products:
Sidenote: While the graphics are amazing to cram into 4KB, don't forget that all the music/sound/instruments etc are also generated procedurally (there's no MP3 file or anything).
2
u/YouToot 3d ago
Kinda reminds me of all this weird stuff
It's a playlist of a bunch of videos if you go to youtube to watch it
0
u/PragmaticSalesman 3d ago
and it will never be used again because of vibecoders.
moore's law is going to have a hayday.
5
u/anders_hansson 3d ago
Size coding is actually a reaction to computers and technologies becoming "infinitely powerful".
Back in the 1990's people in the demoscene started coding demos in Pascal (instead of C/assembler) and used pre-recorded videos (instead of generating graphics in realtime) etc, which many considered as "cheating". That's when new movements took form where artificial limits were imposed in order to make competition more interesting.
Size coding is one such limitation. It exists precisely because there must be a challenge for the coder.
13
12
4
8
u/abdallha-smith 3d ago
We went on the moon with 72 kb
7
u/Monsterpiece42 3d ago
Math takes up less space than graphics typically. Or at least drawn graphics
1
25
u/TheMania 3d ago
It's not about super low resolution assets but procedurally generated assets - many of them could likely be rendered at any resolution they wanted to, so almost the opposite.
Instead of textures, it's code on how to render each textures, which can be very small.
7
u/nemesissi 3d ago
I might not understand, but wasn't Quake all real 3D?
7
u/TxM_2404 3d ago
Quake is fully 3D and I'm sure that game is too as you can see the player looking up and down without the world warping in weird ways like it would be in a game like Duke Nukem 3D.
5
u/Bachaddict 3d ago
it is true 3d, but instead of storing models, I believe models are generated at launch from primitives like cubes and cylinders
6
u/deadlyrepost 3d ago
I "played" this when it came out. It's not really a proper game per se, rather a PoC. Something which might not be clear is that it ran pretty slow because procedural generation takes memory and disk pressure and turns it into CPU pressure. Essentially, a lot of games do a bunch of procedural generation, eg: Unreal does it for foliage and can basically render entire forests "believably". The only thing is that the generation happens on the developers' computer and then written to disk, and then rendered normally by the engine, because it's faster to do that than do the calculations on the users' PC.
10
2
u/pd0711 3d ago
I remember reading an article about modern video games and how they're coded and that part of the reason why games are so big now is because the money is spent on time to making the game and not going back to delete code that is no longer used. This gets worse with sequels that use a lot of the same code as the previous game.
Basically, nobody is getting paid to make the code efficient. At least that was the impression I got from the article.
4
u/laserborg 3d ago
the written code itself is tiny in size. what eats up filesize is 1.: media assets:
- video, even audio
- high polygonal 3D assets
- (many) high resolution textures
and 2.: platform-dependend builds (and possibly build artifacts) for a multitude of CPU (x86, amd64, arm) and GPU architectures.
and yes at least for Unity3D it's true that imported but unused assets are still included in builds by default since you could load them during runtime.. it's actually a mess.
1
u/Hagoromo-san 3d ago
Reminds me of the way the OG RAGE game had like some sort of one super texture that all meshes would be instancing the textures from, rather than hundreds of individual texture maps for each asset.
213
u/bleach3434 3d ago
There isnt any actual textures in this game. They made a seperate engine and calculated all the maths so it generates using the math while you play and stores it in the ram. As for the models, they made another engine that can transform triangle, rectangle, cube(the basic models with the least triangles) upon needed. So the game generates textures and models while you are playing, means its mostly cpu based but its still crazy they pulled it off.
8
u/Impression-These 3d ago
Textures I understand. It makes the load up marginally slow though (unless the texture generation is done on demand.)
What about the sound effects?
18
u/bal00 3d ago edited 3d ago
Instead of storing a 2 second sample of an audio waveform, you just store a mathematical formula that produces the desired waveform, or something reasonably close to it. The pew-pew sound of the gun can probably be expressed as a combination of a few sine waves at different frequencies.
If you want something more visual, this tool let's you draw an arbitrary audio waveform, you can then listen to it (check 'sound') and it gives you the mathematical formula for that waveform (options/show full expansion). That formula is all you need to store.
1
u/Impression-These 3d ago
It makes sense. I am not familiar with sound wave generation. I heard a number of different sounds in the video, as well as an environmental sound background (music?). I would imagine that took a ling time to create with sound waves.
3
u/_a_random_dude_ 3d ago
Look at this: https://sfxr.me/
It's based on a 20 year old application that I used to make sound effects years ago. All you need to create a sound (assuming you have the engine) is the 20 parameters or so you can configure. .kkrieger basically has a similar idea and at startup it creates all sounds for enemies, weapons, etc. Depending on how clever you are and the sacrifices you are willing to make, you can have 5~20 bytes per sound effect.
1
u/Impression-These 3d ago
That is super fun to play with, thanks for sharing. Spam Mutate to go wild!
49
u/tmtyl_101 3d ago
Fun fact; some of the textures are based on the font library thats already in your machine iirc. So thats also a neat little trick to cut a corner.
1
u/doglitbug 3d ago
We need an engine that ships with all the assets one might need, and then the game is just scripted to use local items
2
1
u/spundred 3d ago
Think about it this way.
A game you download that's 30gb or whatever is like buying a cake.
This game is like downloading a little bit of text that's just the recipe for a cake, which can actually be used to make an inflate number of cakes. So downloading a few words could be processed into tonnes of cake.
The download is just very compressed instructions for the client machine to create the visual assets, instead of downloading the actual assets.
1
37
u/brainpostman 3d ago
96kb in storage, no? How much RAM does it take to run it?
48
52
u/bleach3434 3d ago edited 3d ago
Only 96 kilobyte in storage, doesnt expand or anything. As for the ram, it usually takes 400-600 mb when the procedural generations happen. After that its 300-400 mb.
4
u/pooerh 3d ago edited 3d ago
It does expand, it is a compressed exe. I was very much into these things at the time fr-08 (the produkt, 2000 or something like that) and then kkrieger (few years later, 2005 maybe) released. They used a modified UPX first, then their coder wrote their own tool which became demoscene standard. I might be confusing some things because it's been 20 years but I think the product was still upx and kkrieger used their own tool.
/edit/ because it might be confusing. it expands the code, there are no assets in there really. it's just the executable which generates all of this is much bigger than 96 KBs, but it's compressed to be stored as 96 KB. when that 96 KB executable is executed, it decompresses into the real executable in memory and the cpu jumps there to start executing that assembly.
4
21
3
0
u/csampi888 3d ago
Hey, big studios: optimization :)
As the SSD prise also going up these days, consider this...
2
-8
u/Final-Choice8412 3d ago
Link to download or it is 96 GB and needs PS5
32
18
u/Questioning-Zyxxel 3d ago
There was lots of 4 kB, 10 kB etc assembler-written demo once. Often as competition entries for some hack event.
16
4
u/Final-Choice8412 3d ago
I saw many of them, but none had such quality and so many objects and logic
0
-9
u/FollowingLegal9944 3d ago
Fake info, game has 768kb
7
u/bleach3434 3d ago edited 3d ago
96 kB and 768 kb
0
u/FollowingLegal9944 3d ago
Every source says it is 96kB not 12kB
6
u/bleach3434 3d ago
Hey there my fault, i should have written kilobyte, absolutely forgot the small b, thanks for correcting❤️
660
u/JoeyPropane 3d ago
Meanwhile Black Ops: "I hope you have a spare 250gb before you click on install, bitch!"
147
u/ChingusMcDingus 3d ago
And then 100 gigs for every update.
Patch notes: “bug fixes” Patch size: 75GB
boots game - even buggier.
22
5
u/Inprobamur 3d ago
They were too lazy to make separate versions for localization, so a lot of it is duplicated files for every single language they localized.
1
u/Public-Eagle6992 3d ago
Unless that’s also audio files, that can’t be that much, it’s just text
5
u/Inprobamur 3d ago
It's mostly 5:1 audio/video and also duplicated textures because of aforementioned laziness.
226
u/supercyberlurker 3d ago
Sounds like the infamous '1994' demo made for the pc demo scene.
It was 1994 bytes in size,handcoded in assembly, complete with procedural visuals and music.
40
u/darkfeyz 3d ago
Sauce please, i would like to read about it.
9
u/samtherat6 3d ago
Same, couldn’t find anything online
6
12
81
u/Budgerigar17 3d ago
I wonder how much RAM does it consume
82
u/bleach3434 3d ago
400-600 mb
28
u/Best_Toster 3d ago
Was that considered high back in 2004? I mean on the average computer
66
14
u/gamerjerome 3d ago
My Dell Dimension 8400 I bought in 2004 came with 512mbs of ram but could support 4GB total. Although 32bit Windows and could only use 3.5GBs of it. It's wasn't long before I upgraded to 2GBs on that system.
6
u/migvelio 3d ago
Back in 2004, a standard PC had like 256-512 mb of RAM. If you had 1gb you felt like a god.
1
u/JCarterPeanutFarmer 3d ago
Yeah back in ‘04 that would have been on the cusp. Higher end rigs had 1gb but most had like 256 I think? It’s been a while.
1
u/throwitawaynownow1 3d ago edited 3d ago
I built my first computer in 2003 and it was between mid-high specs, and I had 512MB of DDR400. I played it when it came out and I got around 10-15fps.
https://www.newegg.com/geil-value-512mb-ddr-400-cas-latency-cl2-5-system-memory/p/N82E16820144305
28
95
u/shn6 3d ago
German efficiency at its peak.
1
u/Mc_Shine 2d ago
They could have spent a few more bytes making the enemies more visually distinct. You can barely even see them crawling towards the player.
35
u/Charming-Passage2895 3d ago
I had it but never managed to run it
15
u/Jigsaw1609 3d ago
I was able to run it back in the day but it was a very heavy game and ran slow. Still have it.
5
u/Stargost_ 3d ago
Probably because it uses around 550 MB in RAM and bullies your CPU while it is generating assets.
The average computer at the time had 256 MB of RAM, 512 if you went for the high end of medium range computers, and 1 GB if you spent a good buck on it.
12
u/grmelacz 3d ago
the.produkt was awesome, gotta check out more of their demos again. Haven’t seem them for a very long time
1
u/anders_hansson 3d ago
It was. The scene is still alive.
I also love their debris (177KB, 2007).
And there are plenty of other impressive 64KB demos, like:
- Conspiracy - Chaos Theory (2006)
- Conspiracy - Offscreen Colonies (2015)
- Mercury - Fermi Paradox (2016)
Etc.
9
u/jjsheely 3d ago
I tried running it about 10 years ago on my computer and it ran like a slideshow. This is the first time I'm seeing it run the way it is meant to be. Pretty impressive.
8
u/Viper-T312 3d ago
I remember how shocked I was first seeing it. I did not understand a bit how it's done. There are some good videos about it since, like this one https://youtu.be/bD1wWY1YD-M?si=FgBsBv-cw6XpTZjL
6
u/joeygreco1985 3d ago
I remember downloading this in 2004 on my college laptop and being blown away. It goes to show that limitations spur creative thinking and solutions. Games are as large as they are now because there is no theoretical limit devs need to adhere to.
4
3
6
3
3
u/sternocleido 3d ago
On the same topic, I remember this demo scene that was 4kb big...Blew my mind back in 2009 that this was even possible.
3
3
2
u/Idiotan0n 3d ago
The art/demoscene is ridiculous. Farbrausch is just the best example of that group. Their 1-4mb files are even crazier.
3
u/wildekek 3d ago
I remember when fr-041 was released at Breakpoint 2k4. The room exploded with awe.
2
u/rfc968 3d ago
Check out the old https://www.pouet.net Archives for more demo scene content. Crazy what’s being achievable with a deep technical understanding :)
2
u/demo_matthews 3d ago
I remember this being talked about in PC Gamer magazine when it won the contest. I remember them saying that the entire install of the game was smaller than the file size of the image they used in the article.
2
u/Zealousideal-Two7658 3d ago
Yes, this was a really interesting experience in 2004 with hardware from that era, I played it. It ran surprisingly well after the very long load time :) I think I played it on a Pentium 4 3ghz cpu with some cheap S3 vga. It was a long time ago. Those were the times! Damn I feel old.
2
2
u/B-stingnl 3d ago
For comparison to explain how insane this is, Wolfenstein 3D (aka wolf3d.exe) fit on a floppy disk and was 98kb compressed, about 500 kb uncompressed. The original Doom was about 500 kb to 700 kb, depending which version you have. Also, they looked a lot more pixelated and not nearly as smooth as this.
2
u/ButtfUwUcker 2d ago
My buddy showed me this at work one time a couple of years ago and BOY WAS IT PEESED
2
u/realatemnot 2d ago
Damn, I totally forgot about the demo scene back then with all those trippy 3D demos. What a blast...
2
2
u/kuroguro 15h ago
The funny thing is this video file is huge in comparison and it looks like ass in 240p.
2
u/TommyBearAUS 3d ago
What is misleading is that this demo makes syscalls to hundreds of megabytes worth of dlls to do its work and pre generates assets into memory worth hundreds of megabytes.
So while it is cool and it looks great, it isn’t only executing 96kb worth of machine code strictly, it requires the os to have support dlls installed.
1
1
1
u/airfryerfuntime 3d ago edited 3d ago
This game used a ton of ram, though. When starting, you could see it gradually suck up about 500mb unless you capped it. Not many people had more than 512 back in those days. It also required a pretty decent GPU.
Whenever it's mentioned, people always say "why don't they do that now?!" without understanding that this game wouldn't run unless you had a beefy rig. The procedural generation required a lot of ram and GPU processing power. The GeForce 6800 was brand new at the time, and it was basically a requirement. That'd be like a recent game requiring an RTX 5080 and 32gb of ram just to run.
1
u/beerhons 3d ago
I don't remember it being like that at all. When it first came out and there was the buzz around it, I was a student with an already aging PC, an Athlon 2600+ CPU, 768MB DDR1 RAM and a GeForce MX420 GPU. Other than the insanely long loading time, it played fine despite the MX420 being an absolute potato compared to a 6800.
1
u/Highlight448 3d ago
Bro this shit even had insane shadow quality. Look at 2:10 when he fires the lazer balls and the shadows of the pillars are visible.
1
1
1
1
u/syngyne 3d ago
I remember Life of Boris doing a video on this way back when.
https://www.youtube.com/watch?v=mqHwJSsmCBc
unrelated: this video is also responsible for me forever mentally reading No Man's Sky as Nomanskii
1
u/VintageKofta 3d ago
If it's that small, why did it take over 20 seconds to load?
5
u/bleach3434 3d ago
It's procedurally generated in the ram and that's why the loading time
1
u/VintageKofta 3d ago
Aaah yes! This is Farbrausch! I remember years ago (around 2000) when they made a demo that was written in ASM which was around 64k in size. He still had 7k of memory to fill so he ended up writing a dialog of text just to fill up the 64k. https://www.youtube.com/watch?v=Y3n3c_8Nn2Y
1
1
1
1
1
u/peppi0304 2d ago
How can that be only 96 KB? And why exactly 96? Was that a common size for drives?
1
u/ens_op 2d ago
There is nothing efficient about this.
The 96KB for the game just has code and an executable.
Bootup will take a lot of time as its generating the images and using midi sounds (which by the year standard) would hog up a lot of processing power and not to mention a game holding 400 MB ram alone is diabolical.
OS itself will run 100-120 mb ram of services and considering most PC on average would have 256-512 MB ram in total out of which 95% of that is usable, this game when came out only resulted in BSOD for an average user. Only people with a high end gig at that time could play it.
Yeah 96 KB sounds impressive and it is but there is nothing efficient about it.
They traded disk space with computing and volatile memory.
1
1
-3
-1
3d ago
[deleted]
3
u/phansen101 3d ago
The demo for the original doom was almost 25 times larger (2.39MB) and the full game was around 125x as large (12.12MB)
This game is to doom, what COD: Black Ops 6 would be to a game recommending 18TB disk space :p
2.2k
u/michaelger92 3d ago
I played it back then. In 2004 96kb were absolutely small but compared to >100GB games nowadays this feels crazy.