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.





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 launch_special_fx() yield() yield() yield() yield() end end) add(actions,c) function _update() for c in all(actions) do if costatus(c) then coresume(c) else del(actions,c) end end end |
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!










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!









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.
https://github.com/ftsf/picolove
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.











I wanted to experiment with modifying SFX data via a cart.
Features:
- 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.
0bUFFFVVVIIINNNNNN
byte 65 is the speed
byte 66 is loop start
byte 67 is the loop end









UPDATE 2017-05-16:
VEKTOR2089 is now up for early access on itch.io!

Features:
- 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!
Z to ACCEL
X to BRAKE
UP to BOOST
LEFT and RIGHT to STEER
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










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?


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.
eg.
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.

Update:
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
Features:
- 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
Plans
- 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 =\










