Log In  
Log In  



Cart [#biyakigaha-0#] | Code | 2018-12-01 | License: CC4-BY-NC-SA | Embed

Day 1 of the 2018 Pico-8 Advent Calendar!

Thanks for checking out my entry for our community "Pico-8 Advent Calendar"!

It's a simple "race the clock" arcade game, with the goal of delivering as many presents as possible before sunrise. The entire game only lasts about a minute, with the idea that you will play many times, and try to beat your previous high score.


Design and Code: https://twitter.com/matthughson
Art: https://twitter.com/hoybhoyb
Sound and Music: https://twitter.com/gruber_music
3D FX and Intro: https://twitter.com/2DArray

About Pico-8 Advent Calender:

During December, each day will be filled with new and exciting PICO-8 games! We have gathered 25 great developers from the PICO-8 community and we have worked hard to make some new games. Each day leading up to Christmas, there will be a new surprise for you!

Find out more at: https://pico8-advent.tumblr.com/

And check out the Pico-8 Advent Calendar each day for a new suprise: https://www.lexaloffle.com/bbs/?tid=32388

P#59372 2018-11-26 23:38 ( Edited 2018-12-01 18:12)

Cart [#56470#] | Code | 2018-09-10 | License: CC4-BY-NC-SA | Embed

Uncompressed Source Code: https://paste.ee/p/5KOG5 (warning: it's pretty gross)

Late last year (2017) I started work on a port of Super Mario Bros [NES] to Pico-8. The goal was to be authentic as possible to the original game, while working within the Pico-8 limitations. Something like Super Mario Bros Deluxe [GBC] (https://www.mariowiki.com/Super_Mario_Bros._Deluxe).

In the end I was able to get 1-1 and 1-2 mostly complete before starting to hit serious memory limits which make it seem near impossible to ship the full game.

With that in mind, I'm releasing it as-is for now so that people can check it out and see where it was headed.

If you are curious, the biggest factor for memory is the level data which is quite huge. At some point I'd like to document how my level authoring process worked, but for now you can check out this twitter thread of me slowly wittling down the level data size:


Update: I have managed to squeeze in all for World 1 now!

Music by: https://twitter.com/gruber_music

P#55697 2018-08-26 01:28 ( Edited 2018-10-22 00:03)

Cart [#48640#] | Code | 2018-01-28 | License: CC4-BY-NC-SA | Embed

P#48641 2018-01-28 12:12 ( Edited 2018-01-28 17:12)

Cart [#47932#] | Code | 2018-01-07 | License: CC4-BY-NC-SA | Embed

P#47930 2018-01-07 01:22 ( Edited 2018-01-07 06:25)

Cart [#47931#] | Code | 2018-01-07 | License: CC4-BY-NC-SA | Embed

P#47926 2018-01-07 01:01 ( Edited 2018-01-07 06:24)


I am trying to store some binary data as a string in lua, like so:

local data="ã.ç.G W.§.Ó.×..."

but after saving, all common ascii characters in this string get moved to lowercase:

local data="ã.ç.g w.§.Ó.×..." --(note: G and W are now g and w)

Is there anyway to prevent this?


P#47004 2017-12-04 02:08 ( Edited 2018-01-18 22:00)

Is it possible to get the current Camera position stored in the DrawState?

I'm writing my own map() function, and want to hook into the built in camera functionality.


P#45945 2017-11-06 20:09 ( Edited 2017-11-07 06:52)

Cart [#39836#] | Code | 2017-04-23 | License: CC4-BY-NC-SA | Embed

Use arrow keys to move. Eliminate all the enemies.

P#39837 2017-04-23 00:54 ( Edited 2017-04-23 04:54)

Cart [#38530#] | Code | 2017-03-22 | No License | Embed

Cart [#38357#] | Code | 2017-03-18 | No License | Embed

P#38358 2017-03-18 02:23 ( Edited 2017-03-23 05:00)

Cart [#39947#] | Code | 2017-04-26 | No License | Embed

Art by: 9tk (https://www.lexaloffle.com/bbs/?uid=23566)
Code by: mhughson (https://www.lexaloffle.com/bbs/?uid=15406)
Sound by: gruber music (https://twitter.com/gruber_music)

Previous Versions:

Cart [#39706#] | Code | 2017-04-15 | No License | Embed

Cart [#39098#] | Code | 2017-04-05 | No License | Embed

Cart [#39021#] | Code | 2017-04-03 | No License | Embed

Cart [#38834#] | Code | 2017-03-29 | No License | Embed

Cart [#38770#] | Code | 2017-03-27 | No License | Embed

Cart [#38741#] | Code | 2017-03-26 | No License | Embed

Cart [#38605#] | Code | 2017-03-23 | No License | Embed

Cart [#38496#] | Code | 2017-03-21 | No License | Embed

Cart [#38398#] | Code | 2017-03-19 | No License | Embed

Cart [#38300#] | Code | 2017-03-17 | No License | Embed

Cart [#38204#] | Code | 2017-03-12 | No License | Embed

Cart [#38172#] | Code | 2017-03-12 | No License | Embed

Cart [#38148#] | Code | 2017-03-11 | No License | Embed

Cart [#38129#] | Code | 2017-03-10 | No License | Embed

Cart [#38116#] | Code | 2017-03-09 | No License | Embed

P#38117 2017-03-09 02:34 ( Edited 2018-09-10 05:00)

Cart [#37989#] | Code | 2017-03-02 | License: CC4-BY-NC-SA | Embed

P#37990 2017-03-02 02:19 ( Edited 2017-03-02 07:19)

Cart [#37404#] | Code | 2017-02-13 | License: CC4-BY-NC-SA | Embed

Testing out my Advanced Micro Platformer Starter Kit's ability to handle 16x16 sprites (vs more common 8x8 used in a lot of pico-8 games).

P#37405 2017-02-12 20:10 ( Edited 2017-02-13 02:45)

Cart [#37402#] | Code | 2017-02-13 | License: CC4-BY-NC-SA | Embed

I have taken my most recent Pico-8 game Kid Bludd, stripped it down to the essentials, and I am releasing it as a kind of Platforming Game Starter Kit.

I removed all logic that isn't game agnostic, so it is hopefully a good starting point for pretty much any platformer.

It's not super complicated, but does a lot of stuff I see many games not doing, which I consider table stakes for a platformer that feel good.

Features the basics:

  • Animation System
  • Collision Routines
  • Camera (w/Shake)
  • But also...

Forgiving Jumps

This one is very subtle but one of the most important pieces of a platformer. In general the player can only jump if they are on the ground, but this can make the game feel unresponsive when trying to make precision jumps. To give the player some leeway, the game allows jumps for a few frames after the player leaves a platform, and also registers jump presses if they came a few frames before landing.

Mario Sliding

When you change direction while moving, there is a bit of a slide before moving in the new direction.

Air and Ground Friction

Tunable values for both how much the player slows down while in the air and when touching the ground. This is critical for allowing the player to land on small platforms, while maintaining a good feeling in the air.

Variable Jump Height

Tap to jump a small amount, and hold to jump higher. Again very critical for precision jumps.

Pass Through Floors

Some floors allow the player to jump up through them, but not down. Really important for any levels with verticality, but also fun for horizontal scrollers.

Camera Scrolling Threshold

This cart uses the same camera style as metroid, where the player must leave a small area in the center of the screen before it starts scrolling. This give the player the freedom to make minor movements without causing nauseating camera movements.

This is a follow up to my original cart: "Micro Platformer - Simple Platforming Engine in 100 Lines of Code". If you are new to programming, I strongly suggest starting with that cart, as it is much simpler to follow!

Cart [#28248#] | Code | 2016-09-10 | License: CC4-BY-NC-SA | Embed

Old Versions:

Cart [#37157#] | Code | 2017-02-04 | License: CC4-BY-NC-SA | Embed

P#37158 2017-02-04 19:18 ( Edited 2018-10-17 00:05)

Cart [#36840#] | Code | 2017-01-29 | License: CC4-BY-NC-SA | Embed

Short demo showing how to do animations with nothing but palette cycling.

On the right is the actual sprite used, with not palette cycling.

On the left is the resulting animation, when cycling through the palette.

A very primitive example of the amazing techniques seen here: http://www.effectgames.com/demos/canvascycle/?sound=0

Disclaimer: I'm not an artist, so it would be great to see an actual pixel artist do something with this. :)

P#36841 2017-01-29 01:48 ( Edited 2017-01-29 06:52)

Cart [#36437#] | Code | 2017-01-23 | License: CC4-BY-NC-SA | Embed

My 12th one-game-a-month project, and my 4th Pico-8 game.

Loosely inspire by Bubble Bobble, but with a darker, more action-packed twist.

P#36438 2017-01-22 21:34 ( Edited 2018-11-25 18:02)

Is it possible to pause or mute music in Pico-8 from script?

I want to halt the music for a short period when the player dies, and resume it when they respawn. Pause or Mute would both work in this case; I just don't want to restart the whole song every time they die.


This is what I currently do:

-- Player Spawns...

--Player dies

-- Player Spawns...
P#35493 2017-01-11 20:59 ( Edited 2017-01-12 01:59)

Cart [#34523#] | Code | 2016-12-30 | License: CC4-BY-NC-SA | Embed

My 11th one-game-a-month project, and my 3rd Pico-8 game. Mostly procedurally generated, with a few sprites for decoration. Main character by Adam Atomic.

Post high-scores below!

Version 1.2

  • New music and sound by @gruber_music

Version 1.1

  • Improve rendering to remove glitches (thanks ultrabrite).
  • Commented code and removed unused logic.
P#32863 2016-12-01 01:13 ( Edited 2017-07-13 21:31)

The game I am currently working runs smooth in Pico-8 EXE but when I run in Chrome it has significant perf issues; often dropping frames causing hitches.

Is this a know thing? Is there a way to help with this, or diagnos it better?

A couple things:

1) I am running at 60 fps.
2) I do a LOT of dynamic allocations and discarding (its an endless, procedural game).
3) Stat(1) returns about .3 in best case, and .6 in worst case. Does stat(1) account for FPS target or is .6 on 60fps .1 over budget?
4) It runs totally smooth in Edge Browser, but buttons don't work properly (missing release events i think) and image is blurry (not using point filter).


Here's the game:


P#32861 2016-12-01 00:54 ( Edited 2016-12-02 05:24)

Cart [#32741#] | Code | 2016-11-25 | License: CC4-BY-NC-SA | Embed

FINAL GAME IS HERE: https://www.lexaloffle.com/bbs/?tid=28132

In the game above, the character is gliding in zero-g. They can move left and right using little air jets on the side of the space suit (left and right arrow keys).

I am struggling to make a good sound for this that isn't too grating (you will hear the sound A LOT). I was hoping for a high-pitch hiss; like air escaping a ballon, but having nailed it yet (see above).

"TSSSsss.. TSSSssss..."

Any audio designers know how to achieve this sound?

P#32743 2016-11-25 01:02 ( Edited 2016-12-05 22:38)


I am trying to come up with a simple algorithm for filling an area of the screen a particular color.

I have a "path" in my game defined by the thin white lines shown above. Lines are represented with the following data structures:

function mkvec(x,y)
    local v=

            return sqrt(self.x^2+self.y^2)

            local l = self:getlength()
            return mkvec(self.x / l, self.y / l);
    return v


function mkline(x1,y1,x2,y2)
    local l=


            local lp=closestpointalongline(

            return closestpointalongline(

    return l

I would like for the areas on the left and right of the path (the part with red thick lines scribbled in) to be filled a different color.

My current plan is to define a directional vector for corner to corner, and walk the line one pixel at a time, draw a line from there to the edge of the screen.

These feels a little hackish, so I'm wondering if there is something better! I suspect this may be a polygon fill algorithm, but since this problem set is some limited, I thought there might be a simpler way.

I also suspect that my pixels wont like up with the edge of the line, leaving small single pixel gaps.


P#32721 2016-11-23 19:02 ( Edited 2016-11-25 00:05)

View Older Posts
About | Contact | Updates | Terms of Use
Follow Lexaloffle:        
Generated 2019-03-24 22:15 | 0.194s | 4194k | Q:316