
This thread is for ideas for my game.
The main character is a lil bird that changes color but I don't know what color he should turn with 1 dash and then again with 2 dashes.
This game is a Celeste type mod.

I don't know if he should have a scarf that changes color or if his body should so I need ideas.
Controls
cursor / dpad - move the reticle around the play area
z / O - hold and press a direction to shift rows and columns of tiles
x / X - after the timer reaches zero press to start again
About
This is my second entry into the #pico1k 2023 jam. This is a "match 6" puzzle game where you try and clear as many lines as you can in 100 seconds. Featuring hand coded sprites inspired by Columns on Sega Megadrive/Genesis and a smooth addictive control style.
hello everyone, I'm Osis, and I'm new to Pico 8 as well as coding, but when I found some pixel art of some Risk of Rain characters with the Pico 8 palette and most of them being 8 x 8 (a link to their work https://www.reddit.com/r/pico8/comments/mw40ui/risk_of_rain_1_characters_in_pico8_style/ ) I thought that it might be fun to try and make a game, which I have done most of it, the problem is I have a set of animations that should be playing when the player shoots, which at one point worked, however, it now no longer does I have tried going over it many times and still can't find what might be wrong
controls:
Jet pack is Up
Place Turret Is Down
Left Is left
Right Is Right
Z Is Shoot
any help with this problem or anything else you can spot in my code would be very helpful,
here is the problem code:
--
if shooting2 == true and mag >= 1 then
s_timer+=1 --shooting timer
if d == 2.8 and pushing == 0 then
if (s_timer < 4) plr.s=5 spr(6,plr.x+8,plr.y) -- this is here as one spr is more the 8x8
if (s_timer > 6) plr.s=7
if (s_timer > 8) plr.s=8
if (s_timer > 10) plr.s=1 s_timer=0 shooting2=false mag-=1
end
--
note there is this same code copied a few times but just looking for if the player is facing a different way
but even if it was just this bit it should still work I believe.
and here's the cart in full:


Thanks to the great tutorial series by Krystman, I was able to finally create a game. It only took 40 years. Initially I planned to learn the basic concepts but ended up invetsing a lot of time polishing this basic shmup. Enjoy!

Follow me? See if you can keep up with this sequencing game of colors and sound. How much memory can you store? Share your scores in the comments!
CONTROLS
X = Start/restart the game
UP ARROW = top square
DOWN ARROW = bottom square
LEFT ARROW = left square
RIGHT ARROW = right square
Z = center square
This game was made for the 2023 PICO-1K Game Jam, where the goal is to create a PICO-8 game in under 1KB of compressed memory.

Captain Harlock, Battle against the Armada (THE ENGLISH TRANSLATION CAN BE INCOMPLETE. IF YOU SEE ANY BUGS OR MISTAKES, PLEASE CONTACT ME.)
Albator, Bataille contre l'Armada (ATTENTION, LA TRADUCTION ANGLAISE PEUT ÊTRE INCOMPLÈTE. SI VOUS VOYEZ DES BUGS OU DES ERREURS, MERCI DE ME CONTACTER.)




How to play ?

ENG: Press X to shoot and press C to switch weapons.
FR: Appuyez sur X pour tirer et C pour changer d'armes.
Mazone ships | Les vaisseaux Sylvidres
The Zoness | Destructeur

Battleship | Vaisseau amiral

Fighters | Vaisseaux de combat

Pickups | Collectables

Weapons | Armes


What is this game ?

ENG: This game was created for a contest. The theme was “Create a mini-game about audiovisual creations”. Because I did not want to create a game with a camera flying around and shooting lasers, I chose to do a Schmup (Shooting game) based on Captain Harlock (called Albator in French). I tried to be as close to the original design as possible with the Pico8 limitations.
This project was fun to make. It was not easy, for sure, but I think I managed to do something great. I hope you will like it!
FR: Ce jeu a été créé pour un concours de création de jeux vidéo. Le thème était : « Créer un mini-jeu autour de l’audiovisuel ». Comme je ne voulais pas faire un jeu avec une caméra qui vole en tirant des lasers, j’ai préféré faire un jeu sur Albator (Captain Harlock est le nom original, en japonais). J’ai essayé de respecter les designs originaux au mieux, avec les limitations Pico8.
Le projet a été vraiment fun à réaliser. Ce n’a pas été facile, c’est sûr, mais je pense avoir réussi à faire quelque chose de bien. J’espère que vous allez l’apprécier !

Where to find me!

berry_sauvage on Instagram, Discord and Youtube.

Credits

ENG: Game and Pixel Art by Berry’ (me).
I used tutorials by Lazydevs and Game Dev Alliance. (https://www.youtube.com/@LazyDevs | https://www.youtube.com/@GameDevAlliance)
Music by Robby Duguay. (https://www.lexaloffle.com/bbs/?tid=2619)
SFX by Gruber. (https://www.lexaloffle.com/bbs/?pid=64837)
Captain Harlock’s rights are owned by Leiji Matsumoto.
FR: Jeu et PixelArt par Berry’ (moi).
Avec l'aide des tutoriels par Lazydevs et Game Dev Alliance. (https://www.youtube.com/@LazyDevs | https://www.youtube.com/@GameDevAlliance)
Musique par Robby Duguay. (https://www.lexaloffle.com/bbs/?tid=2619)
SFX par Gruber. (https://www.lexaloffle.com/bbs/?pid=64837)
La Licence Albator appartient à Leiji Matsumoto.
This is a function that draws a book with some custom content to the screen. My inspiration was morrowind and its plethora of books. All this function needs to work is an external,global page
variable.

How to use:
- copy this function to your code
- declare a global
page
variable (that starts at -1, which is the cover page) - keep in mind that it resets
camera()
to print the book on screen regardless of the camera offset, so use it after you already printed you game with desired offset - add your book as a pair of title and a long content string like this:
{"Title","Super long and cool content"},
to the books table - consider using P8SCII to achieve certain effects cheaply - it breaks the function in fun, weird ways
function show_book(title) camera() local given_title=title or "how to use show_book" local books={ {"how to use show_book", "this book will teach you how to use the show_book function in pico-8. the show_book function takes a given title and displays the book content on the screen. you can use the⬅️ and ➡️buttons to turn the pages, and the 🅾️ button to exit the book. you can also add your own books to the books table, as long as they have a title and a content string. the function will automatically split the string into lines and pages, and draw the book cover and pages for you. you can also change some variables in the function, such as the maximum length of a line, the maximum number of lines per page, and the colors and positions of the book elements. to use the function, you need to call it with a title argument, like this: show_book ('how to use show_book'). have fun reading and writing books with pico-8!" }, } local function split_str(str,length) local max_length=length or 13 local strings=split(str," ",false) local result={} local cur_str="" for i in all(strings) do if #cur_str+#i<max_length then if #cur_str!=0 then cur_str=cur_str.." "..i else cur_str=i end else add(result,cur_str) cur_str=i end end add(result,cur_str) return result end --end split_str local function draw_cover(tit) local title=split_str(tit,11) local line_nr=0 rectfill(64,25,117,100,2) line(118,25,118,100,15) rect(66,27,115,98,15) for i in all(title) do line_nr+=1 print(i,70,35+line_nr*6,15) end end--draw_cover_end local function give_book(tit) local title=tit or "the hanging tree" local book_lines={} local lib={} local ret={} --lookup the book and split --the strings for i in all(books) do if i[1]==title then book_lines=split_str(i[2]) end end for i in all(book_lines) do add(lib,i) if #lib==10 then add(ret,lib) lib={} end end if(#lib!=0)add(ret,lib) return ret -- end--give_book end local content=give_book(given_title) --dislay background fillp(▒) rectfill(0,0,127,127,0) fillp() if page>0 then --draw the book itself rectfill(10,25,117,100,7) line(10,24,118,24,2) line(118,25,118,100,15) line(64,25,64,100,15) --page numbers print(page,64-print(page,0,-1000),95,4) print(page+1,66,95,4) --print left page trash=0 for i in all(content[page]) do trash+=1 print(i,12,24+trash*6,13) end if#content+1>=page then --print right page trash=0 for i in all(content[page+1]) do trash+=1 print(i,66,24+trash*6,13) end end elseif page==-1 then --draw the book cover draw_cover(given_title) end --controls print("🅾️",111,115,4) if page+1<#content then print("➡️",111,95,4) if(btnp(➡️))page+=2 end if page>-1 then print("⬅️",11,95,4) if(btnp(⬅️))page-=2 end end |
401 tokens
My submission for code guessing round #43. It's a visualisation of a spirograph with adjustable parameters:
- R1: radius of the blue, centered circle
- R2: radius of the white, rolling circle
- D: length of the drawing rod coming from the rolling circle
Controls
- Up/Down: select the parameter to adjust
- Left/Right: decrease or increase the parameter by 10 (or 1 if circle is held)
- X/M/Cross: flip sign of R2 (change between hypotrochoid and epitrochoid)
- Z/C/N/Circle: hold to change the parameter step from 10 to 1
About the implementation
Curve drawing stumped me for some time: they have infinite smoothness and calculating every pixel they go through sounds like an absolute pain and efficiency disaster. With parametric curves, like spiros and beziers, you can't even do that well, you can only make your parameter step as small as possible and hope it hits all the pixels. This is not a usable approach.
Then I realised: curves may be smooth, but PICO-8 display is not. I can approximate them with straight lines, which PICO-8 calculates for me! The only thing needed is a bunch of points on the line dense enough to create an illusion of smoothness, which PICO-8 doesn't require a lot of. In addition to that in most parametric curves go "slower" at sharp turns (have low derivative w.r.t. parameter) focusing the detail there, and approximating less curved sections with longer line segments.
You can see the function that calculates the points in tab 1 function curve()
. It's calculated once every parameter change because it is a fair bit more resource intensive than just drawing it. i
parameter indicates how far did the rolling circle roll around the centered circle, and based on that calculates angles and positions of the rolling circle and the drawing line, and the tip of the drawing rod is added to the list of points. Exactly the same approach is shown in the _draw
function but split into steps: for a given t
(how far the circle rolled) it calculates cx
and cy
(position of the rolling circle) and from that dx
and dy
(tip of the drawing rod).
PICO-8 print
behavior is inconsistent with Lua standard:
mmt={} mt=setmetatable({},mmt) t=setmetatable({},mt) function mmt:__index(k) print('mt.'..k) end print(t) |
This code should not output mt._tostring
as, per language manual, I quote: "the access to a metamethod does not invoke other metamethods". You can check it on the official Lua demo too.
Controls:
⬆️⬇️⬅️➡️ move
⭕️ [Z] Jump
❎ [X] Skip / continue
Remake:
The original game for Commodore 64 "China Miner" by Ian Gray.
(c)1984 Interceptor Software.
How to play
Miner Wally is the only person to know the location of the Jade Mines belonging to the Pong Dynasty in China. On each of the 30 screens you must collect four objects (pickaxe, candle, lantern and jade vase) before collecting the key to move onto the next stage. As well as the platforms to negotiate you must also avoid the various creatures that populate the mine and if you touch any of them then you lose one of the nine lives, are sent to the start of the screen and all objects reappear. There are various obstacles to avoid or use like lasers, moving platforms and platforms that disintegrate when stepped on. Falling from heights also loses you a life.
As in the original, the game starts immediately hard and in the first stage you quickly have to make a few steps to the left and jump UP to avoid the creature coming straight towards you (and you can't jump up or diagonal due to the lethal stalactites above you).
Here's a short gameplay video that should help you figure out how to beat the first stage and play in general.
For reference and hints on how to beat any stage there's this China Miner Longplay of the original C64 version.

Differences with original:
- The original game was notoriously difficult and brutal, you started from the first level and had to redo everything after game-over. In this remake you can select the starting stage, so you can train and find the best strategy to finish each level (why not, in the shortest time, see Stats and Achievements);
- You start with 9 lives instead of 5 (you still gain an extra life every 1250 points / 5 stages as the original)
- Some collisions with blocks have been simplified and made less frustrating: for instance you can jump diagonally without hitting the head on platforms higher than 2 blocks from your ground (unless it's the stage ceiling);
- You cannot get stuck jumping up over the stage ceiling as it happened in the original;
Stats page:
⬅️ from title screen.
Aside from the high score, it keeps track of your best performances:
- Longest Run: how many stages you've managed to complete in a single game and the timing of the best run;
- Total Time: (not to be confused with the best run time) this is the sum of all best times recorded for each of the 30 stages;
- Average Time: is simply the above (total time) divided by the 30 stages, see Achievements;
- Take-Away: how many jade vases you managed to carry home; in other words how many stages you've completed in a single game and reaching the exit the cave (finishing 30th stage, e.g. for a takeaway of 5 you might want to start from stage 26);
While in this page press ⬆️⬇️ to select the starting stage (this option is saved).
Achievements page:
➡️ from title screen.
Move ⬆️⬇️ for info on each achievement:
- Hard stages: simply complete stage 1, 5, 12, 21, 28 earning a yellow star each.
- Take-Away: as explained above for the Stats page, reach the exit after completing 3, 5, 7, 10 or 15 of the last stages;
- Average Time: in seconds, to earn the first star you need an average of less than one minute, this should be pretty easy although this row of achievements will likely to be still all greyed-out until you play each of the 30 stages at least once (default time is 15 minutes for an unbeaten stage!); while an average under 40 seconds is more challenging but still doable as you improve your strategy during the training on each stage;
- Longest Run: earn a star for each milestone (3, 5, 10, 20 and 30) of your game progress. These are the toughest stars of course since they need to be achieved in a single game, fifth star
Upon reaching the "Reset" you still need to move up other 4 steps to enable the "Reset progress" command which is confirmed by pressing the ⭕️ [Z or C] button. This will wipe any saved progress, score, timing and preferences.
Features:
Pixel-perfect collision with the creatures;
P8scii for extra gfx (see post: One-Off GFX);
SFX bank swap (see Music below);
Options:
- Flicker (off by default, turn it on only on executable, on webplayer/browser it'll flash inconsistently) 60fps flickering effects for colour blending and transparency; if enabled it'll try to emulate the C64 colour palette, Pico-8 has no cyan and purple;
- Music (on) you can turn the music off at some point;
- Particles FX (on) collapsing floor and colliding with baddies;
- Classic Moves / New animation: the Classic mode will animate Wally as in the original, facing you when idle, while activating "New animation" Wally will move more or less like in Manic Miner holding the pose, a little step while jumping, coming down the slides etc.
Music:
The background music "Maple Leaf Rag" composed by Scott Joplin (in the original China Miner by Chris Cox).
The Pico-8 version used in this remake is by @ericb and his player cart is available: Player Piano: Maple Leaf Rag. Fun fact: see my comment there about "China Miner flashbacks"
Credits:
Thanks to:
@thisismypassword for creating Shrinko8;
again to @ericb for the music;
feedback/proofreading: @bikibird, @SmartAlloc, @merwok
you for playing the game!
So I wanted to experiment with Pico-8's bitplane drawing features (see https://www.lexaloffle.com/bbs/?tid=54215) and specifically to see if I could make a palette that worked sort of like the idea behind 16-color CGA: four-channel (one bit per channel) RGBI color. (Pico-8 doesn't have quite enough blue for this to work comfortably but I'll keep experimenting.) But to play with it, I wanted to be able to scribble with the palette, drawing "with specific bits".
So I threw together a thing!
This mouse-driven cart lets you scribble using a velocity-sensitive pen. Left four checkboxes in the tool panel set the high four bits of the palette mask, right four set the low four. (For some reason this made more spatial sense to my brain for where "color" and "mask" go even though it's backwards from the bits.) Click the "explosion" button to clear the drawing area. I have been too lazy to implement a KABOOM sound effect but patches are welcome.
Left click to draw, move faster for a thicker line. It's not a real art app, so the lines are really blobby. X/Z to cycle palettes (both buttons do the same thing) -- additive experiment, subtractive experiment, classic palette, secret palette; palette changes will overwrite the top 8 pixels of the drawing area with a display of the current palette.
No save feature, this is literally just drawing to VRAM (with some save-to-sprite-sheet shenanigans to restore stuff otherwise overwritten by the cursor).
Feel free to use this as a crude basis for other mouse driven drawing apps, make it do interesting things with the other mouse buttons, try more palettes, just experiment with bitplanes, etc. Code is un-minified so it should be reasonably legible.
Quoridor: Apples VS Oranges
This is my port of the board game Quoridor created by Mirko Marchesi.
In my version of the game, the pawns are replaced with "fruit" because it works better with the color palette. All of the rules are programmed into the game logic to prevent any illegal moves. Unlike other online versions of the game, the fruits start on the sides of the board, rather than on top and bottom. I think this makes it much more comfortable to play in local multiplayer.
There are a few more features I want to add, but this version is basically complete. Have fun!
The physical game is published by Gigamic Games and is available from many stores. Check out the Board Game Geek site for purchase links.
Here is my first attempt to program a game with Pico-8. The goal is to drive 3 cats to the 4 marked fields in the left center. They will only go to these fields if Luna, the shepherdess and heroine, is at this moment at most 2 fields away. There are 3 levels in total. And if you complete all 3 levels in a short enough time, you get to enter a high score list. Attention: In the last level you can be run over by 2 vehicles!
.png)
.png)
Miracle Warriors Remake
Looking like I will likely hit the compression limit so will need to redesign or multicart maybe
Currently:
- bump into walls to gain XP and gain levels - to test systems
- slow moving through forest or mountains remove HP - to test systems
pressing X on some villages/castles will give the following - to test systems
- get ship1 and ship2 at the original game locations
- first cave (cave6) will give random item
- Kosama Village will give random equipment
- Castles will give random pouch items - guilders,fangs,herbs,reputation etc
-
Resurrection village will give new party member if you have enough XP
- all maps should work although not very interactive
- healing system with herbs should work
-
save system should work
- initial monster spawn system if press X in open .. you can only run away -- but their might be bugs .. sorry.
CONTROLS-
⬅️⬆️➡️⬇️ to move blocks
🅾️/ Z to place blocks & confirm
❎/X to rotate blocks
▶ to start the game
HOW TO PLAY-
Move the blocks around, and connect the arrows to get a better score.
HOW IT WAS MADE-
Made within 18 days for the CRE-8 jam. I will link a dev blog detailing the development when it comes out.
This will sound silly; It was a really tough development emotionally, but it's finished! Thanks a ton for playing!
SOCIALS-
Tank battling like it's 1977!
(2 player only)
A re/de-make of Combat on the Atari VCS.
Features:
- Flamethrowers!
- 5 other weapons
- rotating turrets
- 7 battlefields
Cell Machine
A PICO-8 port of Sam Hogan's hit puzzle game Cell Machine!
Drag cells around with your mouse. Other controls are explained in-game.