🎮 Introducing "Batout" – A PICO-8 Arcade Game 🎮
Hello PICO-8 Community!
I'm excited to present to you my very first PICO-8 game, "Batout." I developed this game with the assistance of ChatGPT-o1, providing English-language instructions for it to update the entire code base (a single text file) with each new iteration. I didn't write a single line of code myself, and I'm eager to share this novel creation with the community for your feedback and enjoyment.
✨ Game Overview ✨
"Batout" is a fast-paced arcade-style game where players use their mouse or trackball to control a paddle that bounces a ball, destroys bricks, and fends off pesky bats that introduce unexpected challenges. Navigate through multiple levels, accumulate points, and strive for high scores while avoiding falling bombs dropped by the bats!
There are 8 sound effects (№0-№7) that can be interpreted either as a custom instrument or a custom waveform. Where in memory does a pico-8 cart store information about what sfx is in waveform-mode? Im guessing there's a byte somewhere in memory with each of its bits corresponding to each SFX mode. The question is - what's the address?
Introducing "Finally Remembering to Vacuum Under the Couch Cushions After 2 Years"!
Do you have what it takes to clean under the couch cushions? Should you even clean under the couch cushions? Only you can decide...
Controls:
- press X to suck
- you can probably guess what the arrow keys do
Thanks for checking out my first Pico-8 project.
Cheers!
So, I just finished a brain f*** port in picotron, But I thought it would be cool to:
A: have a P-8 port.
B: get recognition by posting on both forums.
Note that for now, I just need like, a copy that fits the limitations of P-8
And eventually poth ports will have these https://www.lexaloffle.com/bbs/?pid=154970#p features, but for noow, Can i please have some help?
a-k Normal stuff.
Delete lives up to its name.
R runs the program.
However: a few new features:
*This will be changed later.
"." Only prints numbers,
"," Uses PICO-8 Stile input,
There are only 8 memory cells.
Finally:
{ and } (M&N respectively) work like [ And ], but only when the cell is != 0
Here's My Masterpiece:
Good news! After intensive labor negotiations, Santa's elves have decided not to go on strike. In an effort to meet the elves' demands for less stress and more fun, management has agreed to start the PICO-8 Advent Calendar Bundle a few weeks earlier than normal and manage the project with a game jam on Itch. We're hoping to get far more participants than last year and streamline the onboarding process. Please don your elf cap and join us. https://itch.io/jam/pico-8-advent-calendar-2024
BLORB LIKES CANS. GET CANS!
- DPAD / Cursors to Move
- Hold X to Grab / Retract
- Retract all the way back to the portal to collect a can.
- You only get 1 life ~ CTRL-R to restart if you crash (or open the menu with ENTER).
- There is no sound in space (I mean .. there is no space for sound)
Good luck!
This is a game made in 1024 bytes for PICO-1k Jam 2024, co-designed and pixelled by @castpixel (twitter). It is our third production as POD Design; you can find the first two here and here. BLORB is also up on itch and has a PICO-1K entry page. Thanks as always to @Liquidream for running this great jam, and @thisismypassword for the invaluable Shrinko8!
Here's a basic CSV parser I use to save tokens in my games. It uses split
for the heavy lifting.
Basic version
The most basic version is 66 tokens.
function data(str) local lines=split(str,"\n") local props,d=split(deli(lines,1)),{} for l in all(lines) do local o,v={},split(l) for i=1,#v do o[props[i]]=v[i] end if(o.name)d[o.name]=o add(d,o) end return d end |
It can be used like this (4 tokens):
spritetypes=data [[name,sx,sy,sw,sh alien,0,0,2,2 boss,4,0,4,4 player,0,2,4,2 bomb1,3,0,1,1 bomb2,2,1,1,1 bullet,2,0,1,1]] |
The data
function returns an array of objects, with properties that map to the CSV columns.
If objects have a name
property, then they will be added as a property to the main object with that name.
Which means we can reference the "player" sprite type as:
print(spritetypes.player.sx) |
References
This version allows you to reference objects defined in other CSV tables. It's 117 tokens.
glob={ ["true"]=true, [ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=155181#p) |
Slashed Res
This is something I'm actively working on.
I am trying to make a shmup or just a graphics library that I can use for other projects.
the movement is what you'd expect and (❎)(🅾️) go between the different quarters of a sprite.
This code snippet is the method I made to quarter sprites.
--show a quarter of a sprite --only works for the first row (lazy) function qspr(sn,qn,x,y) local a=0 if(qn>2) a=4 sspr(sn*8 + ((qn+1)%2 * 4),a,4,4,x,y) end |
This is the placeholder/guide sprite that I used to show what quarter you're on
[8x8] | |