I keep seeing tweets with URLs to cartridges that I should check out. I'm super lazy so I wrote a tool to download the cart automatically.
Should run on any Linux and probably OSX:
#!/usr/bin/env perl
use strict;
use warnings;
use feature 'say';
use HTTP::Tiny;
use File::Path 'mkpath';
my $ua = HTTP::Tiny->new;
my $re = qr{
<a \s+ href=/(bbs/cposts/[^>]+.png)>\n\s+
<b><font \s+ color=\#ff0080 \s+ size=3>(.+) \s+ (.+)</font></b></a>
}xi;
my $res = $ua->get(shift);
if ($res->{content} =~ $re) {
my ($url, $name, $ver) = ($1, $2, $3);
my $dir = "$ENV{HOME}/.lexaloffle/pico-8/carts/dl/";
mkpath($dir);
my $path = $dir . lc $name . '.png';
say "Downloading $name v$ver Cart to $path";
$ua->mirror("https://lexaloffle.com/$url", $path);
} else {
die "Could not find game data; are you sure it was a valid URL?\n"
}
|

Generate some random drum beats. Press Z for a new one. They are saved as sfx 0 on the cart, in case you get one you want to use somewhere else. Based on ideas from this.
I hope to add more complex and longer beats.
Added a menu with some different generation algorithms. Mutating creates a beat that changes a little at regular intervals. Sometimes it uses some non-percussive sounds, which is a bug, but I have not been able to track down the cause.
Trying out PICO-8 by making a platformer, inspired in several ways by IWBTG fangames like I Wanna Go Across The Rainbow. There are a few things I'd like to tweak in the engine and the current level design is more of an afterthought, but I don't have the time to really polish this right now. Also, I wasn't able to get a preview image to work due to a bug where I couldn't save a cartridge after running it. Hope you enjoy!
So this is the first "game" I've made in Pico-8. It's a game I'm working on as a warm up for Ludum Dare so it is mainly an exercise to become familiar with Lua scripting, the sprite editor, etc. Still heavily a work in progress, I just wanted to post it to see it run in the browser. Feedback is appreciated.
Things that aren't done:
- Start Screen
- Player Collisions
- Extra Enemy types
- Stars in the background
- Music
- Scoring
- A whole lotta other stuff
Also, as an aside, that number in the corner is the number of planets in the planet array (It was used for bug testing, forgot to take it out).
Hello,
this is my first try at Pico8 with a simple shoot'm up
inspired by a submission to @pixelsweekly
Finally, i got back to 194-8 !
lots of new stuff in this build so i decided to jump to 1.0
Controls:
-Arrows to move
-X to Fire
-C to shoot big Lazor (the bottomleft jauge replenish when you catch pink globe)
changelog 1.0:
- lots of cleaning in the code (i'm sure a lot more can be done)
- boss battle with intro, music & attack pattern
- ennemies lifebar
- catching yellow orb while already at full health will boost your main gun up to 4 times
- lots of new ennemies and they now spawn in some pattern
- after each boss you continue the game with tougher opponent, and a new color palette
- your ship now fly faster when not firing
- the overall difficulty is ranked up
previous versions:
[hidden]
changelog 0.2:
- added player collision and life
- improved title screen
- put the right title -_-' it was 190-8 before ...
- added trail and engine FX
- added ground tower firing at the player
- added some new tiles and longer background loop
- added special power on C
changelog 0.3:
- New "Lantern Games" Splashscreen
- Replaced the "nuke the screen" power with a big lazor
- Added pink collectable that recharge the lazor
- Added gold collectable that give health or more lazor if your health is full
changelog 0.4:
- Title screen rework
- SFX for Lazor
- cleaner lazor beam
- yellow powerups now increase your fire rate if your health is already full
- Score screen with cartdata support for highscore
- smoke trail when you're or the ennemies are near death
- more FXs
- more BG environment
- fixed the fact that turret bullet can kill the ennemies
- boss arts done but not used ingame
Controls
Arrows - Movement
Z - Hold and release to make sounds. The longer it's held, the louder the sound
X - Move silently
This is a demake of our game Dark Echo (Steam, iOS, Android). You are trapped in a world of absolute darkness and can only see via visualized echolocation.
Known issues:
- You may occasionally walk through a wall. If you get stuck, try and find the exit from outside of the level - bonus feature!
Note:
This isn't a forum post saying "OMG PUT PICO-8 ON STEM NAOW!!!!", but rather a post on whether or not to do so.
This question was going to get asked eventually, so I thought I might do it.
Other engines, such as Game Maker have made it on Steam, so why not PICO-8?
PROS
- Would get more attention
- Steam Workshop could make it easy to get games
- Steam Discussion is pretty useful
- Paid games
CONS
- CoD Children might show up and say "THE GREEFICS LUK STOOPID"
- Valve gets a 10% cut of the profit (They're not bad people)
- The BBS would be useless as a result
- Again, Valve gets a cut
Think it over, but I could go either way...

A little game that is based on Zep's demo Jelpi. Using Jelpi's platforming code I reworked it to make a 2 player chasing game. Player 1 (the robber) has to collect all the diamonds before player 2 (the cop) catches them.
I have played around with the level layout to try to make it a bit easier for player 1, but I think it is still a bit easier for player 2.
Please let me know what you think! and I hope you enjoy it
(the gif was made with just me playing with two hands so it plays a bit weird)
1.4
Gave robber the ability to head butt the cop of they are standing still to prevent the cop camping on the last diamond
Changed end game text to say 'Press Z to restart' instead of 'Press button to restart'
1.3
Added new player graphics
Added more sparkles
Changed end round sequence slightly
Modified sound effects
Removed music
1.2
Added some new graphics (background and items).
Added player scores.
Fixed issue with player landing inside a platform (hopefully).
Fixed issue with music not starting again on new game.
1.1
Fixed bug with walking through screen edges on middle platform.
The string to number conversion code is sometimes setting the least significant bit erroneously when it converts negative numbers.
For example: "-1"*1 should and could exactly equal -1, but it does not, it equals (-1 + SHR(1,16)). This is vexing to the kind of programmers like me who like to use -1 as a special value...
BONUS WEIRDNESS: It doesn't always set it on negative numbers. In fact it seems like the pattern is if the number could be exactly represented, the LSB is set, whereas if the representation is already inexact the LSB is the same as the non-converted version.
So "-0.5"1 == -0.5+SHR(1,16) (not desired), but "-0.2"1==-0.2
(This function was useful looking at this...)
function bits(n) local a,s a=shr(1,16) s="" for i=0,31 do if band(n,shl(a,i))==0 then s="0"..s else s="1"..s end end print(s) end |
Hi guys, I just discovered PICO 8 recently, and got really thrilled about it, as I always wanted to make some games, and looks quite easy to work with.
Thing is, I have no idea of programming; do you think I can learn while using it? or should I get some notions first? any reccomendations?
Thanks a lot!

Technical Side of Things
To run PICO-8 games, I'd imagine the system would be a Linux machine, with a customized OS that only has the dependencies, a theme that looks VERY similar to the PICO-8 start-up screen, and doesn't show output.
(Just a thought) All it would need are the dependencies required to run PICO-8, and a small amount of flash storage that holds the system information (saying this is a well-hacked up version of Linux), along with the PICO-8 software.
Outer storage would probably be best accomplished by an SD Card slot (or a Flash drive, if you wish). The outer storage would be used to hold the games (and I guess also update the firmware), but what should we do if there isn't one detected? We could either run one of the Demo games (kinda like the Sega Master System, but not hidden), or just show a screen that says "No SD Card found!".
Console Design
There are quite a few Microconsoles out at the time of this writing that look just like slabs of black plastic. LAME!

The following code runs fine:
function _init()
local array = {}
for x = 1,8192 do
array[x] = {}
end
for x = 1,8192 do
foreach({},nil)
end
end
|
If I change the foreach line to
foreach(array[x],nil) |
I get an out of memory error. This suggests to me that indexing the array allocated memory. The memory appears to be garbage collected eventually; if I use a smaller array and put the code in _update, I don't see any error.
Testing out an engine for Super Scaler games. It's still work in progress, much is needed to be worked out with how I ultimately want to handle the slices (tiled 8x8 images or custom stretches and sizes for everything?).
Currently, sorting of the layers is not in there as I'm having trouble figuring out the best way to use FOREACH().
I want to ADD and DEL from the tables that make up the sprites, and then use FOREACH() to do the scaling rather than arbitrary FOR/END loops based on a sprite limit. The idea is that if I can keep adding to the front and deleting from the back, then I don't need to sort anything (i.e. speed increase)...but I can't get it to work!
Halp? :)






9 comments







