Log In  
:: Unfold ::

Cart #21913 | 2016-05-31 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

After debugging some physics issues in PICORACER-2048 I decided to make a little area to play around with improving the physics and collisions.

I'm using the "Separating Axis Theorem" to find collisions, and clipping to find the contact points.

Lots of work to do still, many optimisations can be made.

Known issues: contact points are sometimes broken, collision response is not always right.

Optimisations to make:

  • cache AABB
  • cache world polygons
  • don't check AABBs that are not in the same area
  • don't check equivalent axes more than once
  • remember the previous axis since it's likely to be the same or next to it on the next iteration.
P#21915 2016-05-31 10:51 ( Edited 2017-09-19 01:56)

:: Unfold ::

Pico8 0.1.6 added coroutines!

coroutines are really handy if you want to trigger an action once and then have it continue to do stuff for a while in the "background".

actions = {}

function press_mysterious_button()
local c = cocreate(function()
  for i=1,10 do

function _update()
  for c in all(actions) do
    if costatus(c) then

the above code when the mysterious button is pressed will create a new coroutine (cocreate) which will launch special fx every 4 frames, 10 times and then it will be completed.

each loop of _update it'll run any actions up to the next "yield" and then return. when the action is complete, we remove the dead actions from the table.

hope that makes sense and is helpful!

P#21399 2016-05-26 10:51 ( Edited 2018-06-23 00:40)

:: Unfold ::

Cart #17083 | 2015-11-27 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

WIP for P8JAM1 "Rain"

My first real attempt at a platformer.

Currently struggling with the buoyancy, and still need to add water pressure but it's starting to come together.

Hope is to make an interesting puzzle platformer utilising the rising water and flow mechanics.
Switches to toggle floodgates and things.

Rescue the kitty from the rain!

P#17084 2015-11-26 20:59 ( Edited 2015-12-10 23:52)

:: Unfold ::
foo() -- 3 tokens
foo"" -- 2 tokens

when calling an argument where arguments are not used, note this is the same as passing an empty string, not nil!

you can also call a function and pass a single table using

--which is cheaper than

use with care! =)

P#14558 2015-09-24 09:48 ( Edited 2015-09-24 14:42)

:: Unfold ::

Hi y'all!

I've been working on a reimplementation of Pico-8 in Love2D (Another lua game framework)
Mainly because I wanted to keep working on my games after I hit the token limits in Pico-8
but didn't want to lose the pico-8 feel and start from scratch.

So I'm sharing picolove with you, can grab the source on github.


Requires Love2D 0.9.x from https://love2d.org

Can run a p8 cart with

love . cartname.p8

You can modify the love.load function to load a specific cartridge and package it into a .love file (renamed .zip) to distribute.

Have fun!!

Let me know about any bugs you find.

I know there's some issues with removing stuff with del in a foreach loop (causes a bug in celeste.p8), but not sure what's going on there.

Working on adding SFX and Music support as well as p8.png loading.

P#13912 2015-09-09 08:50 ( Edited 2018-05-22 18:49)

:: Unfold ::

Cart #12679 | 2015-08-15 | Code ▽ | Embed ▽ | No License

I wanted to experiment with modifying SFX data via a cart.


  • Compose and edit music
  • Copy and Paste selections within patterns and between patterns
  • Transpose selection by octaves
  • Save to cart

Known issues:

  • Modifying selections only works if the selection was made in a leftwards direction.
  • The music staff isn't actually accurate at all. It just uses one px per semitone.
  • Green play line isn't always accurate if you've changed the speed or pattern length, restarting playback fixes it.

SFX Data Layout for anyone interested:

Starting from 0x3200
Blocks of 68 bytes for each SFX pattern 64 bytes of sound data and then 4 bytes of metadata.

Each sound data chunk is made of a 16 bit value divided into
6 bits for the note, 3 bits for the instrument, 3 bits for the volume, 3 bits of the FX, 1 bit unused.


byte 65 is the speed
byte 66 is loop start
byte 67 is the loop end

P#12680 2015-08-15 10:29 ( Edited 2016-06-09 00:18)

:: Unfold ::

Cart #16305 | 2015-11-06 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

UPDATE 2017-05-16:

