Hacker Timesnew | past | comments | ask | show | jobs | submitlogin
QX82: Tiny JavaScript game/experience engine inspired by retro 80s computing (btco.github.io)
118 points by CharlesW on Oct 11, 2023 | hide | past | favorite | 18 comments


Reminds me a little bit of PICO-8 conceptually. At first glance I thought it was just a set of premade assets more than an actual game engine, but looking at the API more closely it actually does seem to resemble quite a bit the set of primitives that the PICO-8 console provides you, although without the pretty in-console IDE.


True! It has some similarities with PICO-8. Both are based on the simple, imperative programming languages of the past. QX82 is far less ambitious than PICO-8: it's just a library, not a full product + ecosystem. I didn't put in the niceties of an IDE and sprite editor and such, but it's also free and open-source and can be used anywhere and can be extended or taken apart as much as needed, as it's all just Javascript. It's a more "open" approach, let's say. It was also not made by a company: it was made by me, a random guy on the internet, who enjoys retro games :-D


Thank you for this wonderful and accessible library. So Graphically, the creative space appears to be limited to 256 individual custom characters in the sprite sheet and only one sprite sheet at a time. Spent some of the week considering xterm.js to create a game but after reviewing the api this looks to be a better fit for my dreams. Would really like to use this library to create an experience similar to “caves of qud”. Do you believe that is reasonable?


I've updated QX82 to support more than one font, which you can load at runtime, so now there is no limit to how many different characters you can have. You could have a different character set for each biome of your game, for example!

Since sprites are the same thing as fonts, this also means you can have custom fonts and switch fonts as needed.

It should work for creating something like Caves of Qud! I'd love to play something like that! Sign me up for the beta when you have it :-)


The ZX Spectrum simply refuses to go away, which is awesome.


It has the same color palette as ZX Spectrum. Even the color codes are the same, and I remember them by heart. 1 - blue, 2 - red, 3 - magenta, 4 - green, 5 - cyan, ... [0]

[0] https://btco.github.io/qx82/demo/example-colors.html


Ha! You noticed it! :-D I memorized it as 1=blue, 2=red, 4=green and then you add the numbers to make the combinations. So magenta is red+blue so it's 1+2 = 3 and cyan is blue+green with is 1+4 = 5.


And white is 1+2+4 = 7. Wow, it makes so much sense now.


Ha that brought back some memories!


Yes, this is very Spectrum-like, basically lifted the font, I guess. No colour-clash though, it seems.

I've been on both the ZX Spectrum Next Kickstarters, and I'm loving it.


This project has an interesting trait - despite the simplicity of source code, the resulting apps have a decent quality, even by today's standards. Imagine what would have been possible if we had such tools in 1980s.


Dang, that “overworld” example has me inspired. Thanks for sharing this!


I just love the font. So many memories. Mostly Good. Nostalgia at its finest.


I have a decent print of the ZX Spectrum 48k hanging on the wall near me now.

At one point I had an A4 print of the iconic "prompt" screen from the same model:

https://i.imgur.com/zfIIHQQ.jpg

That font, and that line, does make me very very nostalgic.


I just played through the Sokoban demo. This is awesome!


Thanks! I ran out of creativity to invent more levels, that's why it's a bit short, but it was fun to make and I'm glad it was fun to play too!


constant white noise on the background is way too distracting.


That can be tweaked. Well, technically everything can be tweaked as it's open-source, but what I mean is that can be _easily_ tweaked, just by changing the parameters NOISE_SPEED and NOISE_INTENSITY in https://github.com/btco/qx82/blob/main/qx82/config.js.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search: