Note: This cartridge's settings do not allow embedded playback. A [Play at lexaloffle] link will be included instead.

UPDATED AGAIN: more efficient line usage, added some colour and detail.

UPDATED: added some more detail and less chance it messes up. Exactly 140!
First ever Pico8 'thing'. I did a tunnel-esque one but didn't like it, so here's the beginnings of Mini-DownWell... or something :p

x=32q=122p=print
a=rnd
function _draw()
for i=0,x,2 do p("@",i,q,4)p("@",q-i,q) end
p(".",a(q),q)p""
u=a(5)d=a(5)
x=max(min(32,x+u-d),0)
end

I wanted to write a real game for the jam, and I settled on janken, a.k.a. jankenpon, a.k.a. rock-paper-scissors. Alas, I could not trim it down enough to qualify for a tweet. It's 248 chars. I'm disqualifying myself, but I want to share it anyway.

Note: This cartridge's settings do not allow embedded playback. A [Play at lexaloffle] link will be included instead.

POWER ORB - fun with polar coordinates! Every particle entity starts at a random angle with a fixed radius away from the center of the screen, and every frame decreases each the particle's radius. When a particle hits radius 0, it is removed. You can remove that del if you want stuff to cross through the origin, which looks kinda neat -- but I sorta liked having everything contained in a circle around the center.

t={}w=64::a::add(t,{w,rnd(),rnd(16)})for e in all(t)do
r=e[1]a=e[2]pset(sin(a)*r+w,cos(a)*r+w,e[3])e[1]=r-1
if(r<0)del(t,e)
end
flip()goto a

Note: This cartridge's settings do not allow embedded playback. A [Play at lexaloffle] link will be included instead.

GEM SLUG: you are a slug, you are hungry, you must collect gems. There is no scoring, and you more really slow. Also, to reduce code size on the randomization, the gems share the same x and y. Anyway, have fun!

(Unlike my previous 140-character game, this one resets itself "nicely" when you collide with the other object)

Note: This cartridge's settings do not allow embedded playback. A [Play at lexaloffle] link will be included instead.

REFLEX MASTER: Press the button, quickly! Each button press counts towards your score, but your score resets when the time runs out. The difficulty increases slightly with each button, and eventually becomes impossible to win.

(A high score thing and better difficulty curve would nice, but with only 140 characters not much you can do.)

Those characters are the button codes btw (LRUDOX), not sure if the BBS will display them. I noticed the pico-8 0.1.8 text editor's scrolling breaks with long lines of button code strings, and won't scroll the viewport to the right fully.

Note: This cartridge's settings do not allow embedded playback. A [Play at lexaloffle] link will be included instead.

Animated water tiles. Fills an 8x8 tile with 1 bg color pixel + 1 white pixel every frame, to make a semi-convincing water tile. The logic done by sset could be useful for someone's top-down game if they don't want to draw a tile, just remove the color cycling on the bg color.

Note: This cartridge's settings do not allow embedded playback. A [Play at lexaloffle] link will be included instead.

t=0
while true do
cls(0)
t+=0.002
for i=0,127 do
x=sin(t)*128
y=cos(t)*128
if i%6<2 then
rect((sin(t+y/128)*64)+(i+x)%128,(cos(t+x/128)*64)+(i+y)%128,(128-i-y)%128,(i+128+x)%128,5+(i/16)%3)
end
line((sin(t+y/128)*64)+(i+x)%128,(cos(t+x/128)*64)+(i+y)%128,(128-i-y)%128,(i+128+x)%128,7+(i/8)%8)
end
flip()
end