Flowtris
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 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.
Two 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.
b=112p="%,%?%,%o%,%?%,%?%,%"g="z0%,%0お%0>%3%"h="%,%?%,%か%,%"q="`"..h.."o4?"..h.."l%2%<"..h.."i%8%9"..h.."f%>%6"..h.."c%𝘥7210%,%0➡️/%0@6%"..g..g..g..g.."𝘥7210%,%0a2@/%01/%6%>%6"..p.."9%8%9"..p.."<%2%<"..p.."?4?"..p.."o"..p.."0"z=0for e=1,277do j=ord(q,e)-35for e=0,j\3do sset(z%b,z\b,j%3)z+=1end end e={{1,0,112},{2,112,108}}d={ord("`ppppppp\0",1,9)}d[0]=0y={}for e=0,128do y[e]={}end i={{8,124},{8,124}}f=""l="lost"u=true k=0a,r=0,0c=0::e::cls()?"easy",58,50 ?"hard",58,58 ?">",52,50+c*8 if btnp(2)or btnp(3)then c=c~1end if btnp(5)then flip()goto f end flip()goto e::f::cls()pal({1-c,7,11,139,3,139,11},1)::n::for e=1,999do n,o=rnd(128),rnd(128)m=pget(n,o)if m>2then pset(n,o,(m-2)%5+3)end end w,a,r=unpack(e[#e])s=a\16if u then e[#e][3]+=4if d[s+1]<=r+4then if d[s+1]<16then f=l end d[s+1]-=16u=false k+=1add(e,{rnd(10)\1+3,48,0})end end if#f>0then if btnp(4)then run()end else if btnp(0)and d[s]>=r then e[#e][2]=max(a-16)end if btnp(1)and d[s+2]>=r then e[#e][2]=min(a+16,112)end if btnp(2)then e[#e][3]=d[s+1]-4u=true end if btnp(3)then u=true end if btnp(5)then e[#e][1]=ord("$%&('*+,)./0-",w)-35end end if k>1and#i>0then n,o=unpack(deli(i,1))if(d[n\16+1]+16>o or c==1and pget(n,o)==1)and#f==0then f=l?"⁷szc2.g1.e-.ccc" end if n==120and o==120and#f==0then f="won!"l=f?"⁷sacecegcegc2..c3cc" end if pget(n,o)<1+c then pset(n,o,3)for e in all{{0,1,1},{1,0,#i},{-1,0,#i},{0,-1,#i}}do if y[n+e[1]][o+e[2]]==nil then add(i,{n+e[1],o+e[2]},e[3])y[n+e[1]][o+e[2]]=1end end end end if#i==0and#f==0then f=l end rectfill(a,r,a+16,r+16,0)if#f==0then for e in all(e)do w,v,x=ord("#%$#$$%$$'$$)$$+$$-$$+$%-%$/$$/$%/%%/%$",(e[1]-1)*3+1,3)spr(w-35,e[2],e[3],2,2,v==36,x==36)end end rect(0,0,127,127,2)if#f>0then?"²0ᶜ2you "..f.." press 🅾️ to restart",8,56 end flip()goto n
Download
Download
flowtris.p8.png 6.4 kB
Comments
Log in with itch.io to leave a comment.
I uploaded this on my Anbernic and had real fun with this. I didn't even realize at the time I was downloading that it was a 1k jam. Now that I try to code at least something myself, it of course makes me appreciate these things even more. Lovely.
P.S. Easy is real easy, hard is real hard.
Thanks! One tip for hard is that the goo always expands by a single pixel per frame, so if you give it multiple paths, you can buy yourself more thinking time, in exchange for having some more to manage.
This was really fun! Took me a few tries, but i eventually got it! Nice small quick game. Awesome work!
This is hard but sooo cool :) Really nice concept and idea
This is amazing. Great entry!