INTRO
After a post where I was asking this same question, and thanks to the comments I've received, I've decided to create a guide on how to upload a game on itch.io in a nice way.
By default, if you upload a game on itch.io you obtain something like this: FartJumper (itch.io)
(not a game of mine, I use this just to show the difference, if it is a problem I'll remove the link)
As you can see there are a lot of borders and I personally don't like them.
I made it so that the game run like this: Not Enough (itch.io)
(this is one of my game)
In my game I also enabled the autoplay and made some adjustment to it to make it even better, but I will explain that later on.
GUIDE
TL;DR
You can download this index.html and use it mostly as it is: index.html
Not sure if it was already reported, but I have a really simple code that PICO-8 seems to not like at all.
I was doing some test with SSPR, and every time I try to run the cart, PICO-8 just crash.
I'm probably doing something really wrong, but that should not crash PICO-8 :D
Here is the code:
function _update() end function pset256(x, y, c) local sx = (c*2) % 128 local sy = flr((c*2) / 128) sspr(x*2, y*2, sx, sy, 2, 2) end c = 0 function _draw() cls() for x=1, 64 do for y=1, 64 do pset256(x, y, c) c = c + 1 c = c % 256 end end print(time(), 1, 1, 0) print(time(), 0, 0, 11) end |
Interestingly, it seems to "work"with the current web version (at least it does not crash and print the time)
So, I'm currently learning how to make games with Pico-8. Yeah.
I used the Cave Diver tutorial in a zine made by @MBoffin
You can find the zine here: https://mboffin.itch.io/gamedev-with-pico-8-issue1
With all that said, I might return to this eventually, but who knows at this point.
However, I would appreciate some feedback and I might consider them for future games.
Thanks and I hope you enjoy this Flappy Bird derivative. Hehe.
Binario is an implementation of the puzzle by the same name, invented by Adolfo Zanellati. I know this game from the Simon Tatham's puzzle collection, as it's one of my favourites. The algo to create the levels is bad, basically a less than brute force but still pretty brutal, and it takes many tries for the higher levels.
Mouse is supported and makes everything better, but it's still possible to play with key controls too.
I added a clue system to make it more engaging. I wanted to add also something like a timer that would fill up and down according to the moves and the state of the game, but finally decided against it since it wouldn't really add too much and probably no one will play this version anyways. It was an entertaining exercise in Pico8, and hopefully someone finds it interesting.
P8C-BUN
Help your chosen bunny cover each level with poo then escape down a rabbit hole. Don't get caught by the fox or anything else that's out to get you!
Finish all 16 levels without restarting to achieve "Iron Bun" or just try to post a high score. Start at whatever level you like.
Controls
- Use the d-pad/arrow keys to direct your bunny.
- z/c/(O) to show where you haven't pooed yet.
- x to paws and return to the title screen.
- You can toggle the music or return to the title screen from the menu as well.
Tips
- The buns will keep running in the direction you choose until there's no clear path in front of them so there's no need to hold down the arrow keys.
Skelliwags have taken over the graveyard and its up to Willo to kick them out!
Help little Willo sneak around, go 'woo', blow out candles and get up to all sorts of spooky stealthy fun in this short stealth'n'spook-em-up
Featuring
- 8 action packed graveyards to spook about in
- MGS style ranking system, can you get all 8 platinum medals?
- Skelliwags, floating eyeballs, tombstones and occult pentagrams
- One adorable little ghost, Willo
Game by @danhowardgames
Music and SFX by the outrageously talented @gruber_music
Here's a pretty minimal implementation of Conway's Game of Life for PICO-8. It has a basic performance optimization (it only updates the active area of the grid), and you can see the active area adjust by setting dbg=true at the top of the code.
That said, it gets pretty slow pretty quickly for larger simulations.
You set up the grid as follows:
Arrow keys -- move the cursor around.
Z key -- toggle a given cell to active/inactive.
X key -- start / stop the simulation.
If you're unfamiliar with the Game of Life, google it :-).
An easy starting point for a cool pattern is a ten cell contiguous row (10 connected horizontal cells).
There are better PICO-8 Game of Life carts, but I had a lot of fun making this.
A little persona battle system concept I worked on as part of a school project, I may expand it later with different enemy types, more items, and maybe XP
Use the arrow keys to scroll the menu
Z to select
X to go back
You begin with 60HP, 30SP, and 3 medicines
Enemies have a chance of dropping a medicine after defeat
See what streak you can get!
This is an implementation of the function described on this short paper:
https://arxiv.org/abs/2010.09714 (twitter thread)
It is amenable to tweeing/easing in games. I have programmed easing functions in the past and one of the problems about them is that you need to code "families of easing functions":
(That's from tween.lua, if you are curious).
I like this function because it can aproximate all of the "smooth families of functions" on that graph (all except the "back", "bounce" and "elastic" families) with a single function, plus it adds an infinitude of variants. Not bad for ~66 tokens.
I decided to make a Tweetcart today and it ended up being a simple little Jack-o-Lantern generator, but I found it entertaining enough to watch that I figured I'd release it here for y'all too!
There's no controls whatsoever, it just periodically generates a new pumpkin. The quality of the expressions varies but overall I'd say they come out remarkably well.
I'm working on a collision routine for pixel based movement (not grid movement). There's no jumping, it's a from-above perspective:
if btn(⬅️) then if intersect(pl.crect1,cage_crect) and pl.crect1.x>=cage_crect.x+1 then pl.x1+=1 end pl.x1-=1 end if btn(➡️) then if intersect(pl.crect1,cage_crect) and pl.crect1.x<=cage_crect.x then pl.x1-=1 end pl.x1+=1 end if btn(⬆️) then if intersect(pl.crect1,cage_crect) and pl.crect1.y>=cage_crect.y+1 then pl.y1+=1 end pl.y1-=1 end if btn(⬇️) then if intersect(pl.crect1,cage_crect) and pl.crect1.y<=cage_crect.y+cage_crect.h then pl.y1-=1 end pl.y1+=1 end |
This seems to work OK, but I am not sure how to adjust it so that the player can move along the object, e.g. bottom of player intersects top of object rect, and if player holds down+left the player should still move left. As it is, my code won't register anything other than the opposite direction after the initial direction that caused the collision. I had a quick search for collision examples but didn't find anything that met all my criteria (pixel based + uses collision rects, not tiles). Anyone have any pointers?