Hacker News new | past | comments | ask | show | jobs | submit login
I converted my demoscene font collection to PNG and put it on GitHub (github.com/ianhan)
370 points by ianhanschen 11 months ago | hide | past | favorite | 86 comments

This is such a cool passion project, thanks for sharing your collection with us. Will bookmark this one for sure.

It's great to see remnants of the demoscene pop up like this from time to time. I'm sure there are many of us relative old-timers here that got their first taste of graphics programming thanks to those demoscene BBS tuts from back in the day (Denthor of Asphyxia anyone?).

Just the other day I was reminiscing with a fellow programmer on freenode about mode13th shenanigans and the all-nighters that ensued.

This HN post put a smile on my face. Cheers from South Africa!

    mov ax, 13h
    int 10h
The two most important lines of asm for any teen trying to emulate their demoscene heroes.

Wow, you triggered a real flood of memories for me. I remember being bored in in an unrelated training course and using debug.com to write 320x240 scrollers with rep movsb. Being a kid I had no internet access at the time so a copy of Ralf Brown's Interrupt List and Borland's Turbo C++ documentation was pretty much all the documentation I had. Then later discovering djgpp and protected mode, what a time to be alive!

I really want to let my kids (7 / 11) have a simple programming environment where they can get stuff done quickly. They have struggled a little with Python so far (it always comes down to needing complex libraries to do what they want e.g. write simple games.) Anyone have suggestions for an alternative language to let them be fairly self-starting?

GameMaker Studio is excellent for this. It's how I started way back when. It has a built in Sprite editor, and allows you to create object with physics and interactions using a drag-and-drop interface. And there's a ECMAScript based language you can drop down to when they want to go deeper.

I showed a bit of JS and while Scratch did get a bit of the way in explaining concepts, it's simply too inefficient to get anything "serious" done.

What stuck for my older kid (12 now but started with it at 11 or earlier) was Roblox (with it's Studio), he was already playing the game a lot and making levels was fun and to get them beyond the basics one needs to script and even if 3d maths really were above his head (I've explained 2d/3d vectors and angles) the connection to something "real" has really helped him push through most obstacles. He writes horrible code by copying kinda bad tutorials on Youtube but getting things done is fun enough that he just keeps going and lately helping him debug issues I've noticed that he's started to develop the intuition about reasoning about states and the effects code has on it in an async picture.

TL;DR Find the areas your kid might have passion in and if there's a way to mod/play with it with code the sheer fun will help them push through the drudge.

I guess it depends on their competency, but something like https://scratch.mit.edu/ is really good for really young kids.

Alternatively if your kids are a bit further along then why not try re-create your childhood experience?

In my case I'd spin up a virtual box with DOS 6 installed and a copy of QBasic, because hacking away at the GORILLA.BAS source code to try make my bananas more explosive was how it all started for me at a very young age.

Point being - QBasic was pretty easy to pick up with little external support.

Hope that helps!

That being said, what has your experience with Python been like? What else have you tried?

One problem I've found as the expectations of what a computer game or program 'should' look like has exploded. Making a circle move across the screen doesn't hold the same fascination with kids today as it used to. GORILLA.BAS was pretty close to a game that used to cost real money when it first game out.

Back in my day I could look at the very simple game I wrote in a a few hundred lines of Basic and see a path from there to commercial games that came in a box. Today my daughter looks at the simple thing we did in Scratch, then looks at Fornite, and sees no connection between the two.

I guess it depends on exposure. My son was moving the cat around in ScratchJr last week and he is definitely HOOKED. We've hardly touched it and he keeps talking about it / wanting me to give him simple loop instructions for him to act out as if he was the ScratchJr cat.

Lua on top of Roblox.

Not only can they learn to program, but their friends will be able to interact with what they've programmed, which should be much more motivating.

And don't forget Mode X


Warmly remembered & overused for all sorts of reasons!


> remnants

It's alive and kicking!

ps. did you know that Denthor is also South African? I wonder where the .za scene went after the nineties

> It's alive and kicking!

My bad! I am ashamedly completely out of touch.

> ps. did you know that Denthor is also South African?

Yeah, his tuts were introduced to me by a friend of a friend of his. Or something like that. Durban lad if I'm not mistaken. Never met him though.

> I wonder where the .za scene went after the nineties

