Color Conquest
Who will conquer the world!? Set up a procedurally generated map with countries that are battling for total domination!
Based on popular imperialism videos on YouTube, the idea to implement in PICO-8 was provided by my 7 year old son. We had a lot of fun working on it together!
Enjoy!
Ice Breakers
Balance power and precision as you strategically whack ice all while keeping the little skater's head above water!
Play locally against friends or CPU players in single or multi-elimination matches!
In Game Controls:
- Use the arrow keys to move your hammer
- Use Z to hit your hammer
Your hammer's power will oscillate between a tiny precise tap, and a chaotically random whack! Surrounding ice will experience more disruption with several weaker hits, while a single powerful strike will leave adjacent ice less disturbed as you smash your target block. Just be careful you hit the right one! Find the right balance of precision and power as you strategize to defeat your opponents and unlock new characters!
"Vision Quest"
I hardly remember the sand stinging my face or the burning fatigue in my limbs, my entire spirit absorbed by the spectacle dancing before my eyes...
280 characters
w,t,s,c,r=128,0,sin,cos,rnd::_::pal({1,2,8,9,10,12,13,14,7},0)for x=0,64 do?"웃",32,87,0 a=38*(x+t*2)b=(x%27*9)%64line(a*2%w-9,b,a%w+9,b,9)for y=0,64 do n=s(x/w+t)+c(y/w+t)+s(y/w+t*3)*c(x/w+t)pset(x*2+r()*2,y*2+r()*2,y>48+r()+s(x/80)*4and 15or(3*n%3+t*4)%8+1)end end t+=.001goto _ |
"Gravity Wrangler"
Each world hurtles into the deep, feigning a wandering heart, accelerating their demise. What would they think if they realized that, through the eons, I was the only one standing between them and the frozen abyss...
279 characters
m,o=128,{}for i=1,9 do o[i]={rnd(m),rnd(m),0,0}end::_::for i=1,18 do for j=1,64 do pset(rnd(m),rnd(m),rnd(m)<1 and rnd(3))if(i<10 and j<10)a=o[i]b=o[j]x=a[1]-b[1]y=a[2]-b[2]d=sqrt(x^2+y^2)+.1a[3]-=x/d/999a[4]-=y/d/999 end a[1]+=a[3]a[2]+=a[4]pset(a[1],a[2],i%9+7)end flip()goto _ |
"Strummin' Along"
280 characters
n,m,t,w,o,l=32,128,0,0,ovalfill,line::_::cls(1)for i=0,n do c=4if(i==n)c=9 o(16,64-i,m,99-i,c)o(-n,78-i,m,m-i,c)end for i=16,m do x=97-i c=4if(i%9>7)c=6 if(i<20or i>46)l(i,x,i+n,x,c)o(n,48,84,62,0)end for i=7,n,5 do l(9+i,82,m+i,-n-(w+i)%3,7)end flip()t+=1if(t%n<1)w=9 w*=.9goto _ |
Celestial Defender
Save the universe from ancient celestial beings in this procedural shoot-m-up boss runner!
Or complete 24 custom missions ranging in difficulty from a walk in the park to a chaotic hell!
Controls:
- Use the arrow keys and Z to select Infinite Mode or a custom mission.
- Use the arrow keys to dodge the celestial being's energy blasts
Based on a game my brother and I collaborated on a long while back, mostly to experiment with writing music.
Enjoy!
Update 8/13/2023:
- Added the excellent suggestion to make being closer to the enemy do more damage.
- Added sound effects
"Hitting The Slopes"
280 characters
t=0n=0m=64z=128::_::if(n%9<1)then cls(1)n=1for i=0,z*2 do line(32,m,i-m,z,7)line(z,50,i-m,z,7)end end if(t<1)r=rnd(z)s=32-rnd(m)n+=1 for i=0,z do ?"$",i*6,z-i%4*i,3 for j=0,z do if(pget(i,j)>7)pset(i,j,6)end end x=r+s*sin(t/m)y=t+5if(pget(x,y)>1)pset(x,y,8) flip()t+=.5t%=z goto _ |
"I'm A Big Fan"
271 characters
t,m,z,l,o,s,c=0,64,999,line,ovalfill,sin,cos::_::cls(1)rectfill(63,0,m,m,5)for j=0,1 do for i=j*z/4,40+j*z/4 do x=c((i+t)/z)y=s((i+t)/z)l(m-x*40,m-y*10,m+x*40,m+y*10,0)end end o(58,62,69,66,3)o(60,m,67,68,7)pset(m+s(c(t/z))*m/3,m+3+s(c(t/z*2))*m/7,6)flip()t+=4t%=z goto _ |
Ziggy Frog
Enjoy the simple life of Ziggy the frog as you help him catch flies on his log!
Controls:
- Use Z to charge the vertical power of your jump.
- Use Left and Right to charge the horizontal power of your jump.
- Use X to do one last jump and exit if you're all done playing :)
Eat flies at the peak of your jump! Each fly will give you more jumps!
There are different levels of difficulty for whatever you think seems most fun, along with a "Lazy" mode with an infinite number of jumps, if you're just looking to relax and catch some flies.
Based on a goofy mechanic my kid and I worked on together, I took some extra time to give it some polish and finish it up.
I was setting up PICO-8 on a raspberry pi on my TV, and I thought to myself, "Wouldn't it be nice if I could use my phone as a controller?". Obviously not ideal for games where tight controls are necessary, but a perfectly valid use case for slower or turned-based games.
Enter in Unified Remote!
At it's core, Unified Remote allows you to turn your phone into a remote, and it comes bundled with a bunch of remotes for various applications. However, I couldn't find anything that worked with PICO-8 out of the box. So I took it upon myself to create a custom remote.
This tutorial will assume you are running PICO-8 on a raspberry pi, and does not go into the setup of that piece.
First, you'll need to install the Unified Remote Server on your raspberry pi:
wget -O urserver.deb http://www.unifiedremote.com/d/rpi-deb sudo dpkg -i urserver.deb rm urserver.deb |
Next, you'll need to setup Unified Remote Server to run as root whenever your pi starts up:
"Keep It Alive"
280 characters
p,v,t,m,z,f,s=0,0,0,64,128,circfill,sin::_::cls(0)c=3 for i=0,m do if(i==m)c=0 x=m+9*s(i/z+p/z)y=z+4-i+4*s(i/z+t/z)-4*s(p/32)f(x,y,18+c-i/8,c)end f(m,t%m,2,12)for i=0,m do f(x+i/4*s((i+p*5+t)/z),y+7-i/2+i/7*s(p/z),4-i/16,8)end flip()a=.1-rnd(.2)t+=2v=max(-1,min(1,v+a))p+=v goto _ |
"Weaver"
280 characters
poke(24364,7)::n::z,a,r,f,p=64,0,rnd,rectfill,pset cls(0)w=r(32)h=r(32)c=1+r(14)d=c+1+r(14)x,y,b=z,z,r(1)f(w,h,z,z,c)f(w,h,w-9,z,d)::_::p(x,y)p(x,h+z-y)p(w+z-x,y)b+=r(.4)-.2x=min(max(x+cos(b),w),z)y=min(max(y+sin(b),h),z)::m::flip() if(x>w and y>h)goto _ a+=1 if(a>z)goto n goto m |
"Lunar Blackout"
279 characters
t,m,v,z,r,c,p=0,16,64,128,rectfill,circfill,pset::_::cls(1)c(99,24,20,7)r(0,v,z,z,0)for i=0,8 do x=z-i*9y=abs(sin(i*.11))r(x,v,x+7,v-y*44,0)for j=0,z do c((1+j%4)*t/9%z-i*5+j%63*m-z,m+y*4+j%2*m,6-y*2,2)end g,h=i*m-t%m,i*32+t%32p(g,v,7)p(h,v)p(g+1,v,8)p(h-1,v)end t+=1flip()goto _ |
"Sweet Sip"
279 characters
m,z,t,c,l,s=55,127,0,circfill,line,sin::_::cls(0)for i=-6,6 do c(m-i*3+s(i*t/z),80+i*6,12-i*i,7)l(46+i,90,41,115,7)c(60,m,9)l(66+i/6,48+i/7,87,36,1)end ?"●",m,50,1 for i=0,z do l(m-sqrt(i),66+i/8,m+s((t-i/9)/z)*50,66+i/m-s(t/z*2)*9,3)l(z+4,3,90+i/9,9+i/4,8)end t+=4 flip()goto _ |
"Evening Train Ride"
280 characters
z,t,r,c=128,0,rectfill,circfill::_::cls(2) c(40,64,25,10) r(0,90,z,z,1) for i=0,z do r(i,64-sin(sin((i-t)/999))*20,i,90,3) r(i,70,i,99-sqrt(abs(sin((i-t*4)/z)*640)),6) end for i=0,32 do r(40+24*i,65,64+24*i-2,69,5) if(i%8<7)then r(41+3*i,67,42+3*i,67,9) end end t+=1 flip()goto _ |