A cat maze and puzzle game. Get through 16 levels in as few moves as possible, find your favourite socky and defeat your nemesis.
Clear the fog as you expand your territory, navigating through gardens, dark dungeons, slippery ice, an ancient city and a mandatory industrial zone. Win medals based on how many moves you have left.
If you get stuck, there are hints in the menu. Version 07 is more forgiving and has a level select.







Toboggan is a visual solver tool for Advent of Code 2020 Day 3. It can accept custom inputs that are properly formatted by pasting from that day's input file.

Do you want to zoom in our out of your map during the game this may be for you.
Simple cart to show off the zoom function.
Cursor keys to scroll x/z to zoom in and out.
actual function is as follows
--prints the map zoomed -- zoom is the zoom factor 2 for twice as big -- 0.5 for half as big -- mx = the pixel cordiante of the map to start -- my = the pixel cordiante of the map to start -- sx = screen offset x -- sy = screen offset y function zmap(zoom,mx,my,sx,sy) zoom = zoom or 1 mx= mx or 0 my= my or 0 sx= sx or 0 sy= sy or 0 for i=0, 127 do tline(0,i,127, i, mx, my+i/8/zoom, 1/8/zoom) end end |
Please feel free to adapt for your own projects.
A better version of this could use a screen clipping rectangle but I wasn't sure if it was necessary or not
A question came up yesterday in the pico-8 discord: are there any nice ways of doing default arguments? For example,
function foo(a,b,c) a=a or default_for_a b=b or default_for_b c=c or default_for_c -- do stuff end |
That's five tokens spent per argument; can we do better?
yes
My first thought was doing something like this:
function new_actor(fields) return merge(parse"x=64,y=64,w=8,h=8",fields) end |
This is a common pattern I use in my games; merge(A,B) is a custom thing I have that merges tables A and B together by creating a new table, copying all of A's contents into it, and then copying all of B's contents into it. Note that if A and B share any keys, the value from table B will be used for the result, which makes this handy for setting defaults in a table. (and parse is another custom thing that does what you'd expect, turning a string into a table)
However, this wasn't quite what the questioner was asking for; I can set default values for table members with this method, but I can't set local variables. This method wouldn't work to save tokens if you had to say locals.myvar throughout your function instead of just myvar!

Hola! I thought it would be cool try making a Christmas-themed game, so here it is. Ola! Tannenbaum is a quick arcade game where you're going to need good timing, lightning reflexes, and absolutely no sense of colour-coordination to create the most chaotically decorated Christmas tree ever. Start by placing baubles, tinsel and fairy lights and top everything off with a star on top. Will you be a bauble boffin or a yuletide liability?
Ola! Tannenbaum is an accurate simulation of what it is like to decorate a tree after too many glasses of sherry and with your eyes closed.
I tried to make an in-game tutorial that explains everything reasonably well but here's what you need to do in more detail if you're planning on min-maxing this.




An little shooting game I made to learn PICO-8 a long while ago!
Defend the cat girl hacker at the center of the board from waves of invading robots!
Pick the melee focused, katana-wielding fox lady and slice them to bits a dash special attack, or the gun-toting, turret-deploying wolf girl to shred them with bullets.
Also features a 2-player mode for more mayhem!
It's playable, but not entirely finished and a little unbalanced.
Buttons:
Arrows - move
X - main attack (sword/gun)
Z - special (dash cut/deploy turret)
Have fun!



Hello! Welcome in a world of pain.
The unofficial harder-than-sub-150(tm) CELESTE Classic mod is here.
This mod was designed as first to be a parody of "add spikes" mods, but I actually put a lot of time and efforts into this to make it actually interesting.
This doesn't require any rem manipulation, spike clip or that kind of crap (you can't see rem and spike clip is lazy), but includes a lot of setups that require extended knowlage of the game and pixel/frame perfect precision.
All the levels were verified by me, they are humanly doable without any spike clip. If you think than it's too easy for some reason, try beating it without spike clip like I did.




.png)




Just got the new Pimori Picade 10" and wanted to set up PICO-8.
- Downloaded the RPi version from the site
- Unzipped it to
/home/pi/pico-8
- Created a file called
splore.sh
, put it inhome/pi/pico-8
(And made it executable, see below for the file contents) - Updated the
es_systems.cfg
file to add a pico-8 entry (See below for entry) - Rebooted and launched RetroPi, launched the
splore.sh
file and got an error sayinglibwiringPi
wasn't linked. So I installed that and when I run now I get a segfault - Created a bash file to launch it in emulationstation, and it is missing the libwiringPi library. So I installed that and now I get a segfault whenever I try and launch it
Here's the splore.sh
file:
#!/bin/bash pushd "/home/pi/pico-8" ./pico8 -splore popd |
Here's the es_systems.cfg entry:
<system> <name>pico8</name> <fullname>PICO-8</fullname> <path>/home/pi/pico-8</path> [ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=84965#p) |




Simple input system, to manage key/button presses.
Registers pressed and release buttons.
Horizontal axis, vertical axis, O and X buttons are all independent of each other.
The code is commented, so you can follow along what it is doing (and possibly improve it, if you wish).
As is, it is good enough and does the job, but I wouldn't be surprised if there is a more efficient way of doing this.





Rumors say that goblins hide their most precious treasures deep within their nests. They guard it with their own lifes, so it must be quite valuable indeed!
If you want the Goblins' Gold you must be tough, but also cautious and witty! Traverse 10 levels of goblin-infested rooms one step at a time, facing 8 different creatures, from the mindless slime to fearsome necromancers.
HOW TO PLAY:
- Attack enemies by bumping into them. Your sword will do the job.
- Use the ZAP attack (X) to hit and stun (if they can be stunned) all enemies around you.
- Clear a room to find the stairs to the next level (grab all gold and kill all enemies)
- Do not rush! This is a turn based game. Some enemies are fast and weak, some slow and won't be stunned by your blows. They are easy to defeat when they are alone, but dangeours if they surround you!
- Make the most of your surroundings! Running head-first is not usually the safest option...
THANKS FOR PLAYING!
This was a side-side-project inspired by Jeremiah Reid's Broughlike tutorial, loosely translated to Pico-8 as a first contact with this wonderful fantasy console.
.png)