Your guess is most definitely better than mine! ^_^

After seeing a few of the sites go down it seemed like a good idea to put it under source control. I don't claim rights to any of these works.

> I don't claim rights to any of these works.

That’s not how copyright works.

My very, very loose understanding is that bitmap fonts in the US have a bit of a special protection against copyright, with the logic being that their public utility outweighs the benefit of enforcing these restrictions. Vector fonts not so much, but as these are all in PNG form, they seem exempt:


IANAL, this is a US-based understanding and other countries have different rules, clarification welcome, other usual disclaimers, etc.

Having dealt with font legalities (IANAL) while writing a bare-metal printer driver: rendered characters are not copyrightable. Method of rendering may be, but not final output.

So does a bitmap specifying which pixels to light up count as a rendered character or a method of rendering?

Maybe, but that's definitely not copyrighted by the font maker.

So is it illegal to host the Menlo font on github? It's my preferred monospace font, but can be sometimes hard to find and there several "open" copies. That claim to not be encumbered. Isn't there also "non-free" font repos in debian?

Vector fonts not so much, but as these are all in PNG form, they seem exempt

I believe this is also why all the free vector fonts (that look almost if not exactly identical to famous, $$$ ones) can exist with no legal trouble --- if someone renders to bitmap a paid font and then traces it, the resulting vector font is then considered a work of that person instead. In other words, the copyright is on the exact point positions, and not the final shape; so any series of points that reproduces that shape will do.

That’s an interesting point - if a work goes through a non-copyrightable version you can copy subsequent derivative works and make your own copyrightable thing.

I don't understand your objection.

Disclaiming the rights is a matter of clarification for those who might consume the works in the repo. The archiver is making it explicit that they cannot publish the works under $YOUR_FAVORITE_LICENSE because the works aren't theirs to license.

Disclaiming the rights doesn't grant any license nor does it protect the archiver from infringement claims. I don't think there was any suggestion that was the case.

And that's fine: Github has a perfectly reasonable dispute resolution procedure, where rights holders first get to contact the repo owner to either remove or properly attribute their work. And if that doesn't lead to a satisfactory resolution, they can file a DMCA takedown notice and force the issue.

Yep. I am fine with artists contacting me if they want their work credited or removed. I only did it because it seemed like a good idea to secure them somewhere.

This is a perfectly reasonable response. I would even say in a readme “hey, I don’t know where all this came from originally, contact me if it’s you” or something along those lines. It’s fine though. These bitmap fonts are awesome even if a little light on char support. What would be really cool is an xml or json file with the rect positions of the chars in the charmap.

Uploading to archive.org would also be a good idea.

Considering that the demoscene comes from warez scene and still have ties with it, a formal copyright claim against this site would be extremely ironic, and as someone else mentioned, lame.

Looking at the file names, I noticed Skidrow, Razor 1911 and TRSI, there are certainly many others. These are names you might recognize ;)

Some demoscene hacker filing a copyright claim against this would be incredibly lame though.

