This is my prototype for the PICO-8 class. There will probably be changes before we do the class, but the key components are:
- creating sprites
- making the character move
- creating a layout for the level
- programming item interaction and hitting walls
- sound effects
Below the game itself you can click "code" to see the code. I hope to be able to explain and help students to type all of the code included in this game as part of the class.
I may add code that the kids can copy/paste at the end to add enemy movement or a proper victory screen. I don't think we will have time to cover those things in the class.
The students will also be creating their own sprite artwork, so the player character, enemies, walls, layout, sound effects, etc should look different for everyone.
so i just drew some sprite in asesprite and well within the 128x128 sprite sheet pico allows, but when i go to make the level ibn the map editor then as soon as i pan with space bar the last to sprite sheet pages go black. is this a known problem. i am within the palette and sprite limit so idk what is going on

The character 26 translates to the ¥ character in P8SCII. However, on ASCII, the character is an end-of-file marker. If one uses the P8SCII ¥ character in an include file, it terminates the parsing of the file and most likely cases a syntax error.
I stumbled across this trying to export binary strings from Picotron into TXT files that I could then include in Pico-8. I properly escaped the string as described in this thread (https://www.lexaloffle.com/bbs/?tid=38692). But if the binary string accidentally includes the character 26, the include fails. However, exporting the escaped binary string to the clipboard and copy & pasting it into Pico-8 works fine.
Code to reproduce behavior
In Picotron:
store("/desktop/test.txt", "test=\"¥\"") |
In Pico-8:
#include test.txt |
Output:
Suggested solutions:
- Add P8SCII escape code to escape ¥

Pico-8 has a nice poke to adjust the map width, but you unfortunately can't use the built in map editor to conveniently take advantage of it.
I wonder if someone already rebuilt the sprite and map editor of pico-8 in pico-8, so I could tweak it to add map width support without starting from scratch.
Another feature I'd like to add is usage of the range 128-255 tiles+flags for the 4sceen x 8 screen maps, so you can use the extra range as flipped versions of the 0-127 range.
I've found a way to use the Pico8 language server extension for VSCode while developing with Picotron.
This give you all the "Pico" style changes to Lua as recognized commands that don't throw errors, things like:
a += 1 if (something) action() a = b \ c |
There is some Picotron syntax which will show up as warnings (such as 'fetch' or 'window'), but this is the best we've got until a proper Picotron Lua language server extension is released.
To use it - install the pico8-ls extension by Pollywog Games in VSCode.
In Picotron open main.lua and enter the following:
cd("/projectname")
include ("src/filename1.lua")
include ("src/filename2.lua")
-- etc for every lua file |
Your source LUA files go in the Picotron drive (type 'folder' at the Picotron command prompt to open it)
in drive/projectname/src
Save your .p64 file into drive/projectname/projectname.p64
Lastly, to get the Pico8 language server to think this is a Pico8 game and to include all your Lua files, you create a .p8 file: drive/projectname/projectname.p8 and edit it in VSCode. It should look like this:
"Mesa"
(291 chars)
q="2709432941253125412567758699"pal(9,-7,1)poke(24372,2)h=circfill::_::l=mid(0,8,cos(t()/6)*16)n=l>4and 9or 0m=n<9and 9or 0cls(m)h(63,63,48,n|6144)k=8-l for i=24,33+k*6do for x=23,30do line()for e=1,#q,4do line(q[e]*l+q[e+2]*k+x,q[e+1]*l+q[e+3]*k+i)end end end h(63,63,56,m|6144)flip()goto _ |

"AKIRA"
(299 chars)
s="htlaeh rof doog bad for education"n=circfill::_::cls(8) q=t()for i=1,33do a=i/34+.02e=50+max(sin(q+i/90)*9) ?"\^o2ff"..(i<17and"\^t"or"\f8")..sub(s,i,i),63+cos(a)*e,63+sin(a)*e end for f=0,1do for i=0,18do a=sin(q)*9+sin(q/2)*i if(f<1)n(i+53,63+a,9,14-i\12*2) n(i+50,60+a,2,7)end end flip()goto _ |

"Excelsior" the procession enunciates ad infinitum.
Somewhere among the arbitrary torrent, a match will be made.
(300 chars)
q={}for i=0,99do
e="-"for i=0,3do
e=chr(rnd(26)+97)..e..rnd(9)\1end
add(q,sub(e,2,9))end
f=0o=rrectfill::_::for i,f in ipairs(q)do
y=((i-1)*44-t()*8+44)%999-44x=23+cos(t()/2+i/4)*24o(x,y,79,40,2,9)o(x,y,79,18,2,1)ovalfill(x,12+y,78+x,22+y,9)
?"\^wnew york\n⁴r\^t\^wᶜ1"..f,x+8,3+y
end
f+=1flip()goto _
|
[PICO-8] DROP - A Juicy Arcade Rain Catcher ☔
Hello PICO-8 Community! 👋
I'm excited to share my first complete project: DROP. It's a simple yet addictive arcade game where you play as a thirsty hero trying to catch water drops while dodging poison.
Features:
Juicy Gameplay: Screen shake, particles and freeze frames.
Dynamic Difficulty: The better you play, the faster it gets. Can you survive the storm?
Controls:
⬅️ / ➡️ : Move Left / Right
Z : Start / Retry
Technical Details: I built this engine to learn good practices in PICO-8 (OOP, Scene Management, Entity System). Hopefully, the code is readable for anyone looking to learn!
Credits:
Hi, I recently came across Pico8 and found it to be a great introduction to game development for me. I wanted to familiarize myself with the console first and am currently developing a little memory game. I deliberately chose simple basic game mechanics so that I could focus on the technology and graphics, etc.
I think I'll expand the game mechanics a bit so that it's not quite as trivial as it is now.
Until then, I welcome any feedback and suggestions.
Update v0.2 - 14.02.2026
- Refactor mouse/gamepad support/recognition
- Adjusted level difficulty
Houndstooth
v1.0.1
A Lua pattern tester and quick reference
What's it do?
Houndstooth allows you to quickly test Lua patterns for use in your code, and visualise how/if they match a given test string. Lua patterns allow you to do complex and flexible searches within strings (similar to regex), and can be a very useful tool - but can be a bit fiddly to get working and there aren't as many good tools as there are for regex.
Just type your pattern in the top text box, and the string you want to compare it to in the bottom text box, and Houndstooth with give each matching part of the string a colourful outline. Each seperate match gets its own outline. Each line is treated as a seperate test for purposes of ^ and $.
Backrooms level 2
This is a mod of Electricgryphon's game, credits to him.
The game isn't finished, I only modified the textures.
When I figure out how to modify the map, I'll make the complete version.
The link to the original game:Backrooms-0
So here's my attempt at a small Tarot app!
pushing down reveals cards and pulls new cards from the deck.
pushing right switches to GERMAN, pushing left switches back to ENGLISH
pushing up shuffles the deck back together, which also happens when you run out of cards
added more sound effects and improved contrast, also now changed major arcana to be a different color scheme.
tweaked probabilities of reversed cards (made them a little less common).





0 comments



