Character Tester 1.0
A place to test your sprites
The primary goal of this cart is to test animations, visual effects, and character mechanics.
![]() |
[0x0] |

future plans:
→ sound effects
→ samples for 8x8, 24x24, 32x32
→ giving the little guy some kind of weapon
.
.

TATER EVADER!
You dropped some Honey Gold potatoes at a picnic, and they GAINED SENTIENCE, realized you were about to eat them, so they got mad and started to fire TATERIKENS at you! Try to survive as long as you can!
Use the arrow keys to evade the angry taters and their taterikens! If you touch either, you die and game ends. Press X to try again!
It's not quite two tweets yet, hope to get it down to there... maybe.....
WORLD RECORD SO FAR: 77.26s, Taters (E:) 26.
Update 1 - full speed & better sound.
Update 2 - fix missing mouse cursor.
Update 3 - fix speed decrease in Pico8 0.2.0
Update 4 - support cart/bios drag&drop and function keys.
What is this?
An emulator for the Fairchild Channel F, the first console to use programmable ROMs and a microprocessor.
The console was released in 1975, so don't expect much in the way of graphics, gameplay, or usability.
See Wikipedia for more info.
And what's that game running?
That's a homebrewed (i.e. - NOT original) game made by Blackbird and e5frog. You can find it here.











Slider
Simple block stacking game, originally written in a few hours and a few cappuccinos while I was waiting in Starbucks. I've since been tweaking it for a couple weeks, and am forcing myself to release it so I can stop messing with it, and move on to something else.
![]() |
[0x0] |


The following program, despite never adding a function to this table, sometimes has a function in the table. This was happening in a game of mine and I finally decided to try reproducing it with a tiny program and I have been able to.
cls() nds={flr(rnd(4))} for i=1,1000 do for k=1,flr(rnd(10)) do add(nds,flr(rnd(5))) end for j=1,1000 do nds={flr(rnd(4))} for d in all(nds) do if type(d)=='function' then print("function") end end end end |
I would never expect this program to ever print "function" yet, it does, and intermittently.






Hi All,
I'm trying to do something quite standard in gaming terms, but feel like there should be a more elegant solution to the routes I've tried so far.
So I'm wondering if anyone could point me to a Cart or Snippet that might help.
Basically I want to use the map to place start/end positions of a variety of enemies, while also being able to include info on speed of movement between these two points. Really simple old-school gaming (it's a homage to Jet Set Willy).
So far I've approached it to use two sprite, one start, one end. This seemed the obvious route. But now I've got the basics up and running I'm realising a) if using more than one of the same enemy in a room how can I define the relationship between an enemies start/end pos and b) how to include meta on the speed (less of a worry).
I could start a big list, and keep it all in that for each room, but game play iteration would suck (although likely how it was done back in 80s).
I'm sure someone has done this already, so looking for ideas.

_
Catch the wiggling pixels. As you move through the rooms the pixels will wiggle more and more erratically.
Controls 🕹
- X to start
- move with arrow keys
Strategies 🤔
- To catch a wild wiggling pixel one must become a wild wiggling pixel
This is the first game I've ever posted to pico8.
It might not be much, and it may be a little more annoying than it is fun, but it does just scrape in at exactly 560 characters to get in to the TweetTweetJam2.
Any advice on how to improve my rudimentary code (or make a better game) would be appreciated 🙏
function _init() x=64 y=64 ex=64 ey=44 l=3 s=1 r=1 c=100 t=15 o=true p=print b=btn pc=6 end function _update() cls() if o==true then p("wiggle room \151",34,54,pc) if (b(5)) then o=false end elseif o==false then c-=1 if (ex==x and ey==y) then ex=20+flr(rnd(80)) ey=20+flr(rnd(80)) r+=1 t=15 p("\143",x-2.5,y,8) end pset(ex+flr(rnd(r)),ey+flr(rnd(r)),8) pset(x,y,pc) p("\138"..r,2,2) p("\147"..t,111,2) if (b(0)) then x-=s end if (b(1)) then x+=s end if (b(2)) then y-=s end if (b(3)) then y+=s end if c<=0 then t-=1 c=100 end if t<=0 then _init() end end end |


Hello everyone,
I am kinda new to Pico-8 (as I worked with TIC-80 before). I am working on a game and I was trying to manage the code to be more readable by moving some code around.
I added all the helper functions at the top of the p8 file (as I was trying to move it to another lua file to use the #include command). When I ran the code, no error but it didn't behave as it supposes to do. The helper functions use some global variables so I moved that code to be after the definition of the variables and it worked fine.
Does functions in pico8 lua bind the variables in the function to the global variables when it is defined (which is before the definition of the variables) that's why it is reading nil? I am not amazing with these binding stuff so sorry if I am using incorrect termonolgy.
Ahmed Khalifa

BIRDWATCHING
by Tim and Hannah
This isn't a game (yet), rather a sprite sheet of 64+ pico-birdies along with a player character ('Bob'). Please feel free to use the bird sprites or player animation in your game. I'll eventually make it into something playable myself, but in the meantime let this mark my first post to the PICO-8 BBS.
My daughter made almost all of the bird sprites. She's only little so please be nice. Here are a selection:
![]() |
[0x0] |





"I'm sick of this guy always doing ports. Why can't he make his own game for once?" - snarky PICO-8 player who is somewhat familiar with my current library of games
First off, Wal-Rush! was original.
Second off, I'm beginning progress on an original game called DESCENT! It's based on a game of the same name that I made for the TI-84+ and TI-84+ CE back in 2017. Only, instead of delivering boxes, in this game you're slowly becoming insane.
I've implemented almost every mechanic I plan to use in the game, and I've made 4 stages with basic demonstrations of the first few of them. (There are ways to get stuck in these stages, and I don't have a restart-stage function yet. If you get stuck, you'll have to reset the cart. Sorry!)



In space, everyone can hear you scream, and they want you to shut up!
You pilot a small triangular spaceship and must make a living for yourself stealing fuel from empire bases. But every action you take makes noise that the sentries can hear. In order to keep your engine running, you must venture from base to base, sneakily and silently nabbing fuel.
Made for week 1 of Game Studio by Kyle Neubarth and Albert Jin!
arrow keys to accelerate/turn
z - shoot
x - hyperdrive (burns extra fuel, really loud, pretty fast)
Info
A small demake of Super Hexagon created for TweetTweetJam 2.
Made in 555 characters from a limit of 560.
Refresh to restart.
Code
a=0t=0s=0.5r=0.005l=1 c=63h={}add(h,{r=99,a=rnd(1)})add(h,{r=99*1.5,a=rnd(1)}) z=sin v=cos ::_::cls()x=c+15*v(a)y=c+15*z(a)circ(c, c, 5, 7)circ(x, y, 1, 8) if(not btn(0) or not btn(1))a+=r if(btn(0))a+=0.03 if(btn(1))a-=0.03 for i=1,#h do o=h[i] q=o.r [ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=64471#p) |