Agree, but these are not just demoscene fonts, for example I also found the fonts from the original Lemmings game(s) (https://github.com/ianhan/BitmapFonts/blob/main/lemblue.png) which were of course part of a commercial project. But as the games themselves are available as "abandonware" on various sites and Sony (who is sitting on the rights to the Lemmings franchise and not doing much with it) hasn't objected to that yet, I wouldn't worry too much...

My take:

* Collecting these for historical and inspirational purposes feels OK, but slapping some credits on there should be top priority.

* If someone uses them without permission from the original author, they will automatically become lamers forever, suffer public shaming in scrolltexts and live thenceforth as social outcasts.

> If someone uses them without permission from the original author

You mean like this person, who without permission from the original authors posted them on github?

Sure, technically it's ripping and spreading but no different from ripping a pic you like from a demo and spreading that, which I would feel OK with if it was properly credited.

I think the lack of credits here is disconcerting but on the scene, there's a constant unsolicited spreading, uploading and sharing of material - especially nowadays, for historical reasons.

I've had pics ripped and used in other people's productions without credit. It's a bit flattering but mostly it's just annoying; I would have said yes right away if asked. On the other hand, I have my pics and (recordings of) demos uploaded to various sites all the time which is OK as long as I'm credited.

I've slapped a copyright claim on one of my demos on Youtube once, but only because the guy who ripped it did such a crappy job it was completely unwatchable.

Edit: What I'm trying to say is that the scene in general has its own take on copyright and fair use. For example, check out http://scrolltexts.com/

I wish scrolltexts.com wasn’t just c64.... need Apple 2

Copyright means the real owner has the right to object to his action. Good luck.

Typefaces nor bitmap fonts are copyrightable.

I'd love to see a reference to US case law to substantiate this claim. I'm pretty sure if I bought a font from Adobe and posted it online, they'd take issue with it. Is the particular implementation of a font eligible for copyright but the "design" isn't if I copy it and make my own font that looks the same?

https://en.wikipedia.org/wiki/Intellectual_property_protecti... references https://www.law.cornell.edu/cfr/text/37/202.1 which explicitly states that typefaces aren't subject to copyright. Encumbering every piece of printed text with the copyright of the typefaces in question would be... problematic.

That said: programs which render text (this includes typical font formats like ttf which can have all kinds of kerning and hinting information so the fonts look good at multiple resolutions) can be copyrighted - they're not just typefaces, after all - so you're right that Adobe would take issue with just copying their font files.

> Is the particular implementation of a font eligible for copyright but the "design" isn't if I copy it and make my own font that looks the same?

That's roughly my understanding, yes, although I'm not a lawyer. It's also worth noting that trademark can incorporate typefaces/fonts - so if you're making yet another sugary beverage, you might not want to pick the same distinctive typeface as Coca-Cola for your main logo.

(Deleted grumbling)

I understand the urge to handwave away copyright or whatever, but it would be nice to at least see some attribution or the links from which you obtained the fonts. The people who made the content you're redistributing would probably appreciate that.

Oh well, ask for forgiveness, not permission. Zero people are going to press claims on this repo. And I'll make the easy wager that nobody who made any of these fonts are ever going to know about (much less care about) this repo.

We bootlick/grandstand over the weirdest things on this forum. Demosceners caring about another hacker publishing or using their font? Oh bother.

What a strangely uncivil response. I was trying to meet folks in the middle here and at least kindly suggest some attribution as a reply to some now (appreciably) deleted grumbling. I'm not trying to impress anyone by suggesting it, it's just the right thing to do if you can do it.

It's not necessarily the right thing to do. If creators don't leave any trace, especially in a community where sharing freely and without credit is commonplace, one shouldn't impose one's own moral lens.

On the other hand, a lot of resources languish and ultimately disappear due to rights issues, not because of a dispute, but because they just can't be settled. For example, the original rights holder cannot be determined or located to give their permission.

I suspect that might be the case here, and I personally would rather these cultural artifacts be archived in good faith than the literal letter of copyright law is adhered to, likely to the detriment of everybody.

If I still had this information I would.

is there a good online collection of demoscene videos?

Both http://www.pouet.net/ and https://demozoo.org/ have video links for many of the productions. You also have channels like https://www.youtube.com/c/DemosceneTV/ and https://www.youtube.com/user/TheDemoTube/ on YouTube

Cool that people still keep such stuff! I was part of the demoscene way back in the late 80s-early 90s, and I just clicked randomly on some of these fonts and one of them looked familiar. However I couldn’t tell if it was one that my friend (in our demo group that I’ve long since lost touch with) had made or if I saw it in someone else’s demo... this was not a time where we concerned ourselves with archiving our work for future generations to watch. And it would be impossible to find out since my parents kept asking me whether or not to keep my old Amiga that was sitting unused for years ... and I ignored their questions and eventually they threw it away... I’m just glad Bitcoin hadn’t been invented yet — haha.

I'm not sure when exactly scene.org was started, and I experienced the demoscene in the late 90s / early 00s, so a different time than you, but I felt there was quite some effort at archiving.

Most demoscene artifacts worth archiving are of course the demos itself, and most of them are published at parties. And pretty much every party of any relevance, including many small ones, pushed their releases on ftp.scene.org.

Furthermore there's the "got papers?" project that archives stuff like flyers around demoscene (and related scenes) events: https://gotpapers.scene.org/

http://scene.org kinda grew out later in the 90s but I think they took in all the http://hornet.org archives that were the go-to ones before scene.org kinda took over to keep them preserved.

While scene.org has been a solid destination for the past 20 years for more "modern" platforms there has also been hard work in trying to preserve the C64 scene information that in many parts predated scene.org , this can be found on http://csdb.dk

There is a rather large archive here too: https://www.ancientspledge.com/fonts/

And the C-64 charset logo generator: https://codepo8.github.io/logo-o-matic/

Looking at these fonts actually made me smell a running Amiga 1200. No, really.

I can't smell anything but now have a chiptunes earworm I can't seem to shake.

I was surprised to see the middle finger gesture a common symbol in the fonts, why is that? I’m assuming it has something to do with demoscene culture?

It is almost compulsory for a demo scrolltext to include "greets" to other demo groups and members and "f*kings" to those you don't like or have done something lame. Very useful to have a special symbol for that!

The gradients on many of the fonts will make cool animations when cycling the colors [0].

[0] https://en.wikipedia.org/wiki/Color_cycling

Great stuff, brings back good geeky memories of all nighters :)

