π±<cat
Update version 2025/11/25
(299 chars)
f,r=circfill,rrectfill::π±::cls()c=t()*3.5y=sin(-c)+55.5f(47,y,8,10)f(80,y,8)f(48,y,5,0)f(79,y,5)r(38,y-26,52,24,24)?"\^.\0\0fγαΆβΈ\0\0\n",60,y,13 x=cos(c/2)*2z=sin(c/2)*6?"\+fc∧\+0j\-0β\-β β" for i=0,1do d=x+48.5+i*19r(d+1,88-z*.5,min(z+8,8),13+z*1.5,8)r(d,z+96.5,13,(i*2-1)*x+7,3)z=-z end flip()goto π± |
old ver

I made a game in less than a day for a game jam and i kind of like it,
so i'll leave it here if you don't mind.

Implementing nuclear throne's level generation on pico8
I have been tinkering around with procedural level generation and Pico-8 for a few days which lead me to reimplementing a portion of Vlambeer 's iconic game Nuclear Throne's level generation.
I decided to not exactly follow their algorithm but a pretty close implementation of it. Mainly because the 1:1 implementation didn't create a very good looking map on pico8 imo.
Using a combination of
- Random walk and
- Weighted directional bias (a.k.a a random % that I hand tweaked to look satisfactory, no maths involved :p)
The algorithm was able to carve out organic levels that were pretty similar to Nuclear Throne.
BlackBox
In BlackBox you are a scientist tasked with finding the location of several atoms hidden inside a mysterious black box.
Fire rays into the sides of the box and note where the rays come out on the other side, once you think you have the location of each atom, go through and guess where they are located.
BlackBox menu screen
BlackBox normal play mode
BlackBox pins mode (Only available when "Guess Mode" is set to "At End")
BlackBox guess mode
Hyperderby!
A fun, fast-paced horse racing game originally written in google sheets, now available for the Pico-8!
-Choose your horse from 4 randomly generated options!
-Consider the odds (also randomly generated, they don't mean anything)
-Listen to play-by-play from renowned announcer Manny Horsecaller!
-Wager a randomly generated item (or concept, or amount of money...)
-Lose it all in the blink of an eye!
Take it from Manny-
|
|
[8x8] |

Cosmic Clankrs is a tiny, retro-ish shmup with modern-ish features and mechanics
controls:
x to shoot,
z to bomb if you have any big stars
SUPER MODE:
-from when you collect 6 big stars
your bullets deal more damage,spread and turn blue.You also earn extra small stars per enemy defeated
-if you get 10 big stars then you get a 1UP and your shots go back to normal
BOMB:
-if you have any big stars, you can bomb, if you have enough big stars,then you can bomb multiple times in a row but with less and less power
|
|
[8x8] |

Midi_Bridge
midi_bridge is a combination Picotron Cart and Python helper app. It allows you to send midi events across the LAN or localhost via sockets into Picotron to do things like play notes.
Work In Progress
The video below is for an older version as a proof of concept. We've developed a stand-alone executable and now supports more midi events.
See it in Action
Get the Code
The code is up on my github page
https://github.com/washburnello/midi_bridge
The Future
If there's interest, I hope to integrate it into sfx.p64.
Special Thanks To:
STVRCHLD for taking my foundation and making it more robust.

When I try to run this and it runs as expected and loads the map from within the cart when I start it via ctrl+r. It doesn't work if I type "run" and hit enter. It'll just say:"attempt to index a nil value (global 'current_map')"
What's going on? I am lost...
function _init()
current_map = fetch("map/0.map")
end
function _draw()
cls()
map(current_map[1].bmp)
end
function _update()
end |
Just a tiny 2048 clone. I was heavily inspired by Add Town from Peter Mosevich. Check it out here
I really wanted to try my hand at doing a similar game.
Consider this a game jam style game as I don't intend to do much more on it from here on. I wanted to practice my LUA, especially tables, and this was a perfect little project for it.
EDIT: Yeah... Well I kinda worked more on it. Lol.




Why "Sweet Nan"?
I was playing with the idea of your grandmother sneaking you sweet treats from out of her handbag/purse.

Hey, all! I'm working on a pico-8 project with the specific intention of learning how to implement an ECS archetecture from scratch. Right now, I"m working on a rendering system with z-indexing for one thing to draw over another. I essentially do this by sorting the array of drawable objects by that value, then printing it. Works really well! Except when it crashes 10% of the time I run it.
When it crashes, it does so at the last function of my code with the following error: 
Now, this is very confusing for me, because as far as I can tell there shouldn't be any situation where the "Z" value on any of the drawable things should be nil.
Sorry in advance for the lack of good comments in my code, I'm not so much looking for an answer as much as some direction. It's so weird to me that this is only happening occasionally, and really just any direction would be appreciated!

In all my tests I don't see big difference between btn or btnp in solving what it is supposed to solve.
function _init()
cntx = 0
cnto = 0
end
function _update()
if (btn(4,0)) cntx += 1
if (btnp(5,0)) cnto += 1
end
function _draw()
cls()
print("x: "..tostr(cntx))
print("o: "..tostr(cnto))
end |
I keep pressed Z(4) or X(5) for some time to see the differences.
It's clear that pressing Z(4) is advancing faster, but X(5) is advancing, even if a bit slower.
Actually I have to take a global variable that detect when the button is not pressed in order to reset its state.
Can you please keep keyboard shortcuts in step with other functionality? So that the final product a heavy keyboard user can still use and enjoy? For gfx I understand (but even there it would be awesome to have the option).
For instance, close a window or pod;
appdata/system>open widgets.pod --this opens a pod that I can manipulate with keyboard but cant close without mouse :( |
BTW, Picotron can be run without a desktop by holding down both CNTRL keys during boot :)






6 comments
