Log In  

I make games and pixel art and love PICO-8!

[ :: Read More :: ]

This is a small game I made in a week for a Uni project, hope you like it!

Cart #switch_strike-0 | 2019-11-11 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

P#69822 2019-11-11 18:44

[ :: Read More :: ]

In my opinion, taking snippets of code/music/gfx from Pico-8 games with permission from the author to put in your own games is great as it helps build the community up and help beginners.

What I don't like is when people keep on taking other peoples games, changing some sprites, then re-posting the game as a "Hack". All this does to the community is make people appreciate the author of the "Edit" (that spent 10 minutes on the game) rather than the original creator that spent hours of their life creating these games.

On top of this, it fills up the BBS with duplicate games (that a worse versions than the original) rather than new, interesting content.

If you're going to make a "Hack" then at least make it a worth while change and credit the author with A LINK TO THE ORIGINAL GAME.

However, this is just my own opinion so feel free to comment your thoughts and ideas on the subject below.

P#41920 2017-06-25 04:19 ( Edited 2017-07-02 02:01)

[ :: Read More :: ]

Hello Pico-8'ers!

I've been wanting to be able to make a game in which you explore a large game world that is bigger than the available map space in Pico-8 for some time now but I can't see an easy way of doing this. I've seen people using bits of the sprite space but I'm still not sure how they achieve this.

I'd like to be able to have a giant game world similar in size to that of 'Duck Duck on the Loose'

If anyone knows of ways to do this i'd love to here your ideas!

P#39770 2017-04-19 05:07 ( Edited 2017-04-19 15:53)

[ :: Read More :: ]

After a long time without any updates I have decided to post version 0.5 of the game in its current, un-finished state. There is no goal as such apart from mine gold and build some cool looking space stations. Since version 0.4 many changes have been made such as adding a title screen, fixing some sound issues, improving sprite work, adding some new building blocks and many other improvements.

This is an unfinished update and game overall that will most likely never be finished but I hope you enjoy what is here now. I think that it is for the best for me to move onto new ideas and projects rather than get stuck on the same project for months on end.

Cart #45382 | 2017-10-21 | Code ▽ | Embed ▽ | No License

Old Versions:

Version 0.4!

I changed and added a lot in this update, such as gold costs and the basics of a shop system as well as lots of other general gameplay improvements. Read the changelog for a full list of changes.

May be missing a few changes.

  • Fixed a bug that would make your ship take off when trying to delete or place another launch-pad
  • Fixed a bug that allowed you to destroy asteroid blocks by building on them
  • Fixed a bug that allowed you to mine all the gold on the screen by going out of bounds
  • Fixed many other small issues
  • Improved space usage on the tool-bar
  • Added a simple dotted background to create more depth and sense of movement
  • Mining gold now gives the player gold resources
  • Added gold cost for station blocks to the tool-bar when in build mode
  • Added gold count to tool-bar during flight
  • Destroying station parts now gives back 1 gold
  • Added world boundries that push the player back if they fly too far away
  • Added a new 'ship workshop' block that allows the player to buy ship upgrades and customization's
  • Changed the world map around a bit


  • Z = Get out/Into ship (whilst on top of space-craft)
  • Z = Land on space stations (whilst in space-craft on a landing pad)
  • X = Mining laser (whilst near ore)
  • Arrow Keys = Float/Fly around


  • Z = Place station block
  • X = Change current block


  • Arrow Keys = Navigation
  • Z = Select item
  • X = Exit Menu

Cart #40529 | 2017-05-13 | Code ▽ | Embed ▽ | No License

Version 0.3!

In this update I added auto-tiling for base blocks and EXPLOSIONS!


  • Improved the particle system
  • Changed some sounds
  • Changed ships particle effects
  • Reduced the number of blocks in the build menu
  • Added explosions and screen-shake
  • Added item/block names

Known Bugs:

  • Building over asteroids gets rid of them
  • Building landing pads causes you to take off

Future Ideas:

  • Mining lasers on your space-craft that allow the gathering of materials from asteroids
  • Different coloured asteroids that will provide different materials when mined
  • Different station parts that provide unique utilities (space-craft construction etc.)


  • Z = Get out/Into ship (whilst on top of space-craft)
  • Z = Land on space stations (whilst in space-craft on a landing pad)
  • X = mining laser (whilst near ore)
  • Arrow Keys = Float/Fly around


  • Z = Place station block
  • X = Change current block