Someone needs to put a GAN on this.

Oh man I always dreamed to have access to something like this. You made my day! Thank you

It would be nice if you could create a webpage with a bit of JS with controls for choosing the font parameters, and the right font coming up on the browser window, perhaps with a nice zoom factor.

Sounds cool - you’re welcome to submit a pull request.

Don’t you love how people volunteer your time when you make a contribution to history and society like you did?

Thanks for posting!

To turn this into a font for a sprite sheet would take some sort of mapping for each..

Autosegmentation seems maybe practical.

Are the glyphs in any order? I just poked around and it doesn't seem so. Indexing them according to character code would be a fair amount of work by hand. Maybe a handwriting Neural Net? Hmm.. I have an old one somewhere

The few I've opened appear to cover a 60-character segment of the ASCII table from 0x20 to 0x5B in row major order with a fixed glyph size indicated in the file name.

There does seem to be consistency in groups with similar names, but e.g. from the first page, two of the same size with different ordering:

https://github.com/ianhan/BitmapFonts/blob/main/32_32V1.png https://github.com/ianhan/BitmapFonts/blob/main/32X32-F1.png

Still, it's a good point that there's some ordering. Maybe it's not so bad setting up an index by hand for each group.

If you're going to show off demo scene bitmap fonts then the best way would be to use a scroller. Feel free to use mine... https://codepen.io/onion2k/pen/rYgxdJ

We have a volunteer!

Converted them - what other formats exist for this sort of thing?

They are from other machines like Atari and Amiga so they were in formats like LBM/IFF.

At least some (possibly many) of these predate PNG, which was introduced in 1996 and didn’t really become ubiquitous until the 2000s. Besides, writing a PNG decoder would have been a huge task, and with demoscene’s strong DYI culture, relying on external dependencies was not a big thing (oh how far we have come…) Not that there even were many third-party libraries readily available, in a time before GitHub or SourceForge or even the web itself!

The source format stored with the assembly source code was often a .raw file. I guess it's an uncompressed file with per pixel color values that was included directly in the asm.

Are these PNGs paletted? A lot of these fonts really shine when you cycle through ranges of colors in the pallets.

Thank you. Such a beautiful work.

that xenon2... oh my...


Yes, my collection that I put together over the years. Hence “my.”

Examples of use would also be nice, like referencing demos

Good idea - you’re welcome to submit a pull request.

Did you create all these fonts? They are so so many.

No, people all over the demo scene did. All I have done is to collect them and share the collection so they are not lost to time.

I think the title is ok. I didn't make all the music in my record collection.

Nice! Are these shaders or on CPU or manually designed? What I'm building is a combination of webfonts from my old font website I made 11 years ago https://fontsforweb.com and Shadertoy. Basically shaders for fonts. http://fonted.io

Current implementation might look very basic(vertex shader is just a mask for Shadertoy-stolen pixel shaders) but I have work in progress for font-specific vertex shaders that will allow for manipulating font shape curves.

> Are these shaders or on CPU or manually designed?

Most likely hand drawn by the individual pixel. Even "computable" effects like antialiasing or dithering are mostly done by hand.

Uh, most of these are likely custom designed and hand drawn pixel by pixel rather than rasterized and colorized renderings of some third-party font. And probably predate shaders or are used in demos on non-PC platforms like Amiga, Atari, or even C64!

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