VEKTOR2089 is now up for early access on itch.io!


  • Split screen multiplayer
  • Trackmania style hotseat multiplayer
  • Track editor
  • 60 fps
  • Multiple cars to choose from with different feels and styles
  • 4 speed classes
  • Maybe a story mode, we'll see!

New in 1.5.0beta:

  • 8 set looping tracks, 3 laps each
  • Level editor (needs some more work)

Missing some stuff from the previous version that still needs to be fixed up:

  • Boosters
  • Narrowing tracks
  • Time attack replays

Wipeout inspired racing game!


Q for MENU

Update 1.2.0:

  • Reduced token usage
  • Multiple difficulty levels (Easy, Medium, Hard (original difficulty))

Update 1.1.0:

  • Somewhat easier AI, might actually be possible to beat them now
  • Sharper turning circle
  • Nerfed boosting a bit
  • Boosted normal acceleration
  • Reduced ship size slightly
  • Warnings about upcoming turns and narrowing
  • Performance improvements

Challenge your ghost or AI racers.

now with music + sound!
5 difficulty levels
in game menu
parallax scrolling foreground

P#12408 2015-08-07 11:42 ( Edited 2018-04-12 20:52)

:: Unfold ::

OK here's an idea for a little pico8 gamejam.

48 hours over a weekend.

Day 1. Come up with a game, (it should have the basic mechanics and gameplay but doesn't need to be polished, leave some space for day 2: 4096 token limit!!!) and submit it here.

Day 2. It gets given to another jammer at random to complete and polish.

It'll be a good way to see how other people work and forces you to do both the game design and the polishing/juicing sides.

What do you think?

P#12197 2015-08-02 22:36 ( Edited 2015-08-03 14:08)

:: Unfold ::

One thing that would be super handy for development in Pico-8 is an "assert" function which throws an error when a condition isn't met and can optionally print something in response, like the standard lua one.


assert(x != 0,"this shouldn't happen")

Another nice thing would be a way to write output to a console. you can do this with print, but it usually gets overwritten immediately and lost in the event you need to check up on some history.

log("frame: "..frame.." x is "..x)

also showing a full backtrace on error rather than only the head of the stack would be super helpful.

P#12140 2015-08-01 04:48 ( Edited 2015-08-01 08:48)

:: Unfold ::

It'd be awesome to be able to save/load state in your game like old console games.

Maybe a small per/game buffer we can read from/write to.
Or a virtual memory card type device we can access.

P#12074 2015-07-31 00:22 ( Edited 2016-02-11 09:05)

:: Unfold ::

Cart #40278 | 2017-05-07 | Code ▽ | Embed ▽ | No License


Finally fixed the map issue from changes in Pico8 and fixed the 10 minute game freeze bug.
Some dialog stuff and fixed a bunch of bugs, cabins now work and there are caves you can rest in.

How to survive your first day:

  • When you wash up you're nearly dead, hungry, tired, and exhausted.
  • Your health will drop if any statuses (hungry,tired,exhausted,cold) are in the red.
  • Resting while your statuses are ok will restore health
  • Quickly drink some water from your flask. (x -> items -> flask -> drink)
  • Find some fruit/berries and pick them then eat them.
  • Salvage wood from your boat, and chop down another tree and get the logs
  • Build a shelter, eat, drink and rest, stay warm
  • After this, focus on finding freshwater (it has white sparkles) so you can drink and fill your flask
  • Then try and find some stone and build a cabin which will replenish your stamina fully
  • Build bridges to new areas


  • Day night cycle
  • Weather
  • Temperature (it's colder at night and when it's raining, stay warm in your shelter/cottage)
  • Simple menu system
  • Procedurally generated world
  • Bridge building
  • Building wells that fill with water when it rains
  • Plants grows overnight while you're resting
  • In progress
    • Farms and farming


  • Fishing minigame
  • Wild animals and fences to keep safe
  • Disallow some stuff at night to incentivise you to work during the day

I suspect code size optimisation will be quite critical =\

P#12030 2015-07-29 23:46 ( Edited 2018-09-06 16:21)

:: Unfold ::

Hi! I'm enjoying getting started with Pico-8!

Does anyone here use IRC or is there already a pico8 channel somewhere?

Happy to start one if not.

P#11958 2015-07-28 02:18 ( Edited 2015-09-15 15:05)

Follow Lexaloffle:          
Generated 2023-10-04 20:57:38 | 0.068s | Q:27