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.

Yo, i purchased Pico-8 a few days ago, and i made a little game.
The problem is: When i wan't to submit this game to the BBS, i am redirected to a simple HTML page where is wrote: "Server Error: let us know what happened".
I tried some tricks like creating a new account, use another computer, but not with another Wi-fi connexion yet.
Does anyone can help me?
Thanks
PS: I am french and my english isn't very good : \

Thought I might as well put up my WIP on today, Metroid's 30th anniversary. PICOROID is an endeavor of mine to try and replicate the original FDS game as much as possible, though i recognize it'd be quite an endeavor to try and fit all the coding within the token limits, so I suppose i should call this a tech demo more than anything. I started this up on May 30th and been working on it on and off since then. This definitely isn't a stopping point, my goal before I take a break from this is to get the entirety of Brinstar in a playable form, with all the mechanics that come along with it. Currently, you can 'progress' to bombs, but the elevator rooms and the bridge room to Tourian will crash it, along with anything up near Varia. Ice beam should be in here too? Maybe? I can't quite remember at this point. Enemies have quite a few bugs with them (notably, wavers are complete broken), but overall it should be playable. 100% at this point would be morph ball, bombs, 5 missiles, 2 E-tanks, and 'Ice Beam'.
Looking forward, I'd like to make enemies killable, freezable, and usable as platforms, and then add in the rest of the rooms, make more sound effects (damage for player and enemies, FDS door sound, low health beeping), then finally put in a menu and add in death. After that, disable the system pause button whenever ingame and use THAT for missile swap while adding upwards aiming to the up button. Assets-wise everything i need is already in the cart, and everything i couldn't fit in for other areas in an auxiliary cart, the only real barrier here is the token limit. All room data and enemy data is as compressed as I could make it, improving upon he compression used by the actual NES release in a byte-to-byte comparison by a bit.
Periodic progress videos can be found on my channel.






0 comments


