Hacker News new | past | comments | ask | show | jobs | submit login
Demoscene guidebook (2018) (github.com)
202 points by bane 8 days ago | hide | past | web | favorite | 55 comments

I've followed the demoscene for nearly three decades, and the demos get put out every year have always been hugely impressive. The old Amiga stuff like Technological Death was great but the more modern demos like Intrinsic Gravity by Still (https://www.youtube.com/watch?v=-ZxPhDC-r3w) are just amazing.

You can get pretty far making demo effects in CSS and JS these days. A couple of my attempts over on Codepen;

Text flash - https://codepen.io/onion2k/full/WyLoNg (Warning: flashing images)

Bitmap text wobble scroller - https://codepen.io/onion2k/full/rYgxdJ

> Intrinsic Gravity by Still

This one is fun to watch on a 3D display. (As much of it is black & white, anaglyph should also be worth a shot.)

Most of the effects could have plausibly been rasterised or blitted into a flat plane; alternatively, all of it could be done in a pixel shader which just colours in two triangles that fill the screen. But (as I discovered to my delight one day when I happened to have access to a Windows machine with a 3D monitor) it's all 3D geometry with a perspective projection.

For example, the wibbly-wobbly cone[0], viewed in 2D, could just as well be a flat bunch of sinusoidally gyrating discs all XORed together. But these discs are properly stacked along the Z axis.

The demo doesn't natively support stereo displays, so you have to find a tool that can inject itself into the graphics pipeline and modify the projection matrix for each eye. I don't remember which one I used when I tried that, but it had a nifty feature you should seek out: Hotkeys that let you adjust the mapping of depth to the stereoscopic shenanigans (separation and convergence) on the fly. Being able to make such tweaks on a scene-by-scene basis helps a lot with a production that was only designed for cyclops mode originally.

The same technique can be applied to many PC demos, but usually it only amplifies a 3D effect that was already there in the first place. In the case of Intrinsic Gravity, it gives you an extra dimension of 'whoa'.

Bonus recommendation for those who can't be bothered with any of that and just want to watch a neat recording on Youtube: Stargazer by Orb & Andromeda[1]. Nothing earth-shattering; just a personal favourite with a modern take on old-skool demoscene aesthetics and neat effects that don't fall apart in a video capture with limited bit rate.

[0] https://youtu.be/-ZxPhDC-r3w?t=67 [1] https://youtu.be/xgtghVdWlVY

Stargazer is a great demo.

Some other resources:

http://www.wab.com - Have some amazing demos coded in Javascript and tutorials on how to create your own

http://modarchive.org/ - If your only interested in tracked music

http://www.pouet.net - A demoscene information source


HN's kiss of death may have crashed wab.com's server HDD.

It's back online now. sorry NoNameNo!

"A Mind Is Born" https://linusakesson.net/scene/a-mind-is-born/

> Making a demo in just 256 bytes would be a formidable challenge regardless of platform. A Mind Is Born is my attempt to do it on the Commodore 64.

I'm convinced Linus Akesson is a warlock practising black magic. His "chipophone" is one of the best hacks I have ever seen.

This was really cool, thanks for sharing.

Everything the C64 demo scene produces is cataloged and archived at https://csdb.dk/ You can find the latest releases here: https://csdb.dk/latestreleases.php - The C64 demo scene is still very active. There are nearly 40 releases from the last 4 days.

The fact that kids barely older than me in the 80s were cranking out stuff that used the C64 to its limits blows my mind. The demoscene is intensely inspiring, if really impenetrable to an outsider.

The best way to penetrate it is to just write a demo! It's fairly certain that it will be terrible, but the point is you tried and you will improve. Hopefully you'll get some pats on the back along the way, inviting you to try again with a second demo, and so it begins...

A demo seems like a seriously high hurdle. Maybe a 4K intro.

A 4K intro (a decent one anyway) is much harder than a larger one. "If I had more time I'd write you a shorter letter..."

I found a 256k intro to be a pretty good balance, constrained enough that you don't need a pro-quality art team to look good, but still enough space that you don't have to go too deep into procedural generation and compression.

> A 4K intro (a decent one anyway) is much harder than a larger one. "If I had more time I'd write you a shorter letter..."

Disagree. Yes it's hard, but all good demos are hard.

