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
Published 4 days ago
StatusReleased
PlatformsHTML5
Authorsizescape
GenrePuzzle
Made withPICO-8
Tags8-Bit, Arcade, PICO-8, pipes, Retro, Short, Tetris

Download

Download
flowtris.p8.png 6.4 kB

Comments

Log in with itch.io to leave a comment.

(+1)

This was really fun! Took me a few tries, but i eventually got it! Nice small quick game. Awesome work!

(+1)

This is hard but sooo cool :) Really nice concept and idea

(+1)

This is amazing. Great entry!