Hacker News new | past | comments | ask | show | jobs | submit login
PX8 – A PICO-8 compatible fantasy console written in Rust (github.com)
207 points by felipebueno on Apr 22, 2017 | hide | past | web | favorite | 24 comments



To understand why some people (including myself) are going nuts about Pico-8, here's one random feature: when you save your virtual cartridge as 'mygame.p8.png' it automatically generates a neat cartridge png representation with the screenshot of your choice from the game. Like so: http://www.lexaloffle.com/bbs/cposts/1/10022.p8.png.

Big deal you say! well, check this out: this png IS the game. It embeds the executable written in LUA. Try it for yourself - take the png I posted above, load it in pico8 then press escape: voila, full source code, sprite sheet, tracker data, etc. Type "RUN" and the game plays.

Pico8 (and its cousin voxatron) also contain an online cartridge browser that lets you discover and learn from everyone who contributed a cartridge.

Pico-8 is choke-full of these incredible little details that make all the difference. Unfortunately it's not open source itself, which some find a bit odd considering it encourages the open sourcing of the cartridge written for it. Good to see some projects such as TIC-80, LIKO-12 and now PX8 mixing things up a bit, that said it's still a nascent environment and let's not forget it's very much the arbitrary, sometimes amusing limitations imposed by the lead dev that makes these things fun.


While Pico-8 itself isn't open, the creator has been pretty accepting of emulators for running the game.

I'm pretty interested in open source as a whole, but having pico-8 be a steady stream of revenue has let zep concentrate on it/voxatron, and help do things like maintain the BBS or run the monthly picotachi[0] events to help the community.

Though I wonder if there's more success in a patreon-style model...

[0]: http://www.picopicocafe.com/?id=picotachi-en


Great post! I have only the smallest correction, since many people aren't aware: the creators of Lua strongly prefer that people not write "LUA" (it is not an acronym). See: https://www.lua.org/about.html ("What's in a name")


Great intro to this wonderful tool .. for me, the lure of PICO-8 has really been based around the fact that a) the products it loads are open source, and b) there are almost daily new releases for PICO-8, easily available through the built-in SPLORE command .. which is, I think, one of the very key factors to PICO-8's success.

But yeah, its a wonderful toy environment, and provides weekly entertainment in my household, where the kids kind of prefer to SPLORE over their other, commercial-based game consoles ..


Wow, I've never heard of the PICO-8 before, but it's fantastic! This is exactly what I've always wanted, some ultra-simplified game console/emulator that's easy to create content for and easy to distribute that content. People have even built cool demoscene-esque content for it![2] And some of the games people have made are fantastic, and you can play them in your browser here: http://www.lexaloffle.com/bbs/?mode=carts&cat=7&sub=2&orderb...

Also, I was a bit confused by the term "fantasy console" so here's what I've been able to learn with some reading: it seems the PICO-8 is a kind of ultra-simple game VM with it's original implementation being in HTML/JS with access being sold by the creator[0]. At some point, the PICO-8 vm was ported by its creator to work on the CHIP computer, and now the PICO-8 VM is pre-installed on all CHIP computers[1].

What the OP link is for is an open source implementation of the PICO-8 VM in Rust. This isn't the only open source implementation of PICO-8.

[0] - http://www.lexaloffle.com/pico-8.php

[1] - https://getchip.com/pages/chip

[2] - https://www.youtube.com/watch?v=QTvnYkmtleI


There are some PICO8 threads on HN which you might be interested in reading.

PICO 8 lighting parts one and two:

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

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

And an old announcement thread: https://news.ycombinator.com/item?id=10317026


Is it an actual VM with its own bytecode and so on? As far as I've looked it's more like the idea of a VM built as a set of Lua APIs and memory constraints. However, the creator seems to be doing a Java-like push where the language, runtime, standard library, and development tools are all marketed as one "technology", so it's not especially clear to me.


"a VM built as a set of Lua APIs and memory constraints. However, the creator seems to be doing a Java-like push where the language, runtime, standard library, and development tools are all marketed as one "technology", so it's not especially clear to me"

Look beyond the technology and you see a tool that allows you to; play games other people make; let you tinker with; or build your own.


I'm not trying to suggest that there's something deficient in the approach, just that it makes it harder to answer the sorts of questions I have. I mostly want to know:

1) What does it mean for PX8 (or any other program) to be "PICO-8 compatible" in this context?

2) Does PICO-8 resemble CHIP-8 only in general concept and name, or also in structure?


> 1) What does it mean for PX8 (or any other program) to be "PICO-8 compatible" in this context?

My understanding is that it PX8 implements the same Lua APIs that PICO-8 has.


To be PICO-8 compatible is to run PICO-8 programs, which are written in a slightly extended version of Lua against the PICO-8 API. There isn't a bytecode that these programs compile to - they're shipped as Lua. The format they're shipped in also embeds sprites, sounds, maps, and music patterns.


The only connection that CHIP-8 has with PICO-8 is that they are systems for making retro games (although when CHIP-8 was new in the 1970s the games weren't retro, of course). CHIP-8 is very low-level, while PICO-8 uses Lua, a scripting language similar to Python or Ruby.


good Qs @0xcde4c3db, dunno.


2) CHIP-8 is a tiny computer with a case, a keyboard, a screen, and PICO-8 preloaded.


I'm talking about this:

> CHIP-8 is an interpreted programming language, developed by Joseph Weisbecker. It was initially used on the COSMAC VIP and Telmac 1800 8-bit microcomputers in the mid-1970s. CHIP-8 programs are run on a CHIP-8 virtual machine. It was made to allow video games to be more easily programmed for said computers.

[1] https://en.wikipedia.org/wiki/CHIP-8


AFAICT it did not start in html/js. it's C or C++ with lua. it exports to all kinds of formats including native executables for windows/Linux/Mac/iOS/android as well as html/js. the js impl uses asm.js


Just a quick heads up. Ludum Dare 38 is happening this weekend (theme: "a small world"). And I've certainly noticed an uptick in gamedevs targeting PICO-8 and SCUMM-8 platforms. Rather apropos given the theme, no?

A few Gifs of WIPs:

https://twitter.com/Huginn18/status/855857089960345600

https://twitter.com/quaIiaa/status/855878802563633152

https://twitter.com/topkeki69/status/855743127616970752

https://www.youtube.com/watch?v=dISx_dR6kLI


I've been hankering to do a Bolo port on Rust. I'm terrified of change and unable to adapt, being 40, but I will try.


My first thought is that such a focused environment for the code to run in might make this a helpful tool to teach kids programming in a fun and engaging way. I sincerely believe that game creation is the single best vector to get children interested in programming, and this seems like a cool possible vector. (Python is a great beginning language!)


Pico-8 already has great licensing for schools [0], and honestly, in that environment, its easier to say "Buy this" than "this is free".

[0] https://www.lexaloffle.com/info.php?page=schools


My kids actually caught on to Voxatron (PICO-8's 3D sibling) a little easier than PICO-8. I think Minecraft has a lot to do with that.

AFAIK both are Lua based, not Python. Both programs are absolutely recommended and are a joy even if you don't have kids to share with.


Be sure to get the PICO-8 bundled with Voxatron for only a few bucks more!


In case anyone is interested in learning more about PICO-8 and it's "clones", I started one of those 'awesome lists' for that last year.

https://github.com/felipebueno/awesome-PICO-8/


I'm reminded of Intellivision for some reason. LibGDX is awesome for 2d mucking around too.




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

Search: