A PICO-8 version of a "falling sand" materials simulator, including sand, water, stone, wood, fire, acid, gunpowder and smoke!
Controls:
- Left mouse button / x: Paint material
- Right mouse button / o: Clear materials
- Click the palette on left to select material to paint
- Slider on bottom left sets tool size
This is based on bits I remember from a talk given by the creator of the game "Noita," and the clever types of materials and behaviors from that game.
To make this run acceptably in pico-8 it only simulates in portion of the screen size. Positions and materials are represented by a pico-8 color in a Lua table of fixed positions. Materials behavior is in update60() and should be easy to hack for fun. _draw() does a little bit to make flames flicker. Since the world simulates bottom-to-top, rising materials like smoke get carried along with the update and move very fast because they 'ride' the update direction.
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) |
I'm working on a platformer game. I'm having an issue with enemy AI.
I want that the enemy will turn the opposite way once it reaches a cliff, much like a collision with a wall.
I want to make a collision check that will check if the floor of the tile after the enemy doesn't have any flags.
How do I do that if 0 means the first flag?
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.