Log In  

Creative coder, Technical Speaker, Demoscener, JavaScript freak and size optimizer extraordinaire acting on the web platform, PICO8 and in Assembler on PC and Atari ST

[ :: Read More :: ]

DOOMY (overdue Pico-1k jam)

by p01
Cart #doomy-1 | 2021-10-13 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

DOOMY, a tiny first person shooter in 1024 bytes, with collision detection, arbitrary walls, texture w. fog, sound effects, a couple of baddies and a death screen πŸ‘ΉπŸ‘ΊπŸ’₯

Controls & Goal

Move around with the Left, Right and Up arrow keys. Shoot with X or C.
You start with 10 health points, and need to shoot as many baddies until they get you good!


Seeing great and cute entries closing Pico-1k jam was inspiring. That's when I got an idea: "all things SSPR" to balance this cuteness with DOOMY pointless violence and big pixels.

Technical details

In a nutshell DOOMY is a rotozoom (the effect you get when rotating and zooming an image) laid down flat and rendered with scaled sprites.


The textures, sprites, and the base of the level are rendered as a group of rectfill and text in the first 3 lines of code, with first two textures of 8x8 for the walls, then 2 baddies, and finally the base of the level.

In the following 4 lines, the base of the level is expanded and some diagonal walls are added.

Every "thing" in DOOMY goes in the β–₯ object which contains the x,y,t,w properties for the x,y position of the thing, it's texture index t and width w (nil or 1 for walls, 8 for the baddies)

Game loop

In the game loop the things in β–₯ are rotated and moved into another object, 🐱, if they are in the visibility fustrum. The baddies move erratically towards the player.

The things in 🐱 are then sorted and rendered back to front, if one of these thing is large, it means it's a baddy and we render a shadow with an ovalfill

Collisions and baddies hit

For the collision detection, we check the distance of the last thing we drew. Blocking the way forward if it's very close.

We check the color of the pixel under the crosshair to know if it's a baddy. If you shoot we play a noise, increase the score and respawn it at a random location. Otherwise there is a 10% chance it will shoot you with a red flash and some noise.

You know the baddies are bad because they keep shooting you even when you're down!

Source code

u=.2v=1.5a=0p=0h=10β–₯={}r=rectfill f=add
β—†=pget?"β˜…%=  ᢜ8🐱z}",f(β–₯,{x=4,y=5,t=16,w=8}),1,6
memcpy(0,6^13,β§—)for y=0,9,1/8do
for x=0,9,1/8do
function _draw()cls(1)r(0,60,127,68,5)l=rnd
local 🐱,c,s,q,d,w,x,y={},cos(a)*8,sin(a)*8,64
for z in all(β–₯)do
if(z.v<48and abs(z.u)<z.v)f(🐱,z)end
for i=2,#🐱 do for j=1,i do
e=6-2*min(1,h)pal(6,13)for d in all(🐱)do
w=d.w or 1x=q+z*(d.u-w/2)y=q-z*e
if(b&4>0and z<40)u+=c/q v+=s/q
?"♥"..h.."  β˜…"..p,44,119
if(c>7and c<13)then

That's all folks

Hope you enjoy this tiny showdown

P#98580 2021-10-13 14:55 ( Edited 2021-10-13 14:59)

[ :: Read More :: ]


An homage to KATAMARI DAMACY for Pico8 in 1021 bytes for the #PICO1k jam

Cart #katamar1k-0 | 2021-10-11 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA


The King of all Cosmos was naughty again. He broke all the stars and sent you, the 5cm Prince, to earth with a Katamari ball to collect things of increasing size to build up a star and fix his mess


Use the LEFT and RIGHT arrows to steer the little Prince

Watch out! Things will fall off your Katamari ball if your try to collect something that is too big


Collect enough things with your Katamari ball to reach 64cm as fast as possible to please the King of all Cosmos.

Post a screenshot of your time on Twitter with the #PICO1k hash tag. Who knows, the King of all Cosmos might like it.

PICO1k jam and technical limits

This game was made for PICO1k jam where the goal is to make a cool game, tool or demo for the PICO8 fantasy console in 1024 bytes maximum without any music or sprites. Everything must be done with 1024 bytes of code.


P#98507 2021-10-11 16:01 ( Edited 2021-10-11 16:05)

[ :: Read More :: ]

PICO-1k JAM demo invitation πŸ₯³

Organized by @Liquidream, PICO-1k JAM invites you all to submit a game, demo or tool for PICO-8 in 1024 characters or less at https://itch.io/jam/pico-1k in September 2021. No sprites, no maps, no sfx or music. Just 1024 characters of code.

Below is a little demo-invitation by @p01 featuring the mandatory starfield, a twister scroller, and a software sound synthesizer generating ~1min of music with 4 channels, and one ton of love for the PICO-8 community in 976 characters (counting the label).

