I know a lot of people have posted functions for drawing cubic bezier curves, but I'm tossing my own into the pot because why not. Just skimming threads, it feels like most people use pset() to draw them pixel by pixel; this one uses line() to draw them segment by segment.
Some animated gifs, because they're fun:
To save you digging into the cart, here's the two versions of the algorithm I'd recommend, based on my testing. If you want to see how fast they run, there's a pause menu item in the code that draws sets of 5000 random bezier curves with a bunch of different algorithm parameters in two sizes - 16-pixel square bounding box and 128-pixel square bounding box - and adds up the total CPU needed at 60 FPS.

DJ Deci
Something is awry at December Village.. Everyone is unhappy; Record time blues!
It's up to Deci to run around and use her boombox to cheer everyone up!
Talk to villagers and find songs to play, Or just take a nap that's fine too.
Kinda a mess and experimental but hope it's chill. Happy holidays!
Made for advent calendar 2022
Soundtrack listenable at: https://youtu.be/hrpIz5LfEbw

Made by SmellyFishstiks
Sound help from TheTomster and bikibird
Snowbert physics help from Chewy

A little holiday puzzle game!
It was kinda rushed in 1.5 weeks to be done before christmas, so it may have some bugs...
I think perhaps I could have developed some ideas and made some more advanced complex puzzles, but that will be for a possible sequel or update.
Hope you enjoy anyway! Happy holidays!





--init t,f,b,w,h=tonum,flip,btn,128,128 w,h,x,y,y0,y1=w/2,h/2,0,0,0,0 r,s,l,dx,dy=3,w-5,20,1,1color(7) --update while abs(x)<w do x,y=x+dx,y+dy y0,y1=y0+t(b(3,1))-t(b(2,1)), y1+t(b(3,0))-t(b(2,0)) dx,dy=(x<r-s and abs(y-y0)<l or x>s-r and abs(y-y1)<l)and-dx or dx,(abs(y)<h-r)and dy or-dy --draw line(w-s,y0-l/2+h,w-s,y0+l/2+h) line(w+s,y1-l/2+h,w+s,y1+l/2+h) circfill(x+w,y+h,r)f()cls()end |
Building a PICO-8 Beatemup part 1
Introduction and Aknowledgements
Hello and thanks for reading. This post will be an explanation of the basics of my Ninja Turtles beatemup engine. I'm going to try and explain every single step along the way so this will be a fairly long post. You should probably have some familiarity with basic development but I'll make this as understandable as possible across skill levels.
This blog post obviously owes a lot to a lot of people but much of this specific workflow was derived from these two posts:
and
Using _𝘦𝘯𝘷 in PICO-8 by slainte.
Please read both if you have not. Neither is a prerequisite, but you'll be glad you did.
Help Wanted
I’m not a programmer by trade so I’m looking forward to learning from the community by explaining what I’ve created to people who are smarter than me, and receiving feedback on improvements. I hope this helps anyone along their own path. Please feel free to use this code or anything you find in any of my stuff, really. I'd love to play your game some day.

Changelogs v2.0
- Added difficulty level selector.
- Adjusted velocity of asteroids according to size of asteroids: bigger asteroids will be slower, and smaller will be faster.
- Now all asteroids will always have, relatively, equal sizes at the start of the game.
- Added counter of total destroyed asteroids.
- Added stats of number of destroyed asteroids.
- Randomize color of the ship.
- Added music.
Edit: desactive key binding for reset best time in game over screen as can be easily pressed by mistake in mobiles.
Music
Song "space" from Pico-8 Tunes Volume 1 by @gruber_music. See https://www.lexaloffle.com/bbs/?tid=29008



Version 1.1 of Undertale fangame Knifetale.
If you find any bugs, exploits, or impossibly difficult attacks, tell me and I'll fix them
Hope you like it!
please make better sprites for me if you want mine are garbage
Changelog:
changed quite a few attacks
reduced token count by a lot
made cherry soda work
changed main menu
increased hitbox size for sans and legendary heroes
legendary hero odds changed, adding more attacks shouldn't change the spawn chance
installed windows (in corridor)
prevents attacks from happening twice in a row
gaster blasters spawn cooler
you actually stand on platforms and don't just fall in place
some bugfixes. don't ask me what i don't remember










Hello, I am trying to pass my player.score variable (an int from 0 to wherever), using GPIO.
I have been using poke2(location, player.score) and then reading to the browser using pico8-gpio-listener.js library by Ben Wiley.
However, my player.score maxes out at 255 and then resets to 0. This doesn't seem right so any help would be appreciated. The player.score itself goes as high as I need it to, it's just when I use poke2() it limits to 4bits(?) I think.


Hi! You want to draw pixel art? You like puzzle games? You can't wait for Christmas? Well the game's for you! Solve puzzles by following clues on grids to draw pixel art that'll turn onto Xmas-themed patterns. Each solved pattern is saved and retrieved in following sessions.
Xmas Patterns is part of the Twelve Days of PICO-8 Christmas 2022 you'll find there: https://www.lexaloffle.com/bbs/?tid=50644
The game lacks a proper ending and some other bits I'm probably the only one to know. Despite two months of work the game's never looked like it wanted to be finished. It's sorry about that and hopes you'll like it nonetheless.




Hi Zep! :) I think I found a bug in one of the more esoteric stat calls?
Bug:
According to the manual, stat(56) should return the number of ticks played in the current pattern. Currently (0.2.5e), it seems to poll the leftmost sfx in the pattern for the count. That makes sense bc the overall pattern length is determined by the leftmost sfx which is not a loop, but as the title says, stat(56) will reset back to 0 early if the leftmost sfx is a loop.
Expected behavior:
stat(56) should return the number of pattern ticks played regardless of looped sfx
Thanks for your time! :)





Controls
❎ to smash
⬅️➡️⬆️⬇️ to move
Set-up
An ancient evil threatens the island nation of Japan. The League of Ninjas has pin-pointed the orgin. A small set of Southern islands, but how do you seal a great evil from crawling out beneath the earth? YOU NAIL THE EARTH DOWN!!!
Smash all of the stakes down through four rounds to seal the evil away, and achieve victory over said evil. BUT, be careful. Demons will try to prevent you from getting to this most holy goal.
Behind The Scenes






