Hacker News new | past | comments | ask | show | jobs | submit login
Teach Yourself Demoscene in 14 Days (github.com/psenough)
427 points by _gjrn on May 23, 2021 | hide | past | favorite | 45 comments



I dabbled in the C64/Amiga demoscene back in the 80s and we released one the first Amiga demo creators back in May 1987:

http://janeway.exotica.org.uk/release.php?id=73124

It allowed others to get started creating demos by supplying:

* image

* sampled sound

* scrolling text

Not very advanced by todays standards, but unbeknownst to me at the time, turned out to actually be used by some groups to release their first Amiga demos:

https://www.reddit.com/r/amiga/comments/nd74xf/celebrating_3...


Back in 2018 (I guess) I was trying to create a place where programmers could create audio visualizations (like winamp and windows media player) that would react to an audio (radio, mp3 playlist, youtube video...). I end up creating 5 or 6 "demoscenes" so other people would contribute. My original goal was to detach the radio project from me website. Give it it's own domain and hosting and make a platform out of it, maybe an online code editor, so people could create live (while listening to music). Well, the project is not dead yet and I'd like to continue it some day.

https://github.com/victorqribeiro/radio


"Demoscene" refers to the movement & community of people. Specific contributions to the demoscene can be called with the catch-all term "production", or by their particular type: demo, intro, mod, music, wild demo, etc or even generic ones like sketch, experiment...


Got it. Thanks for the clarification


awesome! I started working on some visualizations in that vein for fun just in the last few weeks, and had very similar ideas about making a 'scriptable' version and letting others build what they want with it.

I've been running a node-ytdl-core server alongside it to stream audio from youtube videos, which is my primary issue right now: making something interesting for others seems like it needs to be able to play the audio they want, but most people don't have folders full of mp3's anymore, and both youtube/soundcloud/others and the modern cross-site web security model make it incredibly hard to do something as simple as decode the audio signal the browser is playing.

Regardless, your project looks super cool! Using online radio seems like a neat way to workaround the problem I've been having.


Yeah, I've encountered some cool people running web radio stations who thought they site were bored. So I've added slugs so they can link the project directly to their station.

Later chrome started blocking non https content (which most of the stations were streaming like) so I had to remove a lot of cool stations, sadly


Lol. I am literally just about to launch a project that is almost exactly this. Rad!


Ever since I had discovered shadertoy I've been searching for a consolidated source like this. I have a decent graphics background after taking a handful undergrad courses, but most of the producers on shadertoy just seem like magicians comparatively. Very excited to check this out!


I have really, really enjoyed Arsiliath's compute shader workshops (and the Discord community built around them): https://paprika.studio/workshops/compute/

Learned a lot of really hard math and parallel GPU concepts that I would not have been able to without the ability to ask experts questions.


Get some shader programming books like

https://developer.nvidia.com/gpugems/gpugems/contributors

The Cg book although outdated provides good information about shaders,

https://developer.download.nvidia.com/CgTutorial/cg_tutorial...


Is this possible if I have only an integrated graphics card?


Sure, unless you are having something older than 10 years or so.

You can use something like GLView to see what the card is capable of,

https://www.realtech-vr.com/home/glview

And in what concerns WebGL, https://webglreport.com/


Some previous discussion and notes from a few years ago:

https://news.ycombinator.com/item?id=21470398


Very cool. I am definitely going to give this a try, it is something I have always wanted to learn.


I remember working through the Denthor tuts back in the 90s and how much that helped me get into the demoscene.

