Hi everyone !
I would like to present my first ever solo game project — DISPATCH. Sorry that I completed this in 2019 and I am only posting this here now but I am very proud of this and would very much like more people to play it !
D I S P A T C H
IS A DARK SCIFI THEMED, GENERATIVE SURVIVAL HORROR TEXT-BASED ADVENTURE.
YOU AS THE PLAYER ARE A RUNNER, A SOLO OPERATIVE SENT TO RETRIEVE THE FLIGHT DATA RECORDER BLACKBOX AND GET OUT ALIVE.
Z = SEARCH / PICK UP / INTERACT / START
X = DROP / SWAP
ARROWS MOVE
I want to thank everyone from the P8 community that helped me when I was struggling to get this working, and LazyDevsAcademy for inspiring me to do this in the first place.


I'm working on a sort of roguelike, so using procgen, and I've hit a wall where the game crashes with an "out of memory" error.
Now, since this is still all a WIP I haven't been super careful about memory usage, so it's certainly possible... but when I print the result of stat(0) to the screen, the highest it ever goes is 200 before the crash. Thinking there might be some sort of recursion issue, I logged a couple trace() statements and that turned up a dead end...
Since I don't get a stack trace at the crash, and I have nothing else to go on... My question is: how do I go about troubleshooting this & how do I find the source of the problem? I'm not quite ready to share the cart yet, so I'm less looking for a specific solution and more general guidelines. What should I look for, and where?



Hi everyone,
I'm working on a little robotic sumo game for a friend after seeing an IRL video about it. I decided to include a 4-player mode, because I like multiplayer games.

I want players to score only if they're the ones who knocked the player out of the arena when play is halted (basically like in Super Smash Bros), but I'm having trouble recording that information.
Here's the relevant code:
--main game loop for p in all(players) do check_hit(p) --other stuff end function check_hit(p) for o in all(players) do if circlehit(p,o) and --Basic collision function. p.col~=o.col then --This line is meant to keep players from hitting themselves. p.lasthit=o.col --Here, "col" is the player's color, and "lasthit" is who last hit them. end --In another function, I award points to the player whose color [ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=87548#p) |

.png)
easy way to center any text on the screen, just copy and paste the hcenter(s)
function _init()
-- table with all the text
texts={
a="center text",
b="easy",
c="compact",
e="simple"
}
end
function _draw()
cls()
print(texts.a,hcenter(texts.a),64,7)
print(texts.b,hcenter(texts.b),70,7)
print(texts.c,hcenter(texts.c),76,7)
print(texts.e,hcenter(texts.e),82,7)
end
function hcenter(s)
-- takes a string
-- gets 64, rests the string
-- lenght and multiplys by 2
return 64-#s*2
end


Dig Deeper
This was made for Global Game Jam 2021 with PIGSquad. The theme was Lost & Found.
Controls
⬅️➡️⬆️⬇️ - Movement
🅾️/❎ - Interact (Z/X or X/C on keyboard!)
⬅️➡️⬇️+❎ - Dig
⬆️ - Jump/Jets
Credits
Everything But Music - @MBoffin
Music - @Gruber (from PICO-8 Tunes Volume 1)
Edit: Forgot to mention, but there is a speedrun mode you can enable/disable from the menu.
Edit 2: Fixed a couple visual errors and balance tweaks. Also made the speedrun mode skip the intro cutscene, and also shows your final time on the very end message screen (after the final cutscene).






Next demo! Pretty quick, I know. I actually made this one before the movement demo, but meh.
Basically, this demonstrates the system I made for storing planets in a compact way.
One sprite is equal to one solar system. The sprite is split up into columns, where every row is one piece of data.
0 - Sprite to use for planet. Once again, graphics not final.
1 - Start of what's known as the intelligence range. This range will limit species on this planet to minimum and maximum intelligence values, which will change the complexity of the species.
2 - End of intelligence range.
3 - Intelligence modifier. This value is in place to bring average intelligence closer to a certain value.
I'm planning on making a space exploration-game called EverLost and will be releasing demos of planned features. This is the first.
Fly around with arrow keys.
(O) key will switch between controlling ship and controlling pilot inside ship.
Yes, I am aware there are no collisions inside the ship. I'll add that in a later demo.
Please give feedback on movement and controls.
(graphics are not final)


Hi! I've been working for the past two weeks in implementing a realtime rendering engine for pico-8. It really is just meant to be a tech demo. The performances when a lot of the screen pixels are filled are quite bad, but it works well if the objets are not too close to the camera :). I have simple directional lighting working at the moment and plan on adding more soon, starting with omni lights and spot lights.
Tell me what you think or if you have any optimization suggestions! :)
PS: I first started off as a usual rtr pipeline where all vertices were shaded, then used the vertex fragments into a rasterization pass, then processed the pixels fragments. The issue was that the memory cost for holding the pixel fragments was too great and the pico-8 would just run out of memory very quickly. By fully processing one triangle at a time, I ended up with much better cpu and mem performance.


Hey y'all, I'm gonna use this thread as my rubber ducky while I flail around figuring stuff out. Hopefully someone here has insight or I am missing something simple and solvable...
I've been trying to create the audio atmosphere where button being held down (x) turns on an otherwise muted music track. In theory this seemed easy. I feel like I am always one step away from a graceful solution, but keep making a mess.
I have created the function squeak(voil) that goes through the music memory and peeks and pokes its way to mute and unmute (aka voil) the particular channel on key press. This only works for the NEXT pattern however and not for the current pattern playing.
Alright, well, since I'm doing the peeking, I know the sfx that is supposed to be playing on the heretofore muted channel. I can just run an sfx call, offset by stat(20)—and then when the music call rolls over to the next pattern, the newly unmuted channel will just take over and everything will loop fine from that point on forever, but the music tag doesn't take over from the sfx.

The Pico-8 BBS Download Link-inator!
Are you 😪 of tedious right-click, save-as routines?
Well, with this script, life just got a bit less tedious!

Where to get it?
Usage
This is a userscript written in javascript , that adds a nice, big download link right under the cart player on the Pico-8 Bulletin Board System. Does literally what it says on the tin.
To use this, you need something like TamperMonkey installed in your browser. (I'm using Firefox Developer ATM.)
Notes
Is this necessary? Nope, but I got sick of clicking the link, then right click save as...you know the deal. This just makes a big fat link on the page, in a bright blue color, right beneath the player for the game itself.
Thanks!
So this is my first Pico-8 Project!
I don't know if i'm going to finish this so don't wait for it.
This supposed to be an infinite rouge-like with randomized items and map. So far I've managed to write player movement with collision and a reaaaaaally basic room generator which I probably have to rewrite in the future. As you can see this is not anywere near complete and you can't really do anything at the moment. Feel free to have a look at my code, but be warned I'm not good at coding. I've just started to learn programming and want to use Pico-8 as a stepping stone towards a "real" game engine.
Controlls:
Arrow keys for movement
This is basically me testing how the "second palette" pokes work on PICO-8. The lower 24 rows of the screen are now occupied by a HUD strongly inspired by the game "Ultracore", which displays (fake) number of lives and ammo and (real) number of gems collected and level number.
The status bar area uses its own palette with lots of colors from the second set of 16 colors, but doesn't interfere with the game itself (though the camera had to be raised a bit to make it work).
2-player mode is not tested, probably will break.
Changelog:
- v2: made the game apply the second palette whenever the first one is updated, now that its existence is official and pal() resets it as well.