The difference is that you can write a 4k as a one-person project, enter a competition and have a chance to end in the top-three.

As soon as they get bigger, and IMO this is already the case at 64k, you need a team of at least 2-3 people to be competitive. You're going to push as much code/data into 64 kilobytes, and once you get the hang of this, you'll realize this is in fact already an ocean. There's no way that a single person is writing the audio synthesis engine, the musical score, texture generation, model generation, scene direction, animation sequencing tools, and whatever else. Yes, demosceners are very interdisciplinary so certainly a single democoder could take on a few of these roles. But if you want to be competitive in the 64k compo and win a prize, I'm going to argue that these are just too many roles for a single person to really excel in all of them.

For bigger demos, the expectations are even higher, and I really can't imagine doing it as a single person (except with no intention to win).

I find a lowish size limit is a good equalizer. Higher chance to succeed as an individual.

I don't know about 4K vs 256b. A particularly appealing format is amiga bootblock, which is a little under 1K because a signature is needed.

With no limits, you'd be going against large groups with much experience. A new scener stands no chance.

256k not 256b

Oh. 256KB is a quite odd format to pick.

It used to be one of the standard brackets: 4k, 64k, 256k, and open (although there was often an upper limit like 4MB to limit download time.)

When was 256k a standard bracket? Can't remember. There might have been some odd exceptions, but it's always been 4k, 64k and (big) demo (indeed often limited to a few MB, dunno if that rule is still effective).

Those categories you would have at every party. Usually times categories for PC/Amiga/C64. The 256k or 256b or the 96k game categories were usually one-offs or specific to a party.

Now it's been about 15 years since I was active in the demoscene, so maybe 256k demos have become a thing in the mean time. But I would think that's silly because going from 64k to 256k doesn't really give you a new world of possibilities, it's just a bit bigger than 64k.

There are 64k's that show eye candy which can compete with the big demos, yes it's hard but not a lot of big demos are doing things you couldn't do in 64k. Why put 256k in between that? It sounds like a category for people that started out writing a 64k and then ran out of space.

I'm really curious, name me one thing you can do in a 256k that you simply cannot do in a 64k? (for the other categories these have easy answers)

It's a long time ago but I'm sure I remember 256k brackets being a thing. Maybe not as big as 64k intros but still.

And you're right, there's nothing really that you could do in 256k but not 64k, it's just much easier to fit your assets and code into the limit so you can spend more time on the demo itself and less time on space optimisation, so it's more casual-friendly.

Some years back, Farbrausch released a "demo creation kit" of sorts, called Werkkzeug. It's still around, and it's a great way to dip your toes into the expressive end of things without having to hand-hack a bunch of assembler code.

Find out if you like creating things like that, and then level-up the skills as necessary to make it completely your own.

I smiled when I read the word "graphician" in the guidebook. That word doesn't really exist, or rather, it didn't exist until my scene group friend going by the handle OMG https://csdb.dk/scener/?id=2772 at the time invented the word: https://www.urbandictionary.com/define.php?term=graphician

I remember the word from '90s demoscene. I always assumed it's a clunky direct translation from "grafiker", which means "graphics artist" in both Swedish and German.

Congratulations to your friend for this efficient space-efficient word coinage ;)

Indeed: never heard that word when I was coding Amstrad CPC demos in the early 90s.

This should probably mention Notch[0], a program for real time graphics that's written by a programmer[1] in the Fairlight group. It started as their demo tool and seems to have evolved to something more general. Other demo makers use it too now.

[0] https://www.notch.one/

[1] http://www.pouet.net/user.php?who=191

In all fairness, Smash is mostly a Jazz musician.

I'm afraid this reference went over my head. This Smash is an alias for Matt Swoboda.

I just spent several minutes explaining it, then deleted the comment because it's obviously an in-joke that's not funny when explained. Sorry, in-jokes don't belong on HN (except HN-in-jokes ofc).

The gist is that Smash is not only a spectacularly skilled coder and artist, but also an extremely nice guy (like just about every demoscener) and that sceners have a habit of colloquially mocking one another.

Ok. As you can tell, I'm not really a part of the demoscene, merely an admirer from the outside.

One day I watched a 3D engine demo in a 1KB executable file.