Be wild, have a little fun at PICO-1k JAM

— πŸ’Œ @p01

Cart #pico_1k_jam_invitation-0 | 2021-08-14 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

P#96022 2021-08-15 09:03

[ :: Read More :: ]

πŸ€πŸŒƒ Canary

Late #pico8 game in ~513 bytes for Tweet Tweet Jam 5

Fly like a canary through procedural mine shaft without bumping your little head πŸ¦ΊπŸ”¦

Cart #ttj5_canary-2 | 2020-11-11 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

P#84111 2020-11-11 13:39

[ :: Read More :: ]

Cart #katamari_christmassy-1 | 2019-12-19 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Katamari Christmassy

A PICO8+Xmas homage to the Katamari series by Namco by Mathieu @p01 Henri and Matt @gasmanic Westcott

The King of All Cosmos was completely naughty. The stars are all gone and you, the 5cm Prince of All Cosmos, must fix this mess.

How to play

Walk forward with ⬆️, steer with ⬅️ and ➑️
Roll things up with your Katamari ball to build the biggest clump.

The King will make a star with it. If it is big enough.

Game modes

Switch between Story and Arcade mode in the Pause menu.

Rebuild the Christmas constellation in Story mode to make the King of All Cosmos proud.

Have fun in Arcade mode.

Accessibility and photo sensitivity

Some colors flicker at 60fps to make parts of the UI transparent or brighter. Unfortunately this can be quite disturbing for photo sensitive people.

The color flicker can be toggled in the Pause menu.


Code + Visuals: Mathieu @p01 Henri
Musics: Matt @gasmanic Westcott
Original Katamari series: namco


P#71186 2019-12-18 20:56 ( Edited 2019-12-19 12:21)

[ :: Read More :: ]

Cart #dirt_racing-2 | 2019-02-13 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

This is the standalone version of


The tiny racing game in 425 tokens for #17in1jam by @p01 and @Gruber

For the purpose of the jam trying to fit 17 games in one cart, the game had very tight constraint.
The whole game takes 425 tokens, 16 sprites, 16 map cells, 4 sfx and 4 music patterns.


  • 3 in game sfx for the engine noises and transition between tracks.
  • 4 music patterns mixing 3 unique sfx
  • 5 tracks
  • Ghost of your previous laps
  • A nice trophy at the end and a sweet Easter egg

Hope you like it, and will soon try the whole #17in1jam cart!
Curious to read any feedback, good, and especially bad.

It was really fun to make my first game on PICO8

P#61826 2019-02-12 23:05 ( Edited 2019-02-13 23:00)

[ :: Read More :: ]

A Pico8 homage to IMPOSSIBLE ROAD in 498 bytes for #tweettweetjam, featuring:

🏅 Hi Score!
🎞️ 60fps action!!!
🏎️ Ever increasing speed!!

Hope you like it

Cart #59153 | 2018-11-18 | Code ▽ | Embed ▽ | No License

P#59064 2018-11-16 07:31 ( Edited 2018-11-18 23:04)

[ :: Read More :: ]

I am still very new to PICO-8 and saw a few games rendered with polygons.
This lead me to the Trifill Thunderdome benchmark by Musurca.

One thing this benchmark didn't show was the number of tokens for each method which is an important detail considering the limitations of the platform.

Also, I wrote two triangle rasterizers in 163 and 335 tokens respectively which perform pretty decently. They might be an acceptable alternative to ElectricGryphon's super fast triangle rasterizer if you need an extra 2-400 tokens. If you don't, by all mean use his. It is the fastest one I found, and by a good margin!

Update 20180706: Added the possibility to switch rasterizer and turn the test triangle with the arrow keys. This allows to compare rasterizers at a normal pace. Updated EG's rasterizer to the latest he posted in the previous thread and added the one from Gryphon 3D Engine Library v2 only modified to use normal color() and fillp().

Update 20180708: Added a fill pattern and a toggle for the results and control wireframe.

Hope this helps,

P#53941 2018-07-04 16:42 ( Edited 2018-07-08 17:39)

[ :: Read More :: ]

Cart #53887 | 2018-06-30 | Code ▽ | Embed ▽ | No License

Hi there. I made a few tweetcarts recently and thought a PICO♪HERO in 280 bytes would be sweet, so here it is.

As you can hear, it's the first time I play with sfx :\

The game features 60 uniques "tunes".
Press the arrows keys to the beat until the end of your tune.

You can see your score at the top of the screen.
Followed by the title of the game and the number of the tune,
Then the music pattern.

Hope you like it,

P#53885 2018-06-30 18:49 ( Edited 2018-07-01 21:26)