Cart #38745 | 2017-03-26 | Code ▽ | Embed ▽ | No License

Update 0.2!

Added the foundations of station building this update as well as some other improvements.

Cart #38406 | 2017-03-19 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Version 0.1!

The very first version, woah...

Cart #38366 | 2017-03-18 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

P#38368 2017-03-18 14:06 ( Edited 2017-10-22 08:23)

[ :: Read More :: ]

Just a calm leaf simulator to watch and enjoy :)
Feel free to take a peek at the code and use bits for your own projects.

Cart #38187 | 2017-03-12 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

P#38188 2017-03-12 10:52 ( Edited 2017-03-12 14:52)

[ :: Read More :: ]

A remake of Google Chrome's secret endless runner!

Z or UP ARROW = Jump

Jump over the spiky cactus!

Cart #37656 | 2017-02-20 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

P#37655 2017-02-20 15:15 ( Edited 2017-02-21 03:36)

[ :: Read More :: ]

Hey all, I was just wondering if there is a way to run Pico-8 games on the web (using HTML) or on a desktop at native resolution; One pixel on Pico-8 corresponds to one pixel on my monitor to get a tiny Pico-8 game window?

Any body know if this is possible?

P#37566 2017-02-18 06:16 ( Edited 2017-02-20 19:29)

[ :: Read More :: ]

! Shuriken Toss v1.2 !


  • Edited the Title screen slightly
  • Added a menu system to the Title screen
  • Added a 'Giant Shuriken' power-up
  • Kunais now add to your score when they destroy a bamboo
  • Some new sounds
  • Bug fixes and improvements

The garden has become overrun by bamboo shoots! Destroy as many as you can before the time runs out.


  • Z to use power-ups
  • Directional pad/Arrow Keys to move

Cart #32183 | 2016-11-03 | Code ▽ | Embed ▽ | No License

! Shuriken Toss v1.1 !

I've added general improvements and bug fixes in this update.


  • Controls are now shown on the transition screen at the start
  • Revamped the scoring system to be more intuitive and make more sense
    • You now score 1 point for destroying a bamboo shoot
    • You have 30 seconds to destroy as many as you can
  • Changed collisions with bamboo shoots and power-ups to be more fair
  • Added a game count on the end screen so you know how many games you've played
  • Changed the kunai ability (knife throw ability) to now always throw one kunai in each of the four directions making it a lot more reliable and useful
  • Optimised some bits of code

Known Bugs:

  • When a kunai destroys a bamboo you don't get the point for it - Fix for this coming very soon!
  • Some graphical issues with bamboo shoots appearing on top of each other

Cart #31939 | 2016-10-28 | Code ▽ | Embed ▽ | No License

P#31802 2016-10-26 05:37 ( Edited 2016-11-07 14:24)

[ :: Read More :: ]

Decided to remake an old classic, Pong! I know this has been done a million times before but I thought I'd give it a shot and maybe learn a thing or two.

Move left and right and smack the ball to the other side to score!

Known Bugs:
-Ball sometimes passes through the paddle when hit at the corners of the screen
-Menu graphics glitching slightly when selecting options

Player 1:
Arrow Keys

Player 2

Version 1.1:
Added in simple AI for playing single player and now the first player to 5 points wins!

Cart #30857 | 2016-10-13 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Version 1.0:
Original version with only a 2 player endless mode and controls screen.

Cart #30325 | 2016-10-08 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

P#30327 2016-10-08 17:30 ( Edited 2016-10-17 19:13)

[ :: Read More :: ]

NOTE: This is a guide to my menu system that I have used in the example cartridge however contains mostly general tips that you can adapt to your own needs.

This is a simple guide for my Menu System that also shows off how to do simple 2-colour palette swapping. Anyone is free to build upon and implement this system into their own games they make.

If there are any questions or queries, feel free to leave a comment and I'll try to reply as soon as possible. Here are some guides suitable for beginners to help explain how to use it.


How To Add More Options:

To add, change, or remove options from the menu you have to edit the m.options variable:


This will display each item as a separate option in the menu. To add more options simply add more items to the array separated by commas.

How To Select Options:

To make something happen when you select an option we need to check for a button press. We can do something like this:

IF BTNP(4) AND --If the button 'z' is pressed
  INIT_SETTINGS() --Do something

We set MENU_TIMER to 0 in any init() functions to do with the menu (e.g. INIT_MENU() or INIT_SETTINGS() ) and then increment it by 1 in the UPDATE_MENU() function. We check that MENU_TIMER is bigger than 1 to ensure that we don't select more than one option at a time.

Instead of calling INIT_SETTINGS() here you could make it do something else, for example, start the game.

How To Change Palettes:

To be able to change palettes we first need a list of palettes that we can switch to. This can be done like so:

--Inside an _init() function


PALS is the variable that will store our palettes (sets of 2 colours). Each item in PALS is another array containing 2 values, a colour 1 and a colour 2. Our first example palette in PALS is {7,0}. Colour 1, represented by 7, is the colour white in PICO-8 and colour 2, represented by 0, is black. By setting our text to draw using colour 1 and the background to draw using colour 2, we can end up with a menu that is white with a black background.

To do this we need to create some variables to store the active colour 1 and colour 2 that we want to use:

--Inside an _update() function


PALNUM refers to the number of the palette you wish to use. For example, if PALS={{7,0},{6,5},{10,8}} then PALS[2] would give us the second index, which in this case is palette {6,5}. PALNUM can be a hard coded palette number or can be dynamically changed in-game by selecting a menu option as I have done in the example cartridge.

For COL1 we firstly referenced PALS, then the palette to look for inside PALS (using PALNUM) and then we searched for '1'. The number 1 here means 'the first item in PALS[PALNUM]' or 'item 1 in PALS[PALNUM]' which will give us the first value of one of our palettes! We can then use this to select the first and second colours of our chosen palette and assign them to COL1 and COL2.

To use our new COL1 and COL2 variables, all we have to do is replace anywhere we have hard coded in a colour with either COL1 or COL2:

PRINT("HELLO WORLD",64,64,[b][u]7[/u][/b]) ------> PRINT("HELLO WORLD",64,64,[b][u]COL1[/u][/b])
CLS([b][u]0[/u][/b]) ------> CLS([b][u]COL2[/u][/b])

For changing palettes for sprites, you can draw all of your sprites in black and white and then use PAL(7,COL1) or PAL(0,COL2) before you draw your sprites. This will replace the white on your sprite with COL1 and replace the black on your sprite with COL2. Here's an example using my little octopus sprite:

No use of PAL()


When doing this, remember to call PAL() with no arguments after drawing the sprites to reset the colors back and avoid coloring issues.

Thanks for checking out my guide! I may end up making some more in the future but we'll see how this one turns out...

Happy Coding!

Cart #29147 | 2016-09-23 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

P#29158 2016-09-23 10:41 ( Edited 2016-11-12 08:28)

[ :: Read More :: ]

Snake 1.3! - Rainbow Snakes!
Fixed some bugs and changed the snake into a ummm...rainbow snake. May add some BG music and a lose condition in the future.

-Revamped the color mechanic to make it a RAINBOW SNAKE
-Added in the ability to change the length of color stripes on the snake
-'Fixed' the bug that made the segments out of line with the head
-Added white outlines to the snake head and pellets to make location clearer for the player
-Added dithering effect to each segment that makes them look fuzzy and blend together

-Arrow Keys to move
-'X' to change color stripe length

Cart #27407 | 2016-08-26 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Snake 1.2! - A...game...?
I've gone ahead and added in some simple gameplay elements to make it more of a game than a web toy now however you cannot lose or win at the moment...only score. Suggestions on how I could improve or change the game (and possibly add a lose condition) are very welcome!

-Added 'food pellets' that make you grow
-Removed the ability to randomly pick your position
-Changed some sfx around
-Added 'Length' and 'Score' counters
-Changed red text to match BG color

-Arrow Keys to move
-'X' to change snake color

Cart #27358 | 2016-08-25 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Snake Toy v1.2! - Flight!

-Added a shadow below the snake to make it look as if it's flying
-Added text to tell the player the controls
-Added the ability to change color with 'x'
-Added some simple sounds
-Gave the snake little snake eyessss