It was unbelievable ! With my business partner we always wanted to have time to make one (not even in 1024 bytes, just one)

Those guys were (and still are) amazing.

The most important thing to understand here is that these people are NOT actually that amazing! They are a wide spectrum of coders, artists and musicians of widely varying capabilities.

What people do have is some very PARTICULAR skillsets. You can pick up those skills too! People will help you out if you ask! You can learn all these tricks if you want to. It takes some effort and inspiration, but it is doable for most people. It's not magic, it's just learning things. Things that are often utterly useless, but fun!

It's also important to note that we only see the end result, and not the 100 iterations before that evolved to the final, impressive version. Very few developers could just jump in and code what gets published.

That said, if you watch some Shade Showdown competitions on YouTube you'll see demosceners effectively doing exactly that. It's quite intimidating how good they are.

I think very few people are able to hold with the 100+ iterations of improvement... This persistence and the quality of the result are where they are amazing. Skills can be taught and learnt, but obstinacy is a quality that cannot be developed just by anyone, it is a character trait.

I was really into the demoscene back in the early/mid 90's. These days it's fun to find out about some old demoscene people who went on to interesting things. Mostly I hear about people getting into the game industry. Some of my favorites of note: Some of the Future Crew guys went on to make Remedy Entertainment (and made Max Payne and Alex Wake games, among others) and Rovio (makers of Angry Birds) was started by some TPOLM people.

I loved Purple Motions music back then. He's still awesome: https://en.wikipedia.org/wiki/Jonne_Valtonen

When some of the guys at Remedy wanted to benchmark things, they founded what is now Futuremark (3DMark, PCMark). It's cool that they're still pushing hardware to the limits.

This brings back some fun memories. Back in 94 i attended the Assembly in Helsinki, Finland. Amazing people with incredible potential.

That's funny, because so did I! =)

Maybe we saw each other :)

The group i was with reached 5th place with this demo: http://www.pouet.net/prod.php?which=41739

Maybe we did, who can say? I was not attached at the time, and didn't have anything prepared. Did a little on-site 4K though. Started out with Turbo Pascal, and then migrated to hand coded assembler on a function-by-function basis until I ended up with pure asm. Then did a bit of whole-programme optimisation, mostly the parameter handling. T'was kind of a shitty prod, but fun. Didn't even need a packer.

IIRC I mainly hung out with the guys from The Coexistence and a BBS operator called Scythe. Nice guys all, and Scythe gave me a good ratio on his Box. Good times! =)

"Ratio" — that certainly brings back memories!

Access to online data was a carefully cultivated trickle back then. Every byte you could download was a potential treasure, something new and exciting.

Now online data is just a firehose where every website tries to make me download 50 megs of advertising junk as soon as I knock on their door...

Funny, a guy called Scythe, operating a board called Burning Chrome was a member of my group (Paranoia). We mainly developed PCBoard PPEs. Good times indeed! ;-)

Omfg, Burning Chrome, that's the one! I remember I dug the Gibson reference, still do in fact!

Btw Paranoia rings a bell as well, definitely not an obscure group at all. This is turning into a blast from the past! ^_^

Hehe, sometimes Hacker News is unbelievable. ;-) So, I take it you‘re from the Cologne area as well, given the Burning Chrome‘s proximity to the city (if memory serves) and long-distance calls were outrageously expensive.

Assembly 94 was awesome :)

This is awesome!

These knowledge bits surprisingly work really well if you are launching your own ideas in other formats (business, art, code, etc...), or doing other stuff just for fun.

Made my day :D

If you are into javascript there is a lot of nice demos here: https://js1k.com/

Going through the guidebook, anyone would know the difference between the graphician and the coder roles in making a demo? I’ve done a bit of Processing and P5js and these two roles seem to me to be overlapping, aren’t they? As you’re coding the graphics.

Is the difference the same as Web Designer vs. Web Developer in a more familiar context?

I think that's a made up word that just means a graphics artist.

Then again, for things like C64 picture formats, you need to work within the various limitations and the cheat programming one can use to extend the palettes and forcing badlines more frequently and so on which makes the artist need a lot of programming skills too.

How about that program that says, "Water detected in drive A:" and then it spins the drive to dry it. Can it be in the demoscene?

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact