Testing my particle system with @justin_cyr's food and drink sprites.
The code uses sget() to analyse the colour spread in the sprite, and then uses the correct proportion of coloured pixels in the explosion.
I've always loved the look of particle explosions, especially the bouncy colourful sort, so this was a must as my second project.
EDIT: As of 0.3 the buttons are now:
Button 1 [Z]: Explode the fruit
Button 2 [X]: Switch the new "heat" affector* on/off
Left/Right: Decrease/increase gravity
Down/Up: Decrease/increase bounce rate
* Particles glow white hot for a while, then fade to original colour and finally darken



Hi all,
I finally had the time to do some final tweaks and fixes and upload my demake 2018 entry DELUNKY to the bbs!
Enter the caves and try to find as much gold as you can before you perish to the dangers of the depth. Use your trusty whip in combination with bombs, ropes, and whatever you scavenge to get as far as you can.
Controls:
Arrows - move
Down arrow - pickup item
Up arrow - jump
X - use current item (throw/drop/whip)
Z - switch current item
Special thanks:
Derek Yu (@mossmouth) for creating Spelunky
Matt Hughson (@matthughson) for Platformer Starter Kit
Darius Kazemi (@tinysubversions) for great info on map generation









Hi,
I noticed something strange while writing a function that dumps the content of a memory segment (in the case the spritesheet).
After importing it properly (and checking it in the p8 file through an external editor), I noticed that the last pixel of the spritesheet was always 0. I thought it was a bug (and maybe it is, I'm not 100% sure), but the code seems to be working right for other sections of memory. Here is what I am using :
function rle_comp(addr, ending) byte = 0x0 pixel_index = 0 local comp = "" function read_pixel() if pixel_index > 4 then addr += 0x0001 pixel_index = 0 end byte = peek(addr) print("addr : " .. tostr(addr, true) .. ' byte : ' .. tostr(byte, true)) local pixel = band(byte, shl(0x000f, pixel_index)) if pixel_index > 0 then pixel = lshr(pixel, pixel_index) end pixel_index += 4 return pixel end while addr < ending do read_pixel() end return comp end function rle_decomp(ci, addr) end function _init() compressed_img = rle_comp(0x0000, 0x2000) rle_decomp(compressed_img, 0x6000) --printh(compressed_img, "compressed_img.txt", true) end |



While PICO does indeed provide us with a good RND() function, what did people do before RND() was created ? Well, they used math, and as I like to call it, swinging a paint bucket. :)
Here is some code from my QBasic source to demonstrate almost perfect random ability without using RND() at all.
What would be your method for creating a random number in PICO without using RND() ?
speed=100 function fnr(a) if (sd==nil) sd=time() sd=sd*125%24584 return sd%a end s=0 cls() repeat pset(fnr(128),fnr(128),fnr(16)) if (s%speed==0) flip() s+=1 until forever |
Feel free to fudge the numbers above to make a more accurate random if you think you can. The "24584" number especially.
Freeroaming shoot 'em up in the vein of Granada and Metal Stoker.
Move around using the arrow keys, fire with X and hold Z to strafe.
Here's a game I made last year, but since it was my first stab at a game I was too embarrassed to upload it. I've since started to seriously pursue game development and with that being more open about the games I create. I hope you enjoy Lobster Tank!
Development for Lobster Tank began in 2015, when other people’s creations inspired me to make my own game with Pico-8. I was really into Granada on the Mega Drive and decided to make an approximation of the game systems set in a different environment. After finishing the core systems, the project sat on the shelf for a while. In March 2017 I returned to Lobster Tank with a week of spare time dedicated to the project, determined to see how far I could get in development with a limited time frame. In this week the bulk of development was completed, but over the following weeks little things were still being polished and flourishes like the tire tracks were added.


I'm not sure which I should be at this point ...
Here is the fireball program I wrote which created such a stir:
https://www.lexaloffle.com/bbs/?tid=27955
(press (X) to shrink, (O) to enlarge the fireball and use arrows to navigate)
Now here is the SAME program I wrote, written in a different OS, and NOT BY ME ! And apparently, the pilot software to demonstrate their total rip-off of off ZEP's marvelous PICO OS.
https://cdn-images-1.medium.com/max/900/1*3r0FcNdC_oWEQ1ZnLNk45Q.gif
In my program, press (X) to shrink it to the same size as his. Notice pixel-per-pixel it's the same.








-
A 3D puzzle game by Matthias Falk.
It's the year 5038. Mankind has gone to space in search for extraterrestrial life.
After endless travels a sequence of 32 molecules is found.
Can you uncover their secrets?
--===--
Controls:
Up = go up
Down = go down
Left = go left
Right = go right
(o) (C on keyboard) = go forward
(x) (X on keyboard) = go backward
Enter = In-game menu
Touch and gamepad controls also available (see itch).
--===--
On itch.io you can find the official page of the game including several downloads (native apps, wallpaper sets etc.).







Hi everyone.
first time actually making a full game, and I made a challenge to release one so I would finish it.
You know how it is, you're watching rugby in Darlington and suddenly the pitch is overrun with zombies.
You need to kill them all but all you have is a correctly shaped ball!
Of course, you can't throw it forwards! Laterally or behind only!
Good luck!
I'm happy for feedback, it's a work in progress.
Planned improvements are:
-more levels with increasing difficulty
-super zombies that move laterally
-more backgrounds
-??music??
-high score table
Thanks very much
Shanester

I made a game for 1hgj/LowRezJam/Kajam. It's a turn-based puzzler where you tactically extinguish - and start - fires.
I decided to add a level editor to it and store the levels in "the cloud". The way it’s done is by exploiting the GPIO flags that were added to PICO-8 presumably to be able to control simple lights on your Raspberry Pi or similar. Since the data needed to store a level is pretty light, I save it in these GPIO controls, which can then be read by the HTML5 app serving the PICO-8 cart. The data is then stored on my own server via a REST interface.
People have done this before me, for example kometbomb used this technique to post high-scores to kongreate and BenWiley4000 created a library to make it simple to use the GPIO flags (which I forked!).
However, it’s very cool to have a PICO-8 game that enables user-generated content! I can’t wait to see what kind of crazy challenges will appear!
Check it out! (it's on my own server as I need to modify the HTML5 wrapper in order to access the GPIO flags).
More info over at the 5th Kajam page.

Hi! I've been playing pico-8 games for a few years, but I just recently started playing around with coding it, so I'm a newb to pico-8 and lua programming.
I don't get it why this wouldn't work, it just prints out 1 2 3, could someone please point me in the right direction?
I first tried to put the random function straight into the add function, but that didn't work, so that's why i here try to put it into the 'randy2' variable first.
add(rndorder,flr(rnd(3))+1) |
I also tried to add the random value manually (row by row) into the table, but that didn't work either :(
rndorder[1]=flr(rnd(3))+1 rndorder[2]=flr(rnd(3))+1 Etc. |
Why wouldn't this add 7 random numbers into the 'rndorder' table and print them out?
rndorder={} palt(0, false) --transparency palt(2, true) function _init() function populate_rndorder() x=1 while(x<=7) do randy2=flr(rnd(3))+1 --int random add(rndorder, randy2) x=x+1 end end populate_rndorder() end function _update() -- end function _draw() cls() map() for v in all(rndorder) do print(v,v*8,v*8,10) end end |


Hello everyone,
My name is Nick, but a lot of people know me as Nikkcade, and for 3 or so years now, I've wanted to make my own games.
Today, thanks to generous support and donations from a lot of my twitter friends, against my better judgement, I finally, legally, bought my own copy of PICO-8.
I've messed around with it before, and was really motivated to create, but deep down, I felt ashamed for not actually buying the software like I should have.
It cost me almost all my money, (I'm in a VERY bad financial state rn) but at least I don't have to feel like that anymore.
If I could get any support or tips (I HAVE NEVER CODED ANYTHING IN MY LIFE) on how I can get into this community and make my own games, I'm all ears.
Thanks for welcoming me here. I hope to enjoy my stay.
-Nikkcade







Text Edit
v0.4
Changelog:
0.4
[+] Total rewrite
[+] Word wrap (Credit: @Jusiv)
[+] Line wrap
[+] Lowercase letters
[-] Moveable cursor (Temporary)
[-] Scrolling text (Temporary)
[-] Tab (Temporary)
0.3
[-] Escape not working in Splore
[-] Arrow keys activating twice
[-] Escape creating a space
0.2
[+]SCROLLING TEXT
[-]pressing p more than once pauses in BBS
Implemented:
Typing with your keyboard
Backspace
Word Wrap
Line Wrap
Todo:
Saving files
Loading files
Undo/redo
Selecting text
Copy/paste
Tab
Moveable cursor (use arrow keys)





v0.51 - Crash ending fixed
v0.50 - This is my little platformer I've been working on. There is still a lot to do!
[Left and Right] to move
[x] to jump
[z] to run
(Don't forget to switch your keyboard inputs to QWERTY!)
You have a normal jump, an aerial jump and an aerial double jump!
Green and red blocks may appear and disappear based on the jump your are currently on.


