Hacker News new | past | comments | ask | show | jobs | submit login

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




Applications are open for YC Winter 2020

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

Search: