

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) |


Dungeon Layout Generator
Description
A generator based on this cart by @johanp. It uses a similar idea to place rooms, but is much more simplistic (I prefer to try and figure things out on my own before I dig into other people's code.) This particular version continuously generates new dungeons while running. Feel free to reuse this if you like.


A dungeon generator that I cobbled together, loosely following the methods described here. Please forgive my trash code. It's somewhat variable, but has an issue with mazes not being entirely connected together. I was hoping I could get some advice on how to fix that by uploading here. Feel free to use this for your own projects, if you want.
My first Pico-8 game! :D It started as an small experiment, but grew way bigger than expected. Very difficult and very short. Hope you enjoy it! :-)
CONTROLS
ESDF To move
Arrow Keys to shoot (Hold it for auto-fire!)
X to restart after a Game Over
Z to go back to the Title Screen
WARNING
This game contains flashing lights that could trigger an epileptic seizure


At the moment I am trying to make a sound play once during a collision.
The collision doesn't stop player speed, but rather the player can "run" through the collision box.
This means that the collision function returns true for several frames in the game.
Whilst can get a collision to play a sound, because the function is returning true for several frames the sound bite keeps restarting every frame.
Could someone please explain how I could make it so that
Whilst collision = True
Sfx plays all the way through(only once though)
I am currently trial and erroring my way through this, but I wondered if I could cut that a little shorter by asking a question on here. I did try searching online for tutorials regarding this but they either make a sound effect play when a button is pressed, or something that doesn't necessarily apply to a situation like this.
Thanks.




(Also playable on itch.io!)
This was made for the second TweetTweetJam, hosted by @eggnog!
A game inspired on the classic Slap Dab for the ZX Spectrum. Only 559 chars of code, so it fits in 2 tweets. Due to reaching 560 char limit, many features have been removed. But hey, there's still a room you have to paint, angry monsters that spawn close to you and chase you. Monsters can only move over painted tiles. Have fun!