Hey all!
A while ago I started working on a little platformer with a portal/hole mechanic. The idea was that you could toggle a hole through a level that would let you move through a parallel level and solve puzzles. I was working with a "modern" game engine and getting that to work was a breeze; I started thinking about how to nail that effect on pico-8 about a week ago but didn't begin writing it until last weekend. Turns out by using tline and some help from the pico-8 discord it took a couple of hours. Now I'm working on finishing it and releasing the game by the end of the month.
This is what it currently looks like:

If you have any suggestions, I'd love to hear them!
- Gabe



Hey all!
I'm working on a platformer right now and I've been kicking around the idea of custom masks. Essentially, I want to draw a map, and a map on top of that; a circle would then reveal (punch a hole through) the map that was drawn first through the foreground map.
This effect can be done through a simple clip() call between drawing both maps, but that only gives me a rectangle (and only one at that). I'd like that effect, but with a circular shape (or an arbitrary shape ideally).
A solution I've been messing with is saving the background map to memory (at the sprite data or general purpose address), then drawing the foreground map normally with map(). The game would then get the pixels within the shape, get the corresponding data from memory that would match the pixel location, and draw the correct pixels on top of the map, which would look like a "hole" punched through the map.
Thing is: I'm shit at memory stuff.
So, while I read through how memory works and how I can read would-be pixels from a memory address and draw them individually while keeping 60 fps sigh I would much appreciate any help with this. If you think my idea won't work, please let me know; if you have a better idea, PLEASE let me know; if you've done this before, I would be eternally grateful for the help.

This is the PICO-8 version of a game I wanted to make about 3 years ago. I figured I should make a smol version of it and actually finish.
The final game will be a one-screen maze game with moving enemies, and hopefully something interesting with the painting mechanic. I also want people to make their own levels for it, so I made a separate level editor (not in PICO-8) that spits out a table that the game reads as a leves; super user f r i e n d l y .
Anyways, that's what this is. I hope I have something more interesting



Hell Hole: Final Release
Manual
Controls:
- Movement: up,down,left,right
- Attack: Hold X or Z
How To Play:
- Move your avatar around the screen to avoid getting hit by demons and saw-blades.
- Hold the attack buttons to shoot your soul out and control it to hit demons.
- You can't move your body while using your soul. Your body is still vulnerable.
- Let go of the attack button to return your soul to your body.
- You can't damage saw-blades.
- Survive 66 seconds...
Characters:
- Player:
[0x0]





Hi!
A while ago I decided to port a game I made to PICO-8, and I'm finally almost done :D All that's missing is SFXs and a dope title image/cart cover. I'm posting this here because I'd love to playtest it here and get your opinions on it so don't hesitate to tell me if something sucks!
Also, don't look into the code too much, I'm not a great programmer...



Wow. PICO-8 is extremely fun to work with, and I'm so happy I stuck around to learn how to use it!
Right now I'm learning how to work with tables and 'objects' to sort of port a game I'm currently developing called HellHole. It's a top-down shooter where you choose between controlling your body or the bullet (which is your soul).
So far, I've managed to not slow down the game with a shit ton of instances and that makes me happy!
I'll leave you with a gif of the latest bit of progress: A spawner, soul particles, and screen-shake.


Hi! I'm developing a short little game in PICO-8 and plan to export it as an executable. The problem is, I would like the game to close itself after something happens. I've tried using the 'shutdown', 'exit' and 'stop' functions but none of them closes the window at the end of the game.
Is there even a way to do this? Or perhaps I'm using the previously mentioned functions in a wrong way?
Thanks for the help!





Hi! I just started using PICO-8 and I'm having a little trouble with my collision code.
It works fine when colliding against walls, but colliding against corners (the red tiles) breaks it.
Here is the collision part of the code:
function placeMeeting(x, y, f) local tilesize = 8 local tilex = flr(x/8) local tiley = flr(y/8) local s = mget(tilex, tiley) return (fget(s, f)) end |
And this is the movement part:
if (btn(0)) then if (not placeMeeting(p.x-1, p.y, solidtile)) then p.x -= p.speed end p.mirror = true elseif (btn(1)) then if (not placeMeeting(p.x+p.bbox_w+1, p.y, solidtile)) then p.x += p.speed end p.mirror = false end if (btn(2)) then if (not placeMeeting(p.x, p.y-1, solidtile)) then p.y -= p.speed end elseif (btn(3)) then if (not placeMeeting(p.x, p.y+p.bbox_h+1, solidtile)) then p.y += p.speed end end |