This modern-day equivalent is awesome (and although I haven't been through it in detail, it looks super thorough!).

Thanks for sharing it. It's great to see the demoscene still going strong.


Also check out Bonzomatic, a live shader coding tool. It's available as a package in Arch Linux.


Awesome! I "went" to Revision 2021! https://2021.revision-party.net/

Been watching the scene since 1992 this will be an interesting read.


> The demoscene is an underground computer art culture

I've seen A LOT of posts of demoscene here on HN through the years so what does "underground" means in this context? Genuinely curious.


Not mainstream; it's a niche hobby. Most people have never heard of it, and you won't encounter anyone on the street chatting about the latest demoscene developments. You won't find TV shows about it nor regional clubs dedicated to it. While it is an art, no artist makes their living doing it. It's also not the most accessible since there's some technical skill required.


> since there's some technical skill required.

That's the understatement of the year. Check out

- 2nd Reality: at a time when Doom-style graphics were awesome

- 8088MHz: getting 1024 colours out of a CGA adapter (which is made to output 4 colours)

- 1K (or was it 64K?) demos that involve flying over procedurally generated (close to) photorealistic landscapes

The demo scene pushes the brink of what's technically possible. Or just ignores it and goes way beyond what everyone thought possible.


For the 3rd one, you are probably thinking about "Elevated", which is 4k http://www.pouet.net/prod.php?which=52938 There are others but it is the most famous and it was revolutionary when it came out.

I think what GP means is that even a "compofiller", a demo that is not expected to win any prize requires some technical skill.


That said, in northern Europe and post-Soviet countries it's a lot more prevalent than elsewhere.


I suppose nowadays it means "not mainstream" as many have pointed out, but historically many of these computer scenes have been called part of an "underground" simply because they're part of something illegal. The demoscene itself was born out of the warez scene, as its sole purpose was to advertise pirated software distribution groups. It branched out fast, but those scenes have always been heavily linked together.


“The mainstream comes to you, but you have to go to the underground.” - Frank Zappa


Presumably it just means "not mainstream". Which is certainly true. Because demoscene is exemplar of the "hacker mindset", it's no wonder it tends to feature on HN. But HN is not exactly mainstream either.


Here's a great tool that you can use to create your demoscene:

https://github.com/mrdoob/frame.js


Ummm… you mean “demo”, right? “Demoscene” means the community making the demos.


I guess you're right. LOL

*Demo scene


I miss the cracktros of CORE Crew...


Am I the only one who thinks that deadlines are counterproductive?


If you're doing something creative then deadlines can be useful to stop yourself from constantly tweaking. Actually finishing stuff helps with morale and also allows you to review and hone processes, rather than getting lost in the weeds. I dabble in music production and the amount of 16 bar loops I had before actually deciding to restict myself (with the help of a friend adjudicating) was mind-boggling. Once I'd started to finish stuff it became easier overall to not get stuck in a rabbit hole.


How so? Not sure if you said that partly tongue in cheek, but deadlines for me usually seem to help me make realistic choices in order to get something done on a time budget. No doubt they can sometimes compromise lofty goals, and/or can be frustrating or less fun than having open-ended time, but there’s enough to be said about deadlines I don’t think I’d personally ever summarize them with a single word counterproductive.

In this context, the deadline section is referring to being ready for a demo party, possibly as a compo entry, which happens on a specific date, so what would even be an alternative to having a deadline? The writing wasn’t urging the reader to choose whether to use deadlines, it was saying pay attention to the fact that your demo showdown is coming up on a day picked by someone else, so plan accordingly. Right?


Some people find them motivating, and a useful guideline for tracking their progress.

Personally I find them paralyzing - so I'll just progress at my own speed - nobody is forcing us to use the timings proposed in the repo.


It depends on the person of course,but I think also in circumstance.

If I want to tinker or aimlessly play with something,sure,artificial deadlines may not suit me.

But if I want to even remotely accomplish an actual goal,or build something,or even learn something concrete,I positively need a firm and ideally external and enforced deadline - otherwise I'll meander,change scope and direction,redo from scratch,try a different tool / framework / system / method /whatever...and generally never ever finish


Constraints stimulating creativity and innovation is pretty well accepted fact.

Time to deliver is just another constraint, which tends to force all decisions be made quickly and to err on the side of forward progress vs. some theoretically ideal option.

Having participated in a few demo parties back in the 90s, I have a deep appreciation for the scene. But I think we tended to dismiss the negative consequences of sleep deprivation, considering what we know now about the brain and sleep.

Edit:

Also, in terms of deadlines in general, not just the insane 24/48hr demoscene/gamejam style competitions, it can be rather difficult to prioritize a project receives your precious bandwidth on a given day if there's no deadline. It just keeps getting pushed aside by the tasks that do.


As a deeply lazy man, the I was most productive during the handful of Ludum Dare 48-hour game jams I entered. It felt great, if stressful. I couldn't afford to stay too far off from my plan if I'd intended to meet the deadline.


Even if you’re not working toward a submission date it’s good to have deadlines, even if just to see where you are at given points in time.

For actual deadlines often features get cut to meet them - and said features may return in future versions.


It depends. For projects which are never really 'done' (i.e. there's always more polish you can put on), they can help focus things to get them out the door. However for other projects they can be extremely counterproductive, especially if the priority is on having something done by the deadline over having something which is good enough as soon as possible (in which case sufficiently poorly defined deadlines can basically prolong a project indefinitely).


Well, I see you got a lot of the same, kind of generic answers. Deadlines motivate you, and this and that.

That’s all good and well, but my initial thought is simple. Just remember the title. The author specifically designed this course to teach Demoscene ‘in 14 days’.

If you don’t mind taking longer, then the deadlines don’t apply. But the course is designed to help you do it in this timeframe.


the title was more of a tongue in cheek reference to those kind of books that claim to teach you a certain thing in 14 days. not meant to be a strict deadline of learning :)


Sometimes; I find it can depend on the project in mind. I think if a decent number of people try to scope for a certain timeline, you can get interesting discussions on what's achievable within the timeframe.

Maybe a bit like schoolwork, what you get out of it is what you're able to put into it.


demo was all about constraints, cpu speed, ram size, binary size, etc. constraints push creativity. so does deadlines.


Time is money and everything has a budget.


Deadlines help me scope a project. Especially with something open-ended like "learn demoscene".


A deadline is just a goal that helps you structure your efforts.




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

Search: