Flowtris: A tiny and gooey action puzzler
My 2024 entry for Pico-1k!
A simple game in just 1018 compressed bytes of Pico-8 instructions. It combines the expanding goo mechanics from the classic Pipe Dream game with the block-dropping puzzle action of Tetris. Try to make a path for the goo to flow across the bottom before you spill!
Controls
- ⬅➡ to move the pending tile
- ⬇ to start the drop
- ⬆ for a quick-drop
- z/❎: Rotate
- x/🅾️: Restart after game-over.
Difficulty modes
- Easy: The edges of the tile also block goo expansion
- Hard: They do not. Good luck!
Source code
If pasting this into Pico-8 to check it out, make sure you enter puny font mode (ctrl-p) first.






Cascade Cascade
A game somewhere in the space between a breakout clone and a puzzle bobble clone, inspired by a half-remembered game I played on an airplane seatback.
Controls
- Aim with left and right arrows
- Press [x] to fire
Or, as of 2024.04.27, point and click with the mouse to aim and fire.
Rules
This is an endless arcade game. Your goal is to survive by keeping the blocks from reaching the bottom.
- Each hit reduces a block's strength by one. When a block's strength reaches zero, it's destroyed.
- Powerups (white concentric circles) increase the number of balls you can accumulate for your next shot.
- The number of balls you'll fire next shot is indicated by the combo meter on the right side of the screen. It increases by one-half for each block you hit.



My first real Pico-8 game, a port of Paku Paku, a 1D Pacman game by Kenta Cho, with some small changes and added features.
I think it's pretty fun, but would appreciate any feedback! Also interested in seeing how high your scores can get. My current best is 8,223.
Controls
Press 'x' to start, and change the direction with the left and right arrows.
While the ghost is red, it'll eat you, but if you eat a power pellet, it becomes briefly weak, and you can eat it.
Scoring
- Each basic pellet is worth points equal to your current level.
- If you eat the ghost when it's weak, you'll get 10 times the current level.









Been working on a Tweetcart mimicking the old lines screensavers, and I've managed to get it pretty small--it's about 300 characters when all of the spaces are removed, but now I'm stuck, and can't figure out a way to shrink it any further.
Here's where I'm at so far:
a,b,c,d={},rnd,128,flr for i=1,5 do a[i]={x=b(c),y=b(c),w=b(c),h=b(c),p=d(b(4)),z=d(b(4)),l=i+7,m=mid,t=c} end ::_:: for _=1,1000 do pset(b(c),b(c),0) end for _𝘦𝘯𝘷 in all(a) do d={[0]=1,-1,-1,1} line(x,y,w,h,l) x+=d[p] y+=d[(p-1)%4] w+=d[z] h+=d[(z-1)%4] p,z=x+y!=m(0,x,t)+m(0,y,t)and(p+1)%4or p,w+h!=m(0,w,t)+m(0,h,t)and(z+1)%4or z end flip() goto _ |
This renders a result I'm happy with:

But it's just ~60 characters too long. :( Any one have any advice or suggestions on ways to reduce it further? I feel like there have to be some minimization techniques I'm missing.




