Hey everyone!
I just finished my little pokemon-esque jrpg: pico monsters.
In this game there are markers called 'picostops' scattered throughout the map which drop
random items whenever you have defeated a few wild monsters. 'Picostops' also replenish and revive all the monsters in your party. Catch new monsters with picoballs. Due to the save restrictions of pico8 the
team size in this is only 4. Every wild monsters can have up to 4 different moves it's recommended to catch and compare to build your best team. There is also a very small story about professor corks whereabouts...
Let me know if you run into any issues. Thanks for checking it out :)
Controls:
arrow keys: move around
x: open menu to view monsters, items and save
z: interact with people and things
Each monster is associated with an element and some elements have advantages over others.
Advantage of elements:
Earth: none
Air: Water
Water: Fire
Fire: Earth, Air


A recreation of the old arcade classic Depth Charge, not too faithful to the original, just a bit of fun and my first PICO-8 game. Move with left and right, drop charges to port and starboard with the two buttons. Sink subs for points and bonus time!
v1.1 (July 2026): fixed a ten-year-old bug where subs travelling right-to-left never launched mines. It's a bit more dangerous out there now!

Remember That Movie From The 80s
Coming up with the title or this post made me remember that movie Enemy, Mine from the 80s. I think it was starring Dennis Quaid and Lewis Gossit Jr. They were enemies crash landed on a hostile deserted world and had to work together to survive. Then of course they become friends and have a bunch of adventures.
Interesting that they were both starship pilots and I'm working on a space shooter game... cause you know I liked them when I was a kid... in the 80s...
Making Sparks
To copy another element from Cave Berries, because I really like the way the laser sparks when it hits a wall, I added a sparks function/method to the [b]bulletconstruct
Got things mostly working. (but still borked on right walls and cornes) Placeholder camera implemented, want to add dead zone and false boundaries to it eventually.
Taking an official break of sorts while I contemplate robust collision (and probably slopes) offline. I've made some progress on the theme/flavor, but I'm still keeping that to myself while I hammer on the basics.
Strange, editing the post I got the bbs to eat all my previous version. Broken tags below.

This is a Demix of the song "Jungle Dash" by Pogo, Who I am a fan of. I spent a good third of my day just working on this. The track is 32 segments and 16 loops.
Lemme know what you think in the comment thread, and feel free to use this and any of my other songs for your project (credit given is appreciated <3) If you have a song you would like made in pico-8 for your project, let me know and I'll see what I can do. Thanks for listening!
I was wondering if anyone was interested in a Discord server for Pico-8. It's not meant to take away from the official forums but I feel like it would be good for quick questions and general discussion as well as help build a tighter-knit community around Pico-8.
If you're interested, let me know! If not, then no worries!
Thanks all!

My code for sprite rotation:
function sprrot(id,x,y,a,s)
id=flr(id)
function getcol(px,py)
return ((px<1 and py<1)and(px>=0 and py>=0)) and sget((px*8)+((id%16)*8),(py*8)+(flr(id/16)*8)) or -1
end
for py=0,s*13 do --floor(9*sqrt(2))
for px=0,s*13 do
local uv={x=((px/(11*s))-.6),y=((py/(11*s))-.6)}
local col=getcol(((uv.x*cos(a))-(uv.y*sin(a)))+.5,((uv.x*sin(a))+(uv.y*cos(a)))+.5)
if(col>0)then
pset(flr(x+(px-(6.36*s))),flr(y+(py-(6.36*s))),col)
end
end
end
end
|
Any better ones?

NIJI - A Colorful Rainbow One-Dimensional Action Match-3 Puzzle Game
Inspired by this Famicart:

NIJI by @haya_a_TECS
Music was highly influenced by the Moon Theme of the NES Duck Tales game.
Instructions:
- press up/down to make your fire flower line change lanes in the rainbow
- press <z> to go faster
- catch incoming flowers by touching them with your fire flower line

