Hi,
I'm writing to announce tspico8, a project which allows you to create PICO-8 games using TypeScript. For anyone unfamiliar with TypeScript, it's a superset of JavaScript, and it allows you to annotate your code with static type declarations so that the compiler can find a lot of errors for you.
Some of the benefits include:
- Write PICO-8 games in a powerful language with a lot of builtin safety
- Take advantage of tooling to improve code quality (linting, formatting, etc)
- Minify code automatically to reduce token size (multiple configuration options)
- Utilize an external spritesheet if you want to (make sprites with aseprite, etc)
For anyone that's curious, the technical details of how this works are as follows:
- TypeScript is compiled to JavaScript
- JavaScript is minified (compressed and mangled)
- Minified JavaScript is transpiled to PICO-8 compatible Lua
- Everything is packaged into a cart (code & spritesheet)
Here's a pretty minimal implementation of Conway's Game of Life for PICO-8. It has a basic performance optimization (it only updates the active area of the grid), and you can see the active area adjust by setting dbg=true at the top of the code.
That said, it gets pretty slow pretty quickly for larger simulations.
You set up the grid as follows:
Arrow keys -- move the cursor around.
Z key -- toggle a given cell to active/inactive.
X key -- start / stop the simulation.
If you're unfamiliar with the Game of Life, google it :-).
An easy starting point for a cool pattern is a ten cell contiguous row (10 connected horizontal cells).
There are better PICO-8 Game of Life carts, but I had a lot of fun making this.