Currently working on this mining game - happy to hear some feedback if you play :) Still a lot of work to be done and a lot of ideas in the pipeline.
Just gotta dig out some gems and sell them at the shop / upgrade screen to purchase consumable items and permanent upgrades. Your battery will recharge automatically and you will sell your gems automatically when you surface.
LADDERS and TORCHES are VERY IMPORTANT! Without ladders, you will get stuck. Without torches, you can not see where the gems are.
IF YOU GET STUCK, PRESS ENTER THEN "RESCUE" - this will reset your inventory and bring you to the surface
Currently you can dig down 200 meters. The rocks get harder to drill at 100m and below. More valuable gems are deeper in the mine.
You have 3 hearts currently. You lose a heart when you take fall damage. In order to take fall damage, you need to fall ~9 blocks (about the distance from your player to the bottom of the screen - so if a pit extends beyond the bottom of the screen, be careful!). If you lose all 3 hearts, you will be automatically rescued (lose inventory and placed on surface).
Controls
- Arrow keys move
- Z to select inventory item
- X to use item (hold to drill!)
- UP to interact w/ shops and teleporter
- ENTER>"RESCUE" if you get stuck
Upgrades
Visit the Upgrade Duck to get permanent buffs:
- Inventory Size: can hold more consumable items from the shop or gems you find in the world
- Battery Size: capacity of your battery. A larger batter allows you to dig longer without having to surface
- Walking Speed: how fast your character can move
- Drill Power: how quickly your drill can destroy blocks of dirt and free gems
Consumable Items Shop
Visit the Shop Cloud to get helpful consumables:
- Ladders: gives you 9 ladders to place in the mine. Very important for getting out!
- Torch: lights up a medium-sized area and exposes buried gems
- Light Bulb: lights up a very large area and exposes buried gems
- Power Pack: recharges 50% battery - can be found buried in the dirt sometimes as well
- Power Station: permanent building placed in the mine - will recharge your battery. Can place more than one
- Teleporter: permanent building placed in the mine - will teleport you to and from the surface. Can place more than one
Thanks for checking it out. Lots of changes still to come.
Changelog:
Simple Timers Service
Here is a Simple Timers Service that can manage multiple timed events -- feel free to use it in your games :D
How to use
This service is a Singleton and can be referenced with the variable "timer".
The service exposes 2 methods:
- timer:start( _frames , _callback )
- Simply start any number of timers, wherever you want in your code
- _frames: the number of frames to count down before executing the callback function
- _callback: the function to execute after the number of frames has elapsed
- Example: "timer:start(600,my_function)" -- this will execute "my_function()" after 600 frames have elapsed
- timer:update()
- Simply place this into the pico _update or _update60 function to allow the service to update itself each frame
- Note that update60 will cause the timer to "count" twice as fast, since it is counting down the number of frames
- The service uses this internally to iterate all of the timers that have been started in order to decrement each / execute callbacks as necessary
The code
In the cart, Tab 0 is the Simple Timers Service code. Tab 1 is a commented example of how to use it in your project. I have pasted the code below for your convenience:
Tab 0 - Simple Timers Service
--simple timers service --by buck young | professir timer=(function() local sts={ update=function(e) for i=1,#e.l do e.l[i].t-=1 if e.l[i].t<=0 then e.l[i].f();deli(e.l,i) return end end end, start=function(e,t,f) add(e.l, {t=t,f=f}) end, } sts.__index=sts return setmetatable({l={}},sts) end)() |
Tab 1 - Example Implementation
-- example implementation function _init() cls(0) -- start a timer -- from anywhere in your -- code. this code says -- "after 30 frames, call -- the 'green_screen' -- function": timer:start(30,green_screen) -- you can even in-line -- an anonymous function. -- this call says "after -- 60 frames, turn the -- screen red": timer:start(60,function() cls(8) end) -- you can start as many -- timers as you like, -- they are all managed -- within the service itself. timer:start(90,green_screen) end function _update() -- be sure to include this -- in your update function -- so the timers service -- can do its job: timer:update() end function green_screen() cls(11) end |
Many thanks to FReDs72 and merwok for some helpful discussions in the PICO-8 discord!
An alien abduction game with procedurally generated planets
ATTENTION, PLORBO! We require new critters from across the Universe for our intergalactic zoo, the Pride of Plorbia. You must venture to new, unexplored worlds to find specific critters that we beam to your Mothership and return them to us.
Controls
When controlling green ship:
- ARROW KEYS: move
- Z: boost
- X: abduct
When docked to Mothership:
- DOWN: undock
When out of energy:
- LEFT / RIGHT: control Mothership for a rescue
Any time:
- Press ENTER to VIEW THE ZOO or MUTE THE MUSIC
​In the zoo:
- Left/right to scroll
- Hold Z + left/right to scroll quickly
- X to exit zoo
How to Play
View the required head and body at the Mothership, then explore the planet to find a critter with both that head and body. Abduct it and return it to the Mothership. Do this a few times to visit the next planet. You can collect extra research points by finding critters with similar features, even if you do not find the exact match. You may abduct up to 5 creatures at once.
In between planetary visits, you will see the zoo with all the critters you have found so far. The zoo has some statistics listed - they will turn gold once you "complete" each stat.
Watch your energy meter (yellow meter above your craft). Moving, abducting, and boosting (especially) uses energy. Recharge at the Mothership. If you run out of energy and crash, you can control your Mothership to stage a rescue. Crash three times and thats game over!
External Links
I found a potential bug with INFO+RESUME pico console commands. If you RESUME after calling INFO and then try to interact with a custom menu item, you get the following error:
ATTEMPT TO INDEX FIELD '?' (A NIL VALUE) IN FLIP LINE 0 (TAB 0) AT LINE 0 (TAB 0) |
Example

Note: Ignore the second RESUME typed into the console after the program has already crashed
Sudden freeing of RAM after INFO+RESUME
Another curious thing is a huge RAM drop after INFO+RESUME (something getting GC'd that shouldn't be?). Notice the RAM display upon RESUME in this example (drops from 10% utilization to 7%):

Note: Ignore the second RESUME typed into the console after the program has already crashed
Steps to reproduce
- Load any cart with a custom menu item
- Press ESC and type INFO into the console
- Type RESUME
- Press ENTER and select a custom menu item
Chance of Rain
A slightly interactive and slightly meditative evolutionary pond simulation
Controls
- ARROW KEYS: control frog
- Z: surface/submerge
- X: tongue
- ENTER: options
Gameplay
This simulation is meant to be watched more than played (though you may interact with it by suggesting actions for the frog).
There are four types of creatures living in this rainy pond: a frog, fish, flies, and dragonflies. Enjoy watching them swim, fly, eat, die, and birth new generations. Flies birth larva into the water which swim towards the nearest rock, where they slowly mature and eventually sprout wings - becoming flies themselves. Well-fed fish will turn green and reproduce when near each other. Dragonflies swarm the lillypad to spawn new. Each parent passes genetic predispositions onto their offspring - which allows for behavior evolution over time. Creatures may die of old age or starvation. All the while, a happy frog swims about - ready to offer a guiding hand (or, rather, mouth) if one part of the ecosystem becomes unbalanced.
Occasionally, you may see some event-triggered haikus or tips to help you further enjoy and understand the game. Statistics about your world will also slide by from time-to-time (and can be triggered manually from the options menu). If your ecosystem fails or you lose a creature type, just keep playing - there are heavy storms that roll in occasionally to replenish your stock.
Every game has randomizations, so each experience will be unique.
DNA System
A DNA system has been implemented that allows parents to pass certain parameters onto their offspring. There is even a chance of slight genetic mutations for each parameter. Through this system, each species will actually evolve its behavior over time to be best-suited to its environment.
- Dragonflies pass on these parameters to their offspring
- speed, initial lifespan, threshold for hunger, starvation resistance, tolerance for rain, and others
- Fish pass on these parameters to their offspring
- speed, initial lifespan, threshold for hunger, and starvation resistance
- Insects pass on these parameters to larva which become adult flies
- speed, initial lifespan, swarming location, tolerance for rain, and others
Full "technical" breakdown of the DNA system:
Options
Press the ENTER key to adjust these options:
- If the text scrolls too quickly or too slowly, you may adjust your reading speed
- If you are returning to the game, you may disable tips to enjoy only haikus and stats
- If you want a more meditative experience, you may disable the text completely
- You may also manually prompt gameplay stats to scroll by. This will happen occasionally through normal gameplay, as well.
Creature colors
- Green: well-fed and fertile - will birth a new generation when a partner is found
- Red: starving - will alter its behavior to look for food more seriously
- Grey/Brown: getting old - will likely die soon
- Peach: just born!
Final thoughts
There is a ton of nuance and complexity to the system but my goal was to simplify the player's experience as much as possible. Furthermore, I wanted to expose as much of the game as possible to the player from within the game itself (hence the tips that scroll by). Creature lifespans can be as long 40+ minutes, so this game was definitely meant to be enjoyed in the background / as a virtual aquarium. Personally, I turn off all scrolling text and leave it on during the workday to observe the system over many hours. I hope you, too, find enjoyment in this experience :)
Itch.io Link
Versions
FINAL VERSION RELEASED! (10/29/2021)
- Version 9 will be the final update of this project, other than any future bug fixes or player suggestions
Click here for full change-log:
Stability Failing
A short story sets off a grand adventure of arcady, platform-hopping fun in an increasingly unstable world.
This is my submission for Ludum Dare 49, Theme: "Unstable"
Controls
Left/Right: Move character
Up/Down: Slow down or Speed up the platforms
Z/X: Jump
Note: you can press ENTER and SKIP TUTORIAL if you'd like to start the game at level 12
Gameplay
As the levels progress, various aspects of the game begin to breakdown...
(try to reach at least level 11 to see the full instability)

Spoilers:
Versions
External Links
How far can you get? Post your highest level reached in the comments :)
![]() |
[0x0] |
isol8: Build & Isolate
An original arcade game inspired by old-school games like Jezzball and Qix.

How to play
You must build horizontal and vertical walls in order to isolate the bouncing balls from each other. Once all balls are separated, you will proceed to the next level. If a ball collides with your wall while building, you lose a life. An additional ball is added each level, up to a maximum of 15 balls. Continue playing until you run out of lives and post your highest level reached in the comments below!
Features
- Play with either 1, 3, or 5 lives (Easy, Normal, Hard)
- Try "Endless" mode where you cannot die
- Restart current level in the pause menu, if needed
- Hand-chosen background color and ball color changes every 5 levels up to level 100
- After level 100, the colors are randomized every single level

Notes for developers
- A flood-fill algorithm is used to determine if the balls are isolated. Here is a super helpful resource on different implementations of flood fills: link.
Footnote
This game was originally designed for the upcoming Playdate device (crank to build walls). I have adapted it for pico8 as my first game on this console.
Enjoy!
Versions
- Version 3 | 08/25/21
-- Added indicator guide lines
-- Added alternate control scheme (Pause during game and press "Toggle Controls")
--- Toggles between default (X to build vertical, O to build horizontal) and new (Hold either X/O then press Up/Down to build vertical wall or Left/Right to build horizontal wall) - Version 2 | 08/22/21
-- Added music to the title screen - Version 1 | 08/20/21
-- Bugfix ball/wall collision issue - fix player position rounding error and additional wall overlap check - Version 0 | 08/20/21
-- Original release