Hey folks,
So I bought Pico-8 last weekend and have spent a few nights reacquainting myself with Lua (which I hadn't used much of before anyway) and learning Pico-8's nuances. I figured since I was still learning I would recreate one of my favourite puzzle games of all time - Lumines.
I will warn you, the graphics and (especially) sound are a bit rough. Also, I borrowed the fade code from Zep but re-purposed it to sort of fade in. It sort of works. I'll have to make an effort to learn exactly what that does.
But the gameplay itself is fine I think, adhering to the rules of the original. Scoring is a bit broken due to the integer limit and I haven't really looked into ways to get large integers yet.
If you fancy improving it be my guest! Likewise if you want to use some elements of it elsewhere (as unlikely as that sounds) that's fine too. It isn't really commented as much as it should be (sorry!)

A Hit, A Hit, A Very Palpable Hit
We've got lasers firing and astroids asteroiding, or whatever it is they do, so now we need to be able to actually hit objects with our lasers. And the reverse, to know when an object has been hit by a laser, or another object for that matter.
Since starting this foray into game development I've continually been impressed about how supportive and helpful the Pico-8 community is. The forums have loads of great posts with comments that are usually helpful and questions ask to help someones understanding. Very fun to be a part of it in whatever small way I can.
Updating bullets
As the guide in Pico-8 Zine #3 teaches the bullets (lasers in this case) need to have a hitobx to determine when they collide with something. With the hero laser there are two "beams" so we'll need to add a hitbox for each one. Update the [b]bulletconstruct

Here I have played around a bit with animations. I have combined both sprite animations and particle animations to make it look good. The sprite animations are done with a "config" structure so that I can use the same functions for drawing the animations later. Actors and particles are seperated in there own tables. I think this is best if you want to do collision detection later.
Now I want to improve the code and what some suggestions. I have not used Lua and I am sure you can see that on the code. Currently it use 870 tokens. This must be improved I guess? I guess every token counts in the end when you are creating a complete game. But I think there is a lot of stuff that can be improved.
I do also have some questions. For example I update and delete disabled actors like this, is this safe? or can this result in that some actors are updated multiple times peer loop etc?
for a in all(actors) do if(a.enabled) then a.update(a) else del(actors, a) end end |

Here is my entry for A Game By Its Cover: Stranded on a Mountain
After crash landing on a lonely mountain, all your survival supplies have been scattered across its peaks.
Find your gear and climb to the top. Survive.
Controls: Directional buttons to move. Hold Z (O) to view the inventory.

SANDBOX-8 is a sand-based doodle maker.
You can use both buttons or mouse to control the cursor, it's up to you!
Don't forget to share your art!
Keyboard controls:
Z - make sand
X - speed up
Arrow keys - moving
Made in three afternoons when I had nothing better to do.
Features:
- 15 colours + randomiser
- Saving/loading
- Three brush sizes
- Neat transition effect
Changelog:
1.1:
- Optimisation, bugfixes
1.0:
- Initial release

This throws a syntax error in PICO-8, but is valid Lua.
x = 4
y = 1
if (x == 1 and y == 1) or x == 2 or
x == 3 or x == 4 then
print('yo')
end
|
As far as I can tell, the parser seems to not like the linebreak in the series of ORs, if the first group has parentheses around it.
btw this is a contrived example just to demonstrate the syntax ;) but I actually did run into this bug in real code

Hey, I'm making a small game.
I need to get the flag value of a sprite I'm drawing and moving in the _draw function.
I need to know when the player hits the sprite. But I can't use mget() to get sprite number of it, because the sprite is not part of the map..
Any ideas how to go about it?
Right now I'm just using pget() to register it by color, but that solution is not super stable with so few colors ;)
Hope someone can help.

Hey, I'm making a small game.
I need to get the flag value of a sprite I'm drawing and moving in the _draw function.
I need to know when the player hits the sprite. But I can't use mget() to get sprite number of it, because the sprite is not part of the map..
Any ideas how to go about it?
Right now I'm just using pget() to register it by color, but that solution is not super stable with so few colors ;)
Hope someone can help.






33 comments


