I may have a non-standard definition of fun...
Disclaimer: I'm fully aware that this is quite likely a completely useless little utility as far as PICO-8 development is concerned. I just like writing this kind of thing just for fun. But if you do find it interesting or useful, let me know!
This is basically just a function which allows you to create curried functions—which I attempt to explain below if you're unfamiliar with them—which can be partially applied in a natural way in Lua. I'm not sure why it took me so long to write this since it's just a rip-off of my python implementation of the same thing.
Anyway, here it is on github or you can copy/paste the code from the example.
Example
Here's a simple little proto-game thing which I stuffed full of as many curried functions as I thought I could reasonably get away with. Not gonna claim that it's the best—or even good—way to organize a game but I think it does an okay job of showing how to use partial application as a sort of dependency injection/data encapsulation.
I am getting different results when invoking code in the console as opposed to calling it from inside a running program. The code overrides the default behaviour of the cos function.
pi=3.14159 two_pi=pi*2 -- override cos to work with radians p8cos = cos function cos(rad) return p8cos(rad/two_pi) end -- degrees to radians function d2r(d) return d*two_pi/360 end -- this test works (cos(45 deg) => 0.7071) function _draw() cls() print(cos(d2r(45))) end |
I then run the code, observing correct results (0.7071).
Invoking this from the console however: print(cos(d2r(45)))
prints different results (0.2206).
Are function overrides ignored in the console?
MANIC CTF
Controls: Player 1 - Cursor Keys Player 2 - ESDF |
A simple multiplayer button-mashing game where the aim is to capture the flag from your opponent and hold onto it for the duration of the round.
If the flag is dropped, just run over it to pick it up.
If your opponent has the flag, run into them to steal it from them.
A player must hold onto the flag for a total of 15 seconds to win the round, and the eventual winner is decided by 2 round wins out of a possible 3.
Starting positions are randomised each round.
This is a game I made for the Global Game Jam 2018 on theme "Transmission", but I never posted it here. In fact, it's the first cartridge I'm posting on the BBS.
I wanted to improve it before uploading it, esp. add keyboard-only controls, so that users can play it on a micro-console without mouse... But I never got the time, so I prefer posting the current version here, so at least you can try it on PC or mobile device (using touch for mouse + gamepad overlay).
Concept
REORDERED is a puzzle game inspired by the concept of out-of-order delivery in computer networking. The player must reorder the letters of a message sent from an antenna to another to form another word.
Dodge to destroy as many rockets as possible and collect coins as long as you can
Use Left and Right Arrow keys to control the plane
Update 2.0
- More planes to unlock
- Better enemy spawn
- Sky background
- Each coin is now equal to 5 points
Update 2.1
- Added enemy spawn indicator
- Bigger sky background
- Increased the volume of background music
- Changed where enemy spawns to nerf all the strategies that were ruining the game
- Added funny death messages
- 🥚🐇
I'm starting a tutorial on how to make your a Shmup in Pico-8 from scratch! It's for complete beginners.
The goal is to make a basic Shmup first and then slowly turn it into an AWESOME shmup!
New episodes on Wednesdays and Saturdays. I will use this thread to keep a list of the episodes and post significant progress. Let's gooooo!
Episode 2 - Moving Stuff
Episode 3 - Controls
Episode 4 - Shooting
Episode 5 - Animation
Episode 6 - Health UI
Episode 7 - Starfield
Episode 8 - Animating Stars
"If I had a dollar for every kobold I put in the blender, I'd be making money in a very weird way."
-- Mitch Hedberg, approximately
CW: Cartoon sadism. (Consensual!)
A friend of mine is really into kobolds and kind of a masochist, so I made a game where you put kobolds through the blender and drink it. There aren't really any mechanics, but it pretends to be a management sim because I think that's funny. Have fun!
Nyeo
(Soundtrack: Piano Sonata No. 1, Carl Maria von Weber)
PS: To those who liked this game, there's now a sequel!
Lander
I wanted to try out physics in PICO-8, so I made this!
A short minigame about landing a spacecraft on a planet.
Use left and right to move sideways, and circle to use your main engine.
There is also a brief tutorial to let you get used to the controls.
I'll release this on itch.io soon!
Changelog
- V1.0 - Initial release
- V1.1 - Made landing transition smoother, score no longer counts on collision
Hey !
You may have already heard about virtual sprite from Poom devlog ( @freds72) and one high memory implementation from @pancelor. Here is my take.
As a reminder, the principle of virtual sprite is to have a kind of "palette of sprite" which allow to draw more sprite than the 256 native built-in ones.
The cartridge contains 4 PX9 compressed spritesheet that are unpacked when the cartridge boot. Then a bunch of benchmark are launched to test the LRU Cache with differents configurations.
Implementation overview
I implement two types of LRU cache and a benchmark to challenge implementations. With LRU cache, the oldest sprite are replaced by the new ones when cache is full. Easier to say than to do ! To keep track of sprite age, I use an queue, implemented with LUA tables.
Hi!
I got some inspiration from Tetris and Minesweeper and made the demo:
My English is not very good, Google Translate is mine sweet. Let her say the rules:
1.Dice can only be placed next to the green line and other dice
2.press X to place or press Z to hold one dice.
3.A full line will be eliminated.
4.Whenever there is an increment or decrement in the row or the same side by side (great than or equal 3) you got 10 * n point.
5,"Metronome" will remaind you that your nexts is "tainted". There are dice with no points in the row, this row has a score of zero.
6.The higher the score, the faster the metronome.
7.score/dice is more important ...score.like KD?
Dig Deep
https://scottnm.itch.io/dig-deep
The Story
You've just discovered a precious family heirloom has been buried deep underground at an ancestral site. In 24 hours, a construction crew is coming to pave the site and turn it into a parking lot. Hurry! Recover your legacy or it'll be lost forever.
Controls
Left/Right/Up/Down - Move O - Dig X - Use Item |
Credits
Scott Munro | Design, Programming | [Github] :: [Site] :: [itch.io] |
Tim S Davis | Design, Narrative |
Dark Descent
Would love to hear your feedback
Gameplay
Move with arrow keys, attack with Z, pick up/switch weapon with X.
To win, defeat Diablo (boss of Room 6 of Act 6).
Weapon stats are: Power (damage), Reach (length), Speed (delay before strike) and Weight (delay after strike).
Weapon rarities are: Common (grey), Rare (blue), Epic (pink) and Legendary (Yellow).
Pay attention to spike traps, and be careful around statues!
Version 0.1 Changes:
- Reduced speed of elite enemies in later acts
- Added menu and victory/defeat screens
- Implemented score system
- Player will no longer spawn on top of enemies/walls
- Weapon swing flashes now properly match their hitboxes
Planned features:
- Music
- Different abilities for each weapon type
- Weapon upgrades
- Monster abilities
- Random names for acts and bosses
Credits
@Yolwoocle for smooth player movement system from Birds with Guns
Members of Pico-8 discord server for all sorts of help
A little pong-like game! Your basic goal is to keep rallys going, by controlling both paddles! (One paddle moves up, the other moves down. Move the paddles with the up and down buttons) You start with one ball, but the number increases from there. If you lose a ball, your score gets halved. The balls may also not move quite how you expect! Try to get as high of a score as possible.
VERSION 1.1: Only 3 balls can exist at once, and changed score mechanics (when score is bigger than 10, when a ball is lost, you lose 5 points instead of half)
Does anyone know if there is a way to exit early when a print command is running with the \^d
p8scii special command that adds delay frames in between each character?
I'm in token crunch mode and realizing this new special command could be extremely handy for easy RPG-style printing delay with zero code in certain situations, but if there was a way to exit early, it would be even more useful!
And if this is not currently possible, consider it a feature request :p