A present-pushing puzzle game!
As a courier at Northstar Gift Delivery Co., it's your job to deliver all the gifts to the targets on each level. "Preferably in the fewest amount of steps possible," your boss is quick to add.
Use the arrow keys to move. Press Z to undo your last move, or X to reset the entire level.
The game contains 8 levels and was made for PICO-8 Advent 2021.
Courier & Ives: "Gifts on Time, or it's on Our Dime!"
A short game I made in one week for a Christmas-themed game jam in my technology class.
You control Santa, and you have to collect as many presents as possible in 90 seconds (1.5 minutes) without collecting any coal, to get a high score!
Controls: Arrow keys for movement, and X/V to run. Assuming you use default keyboard controls, of course.
Art, code, and music/SFX by me.
Thank you for playing!
these busy birds will eat almost anything that falls into their gullet -- what will you feed them? they have their preferences, but people food beats bird food any day of the week!
a difficult, chaotic arcade game. now with local multiplayer support! also available on itch.
controls:
- left / right: move
- x / up: grab
- ESDF: movement keys for player 2
features
- 4 difficulty modes: "easy", medium, hard, and practice
- 3 different control schemes:
- solo
- local multiplayer
- two-handed singleplayer
- 4 challenging maps for 4 different flavors of gameplay
Chiki's Chefs
This is a one-button rhythm game made as a present to dvdfu for their birthday. The game itself is a fangame of their upcoming game, Chiki's Chase.
Enjoy!
Credits:
- Hafiz Azman: Design + Music (+ sync programming)
- Giacomo Preciado: Programming + Art
- Winston Lee: Art + Animations
We are all part of 7th Beat Games
Special thanks:
- dvdfu - happy birthday!
- eruonna - reference sound playback code
TO LOAD THIS PICO-8 CART in immediate mode, type:
load #newfont2021
color(8) ?"Now is the time" color(9) ?"for all good men" color(10) ?"to come to the" color(11) ?"country." |
After some very thorough digging I did manage to find a few Piconians making use of the new ability to change the system font to another, yet none of the explanations seemed really simple to follow.
So once I finally understood - I thought I would toss my hat into the ring to show an easier way to replace the default 5x3 font with a new 8x8 font - which is included. See the source for details.
Basic cookie clicker clone I made over a week.
First finished pico-8 game I made so I was trying to learn the basics to adapt one of the internet's favourite games!
Please feel free to give feedback I would really appreciate it!
Link to itch.io page: https://ollieblom.itch.io/pizza-clicker
Rules
Survive as long as possible by destroying all the asteroids.
But be careful : you can only destroy them when your moon is protecting you.
It's random, so be ready to stop avoiding them for a short amount of time !
Controls
❎ : Press X to start
⬅️⬆️⬇️➡️ : Use arrow keys to move
Version History
1.0 - 20/12/2021 - Release date
1.1 - 31/12/2021 - Added some music and some sound effects
Since the introduction of large maps, I think there's one feature missing that would help many pico-8 games: the ability to flip and rotate individual tiles in the map. Games often use up a lot of their sprite space just for the map data, duplicating tiles for the different boundaries needed, or using manual spr() calls to get the necessary x_flip and y_flip needed. Since there's no visible editor to worry about anymore, this could be a quick patch (via a poke value to an alternate map() drawing mode), and would make map() much more useful.
Flip map mode, option one: 0x8000+ is used for map data (same format used now), 0x2000 is the flip data for that map data, using 2 bits per tile (x_flip, y_flip).
Flip map mode, option two: the 1 byte of map data stored anywhere now references a cell # in the first 16 sprites (n 0-15, 4 bits), x flip (1 bit), y flip (1 bit), and 90 degree clockwise rotations (2 bits). Like so:
map data: 1 byte per tile (same as now) nnnnxyrr nnnn = sprite number, 0 to 15 [ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=103189#p) |
0.2.4 has been released, and we now have an extra segment of memory to play with from 0x8000 to 0xffff. That's 32K, or 0x8000 bytes. A spritesheet takes up 0x2000 bytes... so we could stuff 4 extra spritesheets in there!
I've created a system where you can call my custom function cspr
the same way you would normally call spr
, and everything "just works". The difference is, cspr can handle up to 1024 sprites instead of the standard 256-sprite-limit of spr. (also, cspr is a bit slower (but not much!) than spr, because it has to manage a cache)
Here's a demo that uses 4 full spritesheets; search the code for "cspr" to see how easy it is to use, once you've set it up!
My ball in pong has a different speed for y and x but this makes the ball super jittery and I'm not sure why. here is some of my code:
function game_init()
x=0
y=8*8
bx=0
by=0
dx=0.5
dy=1
end
function gane_draw()
cls(8)
spr(1,0,y)
spr(1,0,y-8)
spr(2,815,88)
spr(2,815,87)
spr(3,bx,by)
end
function gane_update()
--ball move
by+=dy
bx+=dx
--player input
if btn(⬇️) and y<120then
y+=1
end
if btn(⬆️) and y>8then
y-=1
end
end
If you have ever used Tac-08, an early Pico-8 emulator for the RG-350 handheld gaming device, you will be painfully aware that certain commands do not work. These especially, flip()
memcpy()
reload()
and cstore()
While you can still use cartdata()
and dset()
for permanently saved data, many programmers including myself have difficulty coding with the absence of flip()
.
Thanks to @luchak's guidance, I can see now how to use yield()
in its place. And as near as I can tell, it's perfect and remarkably simple to prepare. Let's take this example program:
function main() cls() repeat pset(rnd(128),rnd(128),rnd(16)) _flip() until forever end function _init() _flip=yield _main=cocreate(main) end function _update() coresume(_main) end |
Let's go through it.
You have _init()
create a new command called _flip
which is the same thing as yield
You also create the pointer to a looped process, in this case our main program. And NO it doesn't matter if you call '_flip' outside of the main()
function, inside a WHILE/END, REPEAT/UNTIL, or FOR/END, however you still must initialize the main program.
I just learned about the PCM interface, so I thought I'd do a little adventure into sound synthesis.
This cart is an experiment in building up an audio system that can run dataflow graphs built up from smaller generator and effect components. Here, I've used it to generate some plucked string sounds, mix those together, and then apply some delay to the result. The audio system needs some work and probably should implement audio processors as objects instead of coroutines (as coroutines it's annoying to send control signals once a processor has been created), but it's still kinda fun.
The code has a bunch of other areas that could use cleanup too, but coroutines vs. objects is probably the one big design issue that should get sorted out.
The one big audio-system-side thing that really helped here was trying to generate at least 128 samples per frame so long as I wasn't too far ahead of the audio system's needs. This really helped smooth out maximum CPU usage, since without that tweak I was sometimes generating 256 samples and sometimes 0.
A classic.
With screen shake.
Just getting back into the flow of programming actual games rather than tweetcarts on the pico-8
For those who don't know you are trying to turn off all the lights. When you click a square it inverts the light not just on the square itself but also the squares above, below, left and right as well.
Disco Mouse
I loved the Rodent's Revenge game from Windows 3.1 so I wanted a PICO-8 demake.
I'm not really sure where the disco idea came from, but Moskau is a perfectly ridiculous song.
Features
- Disco Music (that you can turn off)
- Cheese
- 12 Levels
- Beat-synchronized Cats
- Teeny Tiny Sprites
- Challenging Gameplay
How to Play
Push gray block. Red blocks don't move.
Trap cats in blocks and they'll turn into cheese.
Cats are sneaky and can move diagonally.
Collect cheese before the level timer is up.
If you fall in a hole, you're stuck for 10 seconds.
If you touch a mouse trap, you'll lose a life.