-Arrow Keys to move
-'Z' key to pick random positions
-'X' key to change color of the snake

Cart #27238 | 2016-08-23 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Made this little snake toy based off of the code in the GIF from the Pico-8 0.1.8 update blog. Mainly Zep's code with alterations and added features such as the 8-way directional snake head.

-Arrow Keys to move
-'Z' to pick random positions

Things to add:
-Different Palettes

Cart #27172 | 2016-08-21 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

P#27173 2016-08-21 17:18 ( Edited 2016-08-28 15:18)

[ :: Read More :: ]

Update 1.5! - Music, Mines and Mayhem!

I've been working hard lately on some of my current projects and finally got around to updating Space Delivery! This time round I've added in enemy mines that you need to dodge whilst collecting and delivering packages around the map. On top of this, the player can now get a GAME OVER screen when they die and strive to beat that high-score! I've also worked on ironing out lots of bugs and improving the overall graphical fidelity of the game.

As always, community feedback is much appreciated and has a big impact on the final result. Any suggestions, constructive criticism (or just criticism) about the game are more than welcome!

-Added bad music
-Added a deadly space mine enemy
-Added a game over screen
-Added high-score functionality
-Added a black border around text for better readability
-Added a particle system for creating explosions + smoke
-Added sprite frame animation support
-Added more asteroid islands
-Optimised some functions
-Players now gain 2 health whenever they deliver a package
-Changed the package sprite to a more traditional box

Arrow Keys - Move
Z - Land / Take-off

Follow the arrow to collect and deliver packages. Land on the delivery zone to deliver a package.

Cart #37495 | 2017-02-15 | Code ▽ | Embed ▽ | No License

Update 1.4.1! - Sound!

Just a small update to re-implement sounds into the game. It's interesting how much of a difference it makes with and without sound!

Update 1.4! - Overhaul!

So after another long break from the game whilst developing 'Shuriken Toss', I decided to revisit it and... completely remake it! That's right, completely re-write the game and strip it down to the bare bones and focus this time on the core gameplay mechanics and functions of the game. I felt that I kept wasting too much time before getting bogged down with trying to optimise the game (although it was never optimised!) and adding silly extras such as text systems and palette swapping when there was no core game there yet. This is a good thing, however, as I have learnt a lot from working on this and other projects that has helped to better this game.

Your goal is to follow the direction of the objective arrow and collect the delivery orb. You then take it back to the drop off point marked by a:
and land your ship on it by pressing 'Z' ('A' on a controller) in order to score a point. There is currently no win or lose conditions so you can keep scoring to your hearts content!

Future Ideas:
Next I think I will try and add some kind of threat to delivering the orbs like space mines or enemies that keeps the player on their toes. I may also add shooting, however I'm very tempted to keep the protagonist a pacifist as they are only a delivery courier, not a space marine ¯_(ツ)_/¯. Any suggestions would be greatly appreciated ;) .

At the moment I'm very torn with whether to add the fuel system to the game or not as i feel as though it can be more of an inconvenience than a 'main feature'. I would love your feedback and ideas on this and any other aspects of the game, thank you!

-Changed the world size from 3x3 rooms big to 4x4
-Changed maximum fuel capacity
-Changed fuel bar size and position
-Added 'Delivery Orbs' that can be delivered for points

-Added a score to the UI
-Added an objective pointer that points towards the 'Delivery Orb'
-Added a life bar for the player that decreases by one when you run out of fuel
-Added a classic building from the old versions of the game back in because I liked the design
-Removed sounds from the game (temporary)

I hope you enjoy this early version of the game!

Cart #37114 | 2017-02-03 | Code ▽ | Embed ▽ | No License

Update 1.3! - Fuel, Explosions And Even More Space!

Sorry for not updating for so long (I've been rather busy) but here is my Space game at the moment. It's still pretty bare-bones with no goal however I've been working hard on implementing some new features and had to completely re-write how the world map is stored and used by the game... See the change-log below for a full list of changes. I'll probably add some kind of respawn next after you explode and see if I can get a simple delivery system working. Any suggestions in the comments are welcome as usual!

Future Update Ideas:
My idea for this game is that you'll have to collect and deliver packages from around the map to certain places whilst dodging enemies and making sure you don't run out of fuel on the way! The fuel gauge can represent the players fuel AND also the players health so that your fuel decreases when you get attacked AND when you fly around.

Known Bugs:
-Explosion particles stay on the screen when you change room
-Player sometimes doesn't spin out of control when they run out of fuel

-Changed ship speed and acceleration/deceleration
-Changed the map to now support 3x3 rooms!
-Changed all of the contents of the rooms
-Changed landing/taking off speeds to be faster
-Changed all of the sounds in the game
-Changed the name of the game to 'Space Delivery'
-Changed screen border thickness
-Fixed when the player moves into the next room
-Fixed graphical glitch when changing rooms
-Fixed players minimum landing height
-Added a simple menu system for palette swapping
-Added a title screen for the menu
-Added a fuel system for the ship
-Added particle generator for explosions
-Removed the text system (for now anyway, it was creating clutter)
-Moved the palette swapper into the menu
Update 1.3.1
-Fixed a sound bug

Cart #30768 | 2016-10-12 | Code ▽ | Embed ▽ | No License

Minor update 1.2.1 - Let There Be...Color!

-Added the ability to change the palette by pressing 'x'
-Fixed the player and player shadow drawing on top of the screen border
-Minor tweaks and changes to the floaty player text
-Added a sneaky easter egg ;) (no really, it's an egg)

Cart #27174 | 2016-08-21 | Code ▽ | Embed ▽ | No License

Update 1.2! - Lift Off!

Added a few cool new features (even if they are a bit useless at the moment) which you can check out in the change-log below.

-Added the ability to take off/land
-Added text for takeing off/landing that lerps to the player
-Added some sounds for taking off/landing/flying
-Made the two colors dependant on a variable for future palette swapping
-Made the shadow further from ship to give a better sense of height
-Shadow now decreases if you fly over stations (buildings)
-Can't land on top of stations
-Can't land if you are moving too fast
-Re-implemented white border around the edge of the screen
-Added more buildings

Cart #27141 | 2016-08-21 | Code ▽ | Embed ▽ | No License

Update 1.1! - More Space!

Updated my space game (still has no title) to version 1.1.
Any suggestions of things to add next are more than welcome.

-Added multiple 'rooms' to explore and fly around
-Made the camera static instead of follow the player
-Added some new tiles for building space stations and small asteroids
-Now loops the player around a larger world instead of one screen
-Fixed player outline and shadow drawing

Cart #27108 | 2016-08-20 | Code ▽ | Embed ▽ | No License

Update 1.0! - Original Prototype!

Greetings Pico-8'ers! I'm quite new to game development and have decided to start making a little 1-bit (may add colours) space exploration type game. It's currently a work in progress and I intend to add things to discover on the map such as asteroids and crashed spaceships that you could somehow interact with. I'd like to implement text boxes at some point so I may require your help!

Cart #27092 | 2016-08-19 | Code ▽ | Embed ▽ | No License

P#27094 2016-08-19 19:11 ( Edited 2017-09-28 04:03)

[ :: Read More :: ]

I was wondering how I would go about making some flashing text for a game-over screen that reads "press z to try again". I tried using modulo however when I attempted this it would display the text for one frame and then show (about) 30 empty frames.

Any help on a simple and effective method would be greatly appreciated.

P#26485 2016-08-04 16:03 ( Edited 2016-09-25 20:40)

[ :: Read More :: ]

I'm quite new to Pico-8 and video game programming and so started out by making a simple ping pong like game. I can't seem to figure out how to make my ball collide with the side of the paddle however which leads to the ball getting stuck inside the paddle, bouncing up and down, or just passing through the paddle.

Ideally I'd like the ball's x and y velocity to reverse when it hits the sides of the paddle.

Thanks in advance for any help!

'p' is my paddle object
'b' is my ball object
p.w is the paddle width
p.h is the paddle height

 --ball wall collision
 if b.x>=128 then b.dx*=-1 end
 if b.x<=0 then b.dx*=-1 end

 --ball paddle collision top
 if b.x>=p.x and b.x<=p.x+p.w and
 flr(b.y)==p.y-b.size then
P#26447 2016-08-04 06:15 ( Edited 2016-08-04 10:15)