Follow
jahndis
 2

2

P#136879 2023-11-04 00:20

Choose your hero and villain and battle until you beat the villain!

But uh oh! The villain can beat you too!

Have fun and enjoy the game!

P#136603 2023-10-30 00:36

 17

Cart #ice_breakers-0 | 2023-06-19 | Code ▽ | License: CC4-BY-NC-SA
17

# 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!

Based on the classic board game, the idea to implement in PICO-8 was provided by my 6 year old son. We had a blast working on it together!

Enjoy!

P#131127 2023-06-19 05:33 ( Edited 2023-06-19 13:43)

 1

Cart #vision_quest-0 | 2022-09-16 | Code ▽ | License: CC4-BY-NC-SA
1

"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 _ ```
P#117502 2022-09-16 06:29 ( Edited 2023-06-19 13:44)

Cart #gravity_wrangler-1 | 2022-09-01 | Code ▽ | License: CC4-BY-NC-SA

"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 _```
P#116709 2022-09-01 05:10 ( Edited 2023-06-19 13:45)

 1

Cart #strummin_along-0 | 2022-08-21 | Code ▽ | License: CC4-BY-NC-SA
1

"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 _```
P#116084 2022-08-21 04:49 ( Edited 2023-06-19 13:45)

 6

Cart #celestial_defender-3 | 2022-08-14 | Code ▽ | License: CC4-BY-NC-SA
6

# 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.
P#115730 2022-08-14 02:02 ( Edited 2022-08-14 05:15)

 2

Cart #hitting_the_slopes-1 | 2021-03-21 | Code ▽ | License: CC4-BY-NC-SA
2

"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 _```
P#89324 2021-03-21 19:45 ( Edited 2021-03-21 22:56)

 9

Cart #im_a_big_fan-0 | 2021-03-20 | Code ▽ | License: CC4-BY-NC-SA
9

"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 _```
P#89287 2021-03-20 23:19

 9

Cart #ziggy_frog-2 | 2021-03-20 | Code ▽ | License: CC4-BY-NC-SA
9

# 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.

Enjoy!

## Update 3/19/2021:

• Added jump power/direction UI to better show how high and which direction you'll be jumping
• Added shrinking circle that better shows when the frog will eat a fly
P#83103 2020-10-19 05:06 ( Edited 2021-03-20 05:52)

 3

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:

 `sudo modprobe uinput # just in case this hasn't been loaded yet`

Modify /etc/rc.local (as root) and add the following somewhere before the "exit 0":

 `/opt/urserver/urserver-start &`

Now, when you reboot your pi, Unified Remote Server should start up automatically.

Next, you'll want to add the custom PICO-8 controller that I've put together (feel free to tweak it to your needs using the Docs). To do this, you'll need to create a directory for custom remotes. For me, this was /opt/urserver/custom (even though the documentation says otherwise). You may want to go to the Unified Remote Server Manager interface at http://yourpihostnameorip:9510/web/#/log and see where the logs say it's looking for custom remotes to be sure. So in my case:

 ```sudo mkdir /opt/urserver/custom sudo mkdir /opt/urserver/custom/pico8 # Set permissions to a user other than root, so it's easier to work with # Substitute your user here (or don't do it at all and just use root) sudo chown pi /opt/urserver/custom/pico8 sudo chgrp pi /opt/urserver/custom/pico8```

Then, you'll want to put the following files in the new pico8 directory:

meta.prop

 ```meta.name: PICO-8 meta.author: John Langewisch meta.description: Gamepad for PICO-8 meta.tags.category: gaming```

layout.xml

 ```

icon.png (I just took the PICO-8 icon)
logo.png (I just took the PICO-8 logo)

Once you've added those files under /opt/urserver/custom/pico8 you should be able to restart the server to load the new remote either through the web UI, or by running:

 ```/opt/urserver/urserver-stop /opt/urserver/urserver-start```

If things don't seem to be working, you can go to the web UI and check the logs for issues.

Now, you'll need to download the Unified Remote app to your phone (I paid for the full version, but it shouldn't be required). When you start the app, it should automatically find your server. Hopefully, when you add a new remote, and open the Gaming category, you should see your new PICO-8 remote. Add it, select it, and you should be able to control PICO-8 while it's running on your pi!

A few caveats:

• The files assume american style keyboard, feel free to tweak the buttons in the layout if that's an issue.
• I have the layout set to landscape orientation, but apparently Unified Remote doesn't respect that. I have to turn on screen rotation and make sure I'm in the correct orientation for it to look decent.
• I had some issues with the Unified Remote app picking up changes made to the meta.prop file. Clearing the app data, and starting from scratch solved it.
• I am using the wifi data connection for Unified Remote. This obviously relies on semi-decent network speeds to be responsive. Apparently there's also bluetooth connection, but I have not attempted that.
• "Select" is Escape, "Start" is Enter. Again, tweak to your heart's content.

Hopefully this is useful to folks!

P#82795 2020-10-11 06:09 ( Edited 2020-10-11 06:23)

 3

Cart #keep_it_alive-0 | 2020-04-18 | Code ▽ | License: CC4-BY-NC-SA
3

"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 _ ```
P#74918 2020-04-18 05:51

 1

Cart #weaver-0 | 2020-03-09 | Code ▽ | License: CC4-BY-NC-SA
1

"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```
P#73780 2020-03-09 04:24

Cart #lunar_blackout-0 | 2020-03-05 | Code ▽ | License: CC4-BY-NC-SA

"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 _```
P#73685 2020-03-05 06:55 ( Edited 2020-03-05 07:05)

 2

Cart #sonder-0 | 2020-03-04 | Code ▽ | License: CC4-BY-NC-SA
2

"Sonder"

276 characters

 ```b,z,x,y,d,r,g=0,128,{},{},{},rnd,pget cls(0)::_::for i=0,z do for j=0,z do c=g(i,j) if(c>0)pset(i,j,c-1) end end for i=1,9 do if(b<9)b+=1x[i]=r(z)y[i]=r(z)d[i]=r(1) circfill(x[i],y[i],2,9)x[i]+=cos(d[i])*r(3)y[i]+=sin(d[i])*r(3)d[i]+=r(.1)-.05x[i]%=z y[i]%=z end flip()goto _```
P#73651 2020-03-04 05:41 ( Edited 2020-03-05 07:05)

 1

Cart #pandemic-0 | 2020-03-03 | Code ▽ | License: CC4-BY-NC-SA
1

"Pandemic"

265 characters

 ```z,g,s,r,f=128,pget,pset,rnd,flr cls(0) for i=1,9 do x=f(r(z))y=f(r(z)) s(x,y,8) end ::_:: for i=1,z do x=f(r(z))y=f(r(z)) c=g(x,y) a=g(x+1,y)+g(x-1,y)+g(x,y+1)+g(x,y-1) if(c>1)then s(x,y,c-1)elseif(c==1)then elseif(a>4 and r(a)>4)then s(x,y,8)end end flip() goto _```
P#73629 2020-03-03 07:32 ( Edited 2020-03-05 06:56)

 4

Cart #sweet_sip-0 | 2020-02-20 | Code ▽ | License: CC4-BY-NC-SA
4

"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 _```
P#73275 2020-02-20 05:46 ( Edited 2020-03-05 06:57)

 4
 ```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 _```