It's Factorio meets Scrabble!
Click Buttons. Spell Words!
I'm planning to add more levels (currently 12) and additional mechanisms.
This is my first attempt at a complete PICO-8 game. Any feedback or suggestions welcome!
Roadmap
- copy/paste level strings (so players can create levels)
- new mechanisms (pistons, timers, sensors)
- more levels
- mouse support
Changelog
0.0.4
- added level select/progress save
- improved navigation between buttons
- added diverter tile
- added two new levels
Pattern Playground lets you select and modify the fill patterns and colours of various shapes in a set, see the rendered results, choose a combination that you like, and output its values to the console.
It helped me get a better grip on patterns while working on some other yet to be released project.
Instructions
Selection / Editing Contexts
- Set (as in, a grouping of shapes) selector
- Object (as in, shape) selector
- Current object (base) colour selector
- Pattern editor
- Pattern on-bits colour vs. transparency toggle
- Pattern on-bits colour selector
Controls
- U/D/L/R to navigate across and within contexts
- [X] to toggle/select
- [Z] to print current set object patterns and colours to console
Sets
Mixed
Prairie
Mars
Unleashed
Infinite runner where you play as a dog getting chased by its owner. The further you get without getting caught, and the more bones you collect along the way, the higher your score. As simple as that.
Demo
How to play
- X/Z to jump
- Up/Down arrows to move
About the game
This is the first game I make for this console, and its development has had quite a lot of changes of direction, so I am not super happy with the final result, let alone the code, which is a total mess. Nonetheless, this has been a super fun challenge that has made me appreciate how incredible this console is and how talented the developers making games for it are. Making this game was a blast!
This is a game I've been coding for a bit, Linecraft! This is my first and biggest demake (though I've been working in other non-published projects before) so I'm very excited that other people will try it!
Also, I'll keep it updated, so if you find any bug, leave it down below on the comments! I'll check them out and fix them in the following versions.
The sounds and music were made by Munchkin (thank you :D) and the code and graphics were made by me.
Thanks to kallanreed for his tline rotation function I used for the splash text in the game.
And also thanks to Felice for their implementation of the OpenSimplex noise generator on PICO-8 that I used for the world generation in the game. The code may look a little different in my cart, but that's due to changes in development (back when I thought this game could be made in a single cart!).
The blocks will fall forever. Run, wall-jump and climb as high as you can before you're crushed or trapped! Unlock more levels by reaching certain heights, and collect coins to unlock hats! Later levels introduce greater challenges and new block behaviors where you will need to develop unique strategies to succeed.
Try the first three levels to master your tower climbing in the free version!
Purchase and download the full version at itch.io!
The full version has 9 more levels and 16 more hats to unlock.
CONTROLS:
Keyboard:
- arrow keys to run, climb, and change levels in the title menu
- the 'Z' key to jump or start a level from the menu
This is a hard action-platformer fangame based on the Murder Drones indie animated series by GLITCH.
You play as a new disassembly drone that has to complete his training in a virtual environment.
Controls
- Arrow keys to move.
- [X] to flutter.
- [C] to shoot and detonate rockets (when available).
- [↓] to perform a dive maneuver.
- [Enter] for additional options.
Credits
- Autopawn (Discord: autopawn)
- Remi Mixer (Discord: remimixer)
- Crjönch (Discord: crjonch, Twitter: @Slimyappraisal)
- Miszuk (Discord: miszukuwu)
Hi, I was experimenting with a way of making a multiplayer game on Pico-8 (on different cartriges to have more screen space).
So I was looking for a way to communicate from the cart to the host OS, I know it's possible to inject and retreive data on the web exports with javascript but I'm trying to find a way to do it localy .
I have tried that code:
cls() i_channel=0x804 o_channel=0x805 input='' output='' function _update() local nb=0 repeat nb=serial(i_channel,0x8000,0x1000) for i=0,nb do input..=chr(peek(0x8000+i)) end until nb==0 if (btnp(⬅️)) output..='⬅️' stdout('left ') if (btnp(➡️)) output..='➡️' stdout('right ') if (btnp(⬆️)) output..='⬆️' stdout('up ') if (btnp(⬇️)) output..='⬇️' stdout('down ') if (btnp(🅾️)) output..='🅾️' stdout('𝘰 ') if (btnp(❎)) output..='❎' stdout('𝘹 ') end function _draw() print('\^rf'..output,2,2,7) print('\^rw'..input,66,2,13) end function stdout(str) for i,c in pairs(split(str,'')) do poke(0x9000+i-1,ord(c)) end serial(o_channel,0x9000,#str) end |
it uses the stdin and stdout of the cart to read and write into files when called like this:
> pico8 < input_file.txt > output_file.txt -run mycart.p8
The problem I ran into is that I can't use the same file for the input and output.
My best attempt was to use a pipeline to redirect the stdout of a cart to the stdin of another one like this:
> pico8 -run mycart.p8 | pico8 -run mycart.p8
The problem here is that a strange thing is happening, the first cart boots and works fine but the second one freezes until the first one is shutdown. Then it works as intended, I get the output from the first cart. But I am not able to make the to instances of the cart run at the same time and communicate.
Any idea how to pull it of ?
If you use the command line to set the value of a variable and then attempt to select a pause menu option where menuitem's callback function returns true (that is, an option that's supposed to keep the menu open after selecting), the game crashes with the message "attempt to call upvalue '_superyield' (a nil value)"
This is a retexturing of Captain Neat-O in the Time Nexus by @paranoidcactus, done by my little brother. He wanted to show it off. Get to the final boss to see who it is! :)
A tool to help with print debugging based on the Python package IceCream. There's already a Lua version of IceCream but it won't work with Pico-8/Picotron as far as I know. I've called it db
for debug rather than ic
but it's very similar in concept.
You can download the code here or copy/paste below:
db.lua [hidden]
---------------------------------------------------------------------------- -- print debugging based on IceCream for python -- pico-8 lua version by jason delaat do local ignore = {} local lookup = _ENV for k,_ in pairs(_ENV) do ignore[k] = true end local function format_arg(value, env) for k,v in pairs(lookup) do if v == value and not ignore[k] then return 'db: '..k..'='..tostr(v) end end return 'db: '..tostr(value) end local db_meta = { __call=function(self, value, log) if db.display and log then print(log) elseif db.display then print(format_arg(value)) end return value end } db = { display = true, local_env = function(t) lookup = setmetatable(t or {}, {__index=_ENV}) return lookup end, reset_env = function() lookup = _ENV end, wrap = function(f) local fn = sub(split(format_arg(f), '=')[1], 5) _ENV[fn] = function(...) local log = 'db: '..fn..'(' local result = f(...) for a in all({...}) do log ..= tostr(a)..',' end log = sub(log, 1, -2) log ..= ') --> '..tostr(result) return result, log end end } setmetatable(db, db_meta) end ---------------------------------------------------------------------------- |
\
Hello everyone!
I bought PICO-8 some time ago but only recently decided to actually learn it.
One (of many) thing that got me a little confused is the order and speed execution.
The code below shows the text on screen:
function _update() cls() print("hello",64,64,11) end |
However, if I change the code as bellow, the text does not show anymore:
function _update() print("hello",64,64,11) cls() end |
What I got from this is: on the second code, since the last command being processed is the cls(), then the screen ends up 'blank'.
But what makes me confused is that I thought since pico-8 runs on an endless loop the cls() and print() will always be called one after another, so I don't understand why in one order the print() is the 'final' and in the other, the cls() is.
Can anyone help me understand this better?
I couldn't find anything that explained this behavior (maube because it's too basic, but since I'm new to this it doesn't make sense to me).
Picket Puzzle
Trailer
The picket line swells as factory after factory walk out on strike. For the exploited and the oppressed of the world, this is the moment -- but time is short. The arms of the state are mobilizing to halt your advance. Can you lead the workers to victory?
As strike captain, you must learn how to overcome obstacles, deal with police blockades, seize government buildings, and win the army over to your side. Brute force will not work here, instead you must think clearly and creatively to succeed.
Once you've started on the road of revolution, there's no turning back!
Gameplay
Unique snake+sokoban puzzler with lots of clever mechanics in the mix:
- Factories add workers to the picket line
- Soldiers can be won over to your side, but only when surrounded
- Police block your path unless you have enough workers to push them back
- Radio Towers take control of the enemy troops - for just one step
- ... and more!
- 40 levels that challenge your creative puzzle solving skills.
- Forgiving design: turn-based gameplay, play levels in any order, infinite undo.
Stuck or confused? Here's a manual explaining all the mechanics: https://docs.google.com/document/d/1-xpxwokgk4aULF7_pv95NIb4ZjaCMkbPgcJhC0xAQh8