Does anyone know how to change the keyboard bindings in the HTML export?
I want to change the default key controls so that the keys are more natural for my game than the defaults for one and two-player play. Is that supported? In which file are the key bindings specified?
A collect-em-up action game for one to four players.
Escape the maze, eat tomatoes, collect treasure, don't fall in the water, and don't get squishd by the side of the screen.
- One-player or same-screen multiplayer for up to four players
- Five different zones in one huge scrolling map
- Persistent hiscores
- Team and individual hiscores
- "Coop-etetive" multiplayer gameplay: you have to work with the other players to have a chance of getting the individual hiscore
The players control "tetrapods", trapped in a maze. The view scrolls randomly, and you must stay on screen to survive.
The maze contains tomatoes and treasure. Collect them to score points.
After two minutes in the first zone, you will enter the second zone. There are five zones in all, each with different challenges. The scrolling gets faster as you progress through the zones, and the time in each zone gets shorter. After the fifth zone, you will reach the exit. Move onto the exit to escape the maze. In a multiplayer game, all players must escape the maze to win the game, and players earn a bonus if they escape the maze before other players.
You lose a life by being squishd by the side of the screen or by falling into water. Each player has three lives. The game ends if any player loses all their lives.
Extra lives are awarded to a player when they score 500 points, then 1000 points, 2000 points, and so on. There are a few collectible extra life items in the maze, but they are hard to reach. Will you risk trying to grab them?
Tomato: 1 point
Silver coin: 5 points
Gold coin: 10 points
Gemstone: 50 points when the gem is the same colour as your character, otherwise 20 points
Escaping the maze (multiplayer games only): Bonus, calculated as the average score of all players who have not yet escaped.
Hiscores are recorded separately for one-player, two-player, three-player and four-player games.
In multiplayer games, the entire team earns a score, calculated as the average of the players' scores. You can win two hiscores: the team hiscore and the individual hiscore. The individual hiscore can only be won when the team has won the team hiscore. Until the team has achieved the team hiscore, players must cooperate to push up the average score. When the team has the team hiscore, a flashing star is displayed at the top of the screen. At this point, players no longer need to cooperate and can go all out to win the individual hiscore.
On the title screen:
- Each player: press 🅾️ on their controller to join or leave the team.
- All players: having joined the team, hold down ❎ to start the game.
In the game:
- Use the direction buttons to move your character.
- By default your character runs while you hold down a direction button.
- Hold the 🅾️ or ❎ button to "creep" slowly by a single step for each press of the direction button. This is useful when negotiating tight passages or making risky manoeuvres near the edge of the screen.
On the game over screen:
- All players: hold down ❎ to return to the title screen.
The pause menu has options to:
- turn the music on and off
- clear all recorded hiscores
- abandon the current game and return to the title screen
Squishd! is inspired by the classic 8-bit game Splat!, but is not a remake.
2: Fix wrong sfx played when collecting own gem
1: 1.0 Release
- show bonuses earned for collecting gems and exiting maze
- make the lives display in HUD easier to read
- nicer animation when exiting the maze
0: Beta Release
Hi. The W and S keys are close together and I find I often hit Control-W (quit) by accident when I mean to hit Control-S (save), and therefore lose unsaved work.
Could Pico-8 prompt before quitting if there is unsaved work? Similar to how it prompts to overwrite files when you save or export?
Your ship has stopped in deep space to perform repairs. The crew are on a spacewalk when suddenly predators warp in from hyperspace. Save the crew!
Frantic shoot-em-up action inspired by 8-bit classics such as Uridium, Defender, Robotron, Asteroids and Thrust.
The controls are explained on the title screen.
You'll get a higher score the more risky your play:
- fly fast to get a score multiplier for each kill
- the bogies evolve to more dangerous forms that are worth more points
- you can earn big points by rescuing crew members far from the ship
There are four different ships. You'll encounter new challenges on later missions, and need to adapt your tactics.
You can also speedrun each level – your time is shown in the level complete screen.
The music is by @Gruber.
How high can you score?
The bogies warp in near your ship in waves and follow fixed paths around the ship scouting for prey.
If you learn the patterns of waves and paths you can pick off the bogies with ease while they are scouting. It won't get you high scores, but you can speedrun the levels that way.
The faster you are travelling when you fire a shot, the more points you earn if the shot hits a bogey. But be careful. On higher levels, you can collide with the ship's superstructure. While your pod is pretty robust and bounces off at low speeds, at high speed collisions damage your pod.
Collisions with bogeys also damage your pod. You don't get any points for colliding with bogeys.
The "turret lock" lets you strafe the bogeys at high speed with less chance of collision.
If a bogey reaches the end of its path, it starts hunting the crew. It's body flashes between yellow and green, and it moves faster. You earn more points for taking out a bogey when it is hunting than when it is scouting.
When a bogey reaches the crew member it is hunting, it abducts the crew member. It then flies away from the player. It moves quite slowly when carrying an abducted crew member. Bogey's carrying an abducted crew member are highlighted as red blips on your pod's radar.
You can free the crew by shooting the bogey. Your shot propels the crew member in the same direction. Shoot from the right angle, and your shot will propel them back onto the deck of the ship.
If you shoot them in the wrong direction, they will float off into space to their doom.
Your only hope then is that another bogey will abduct them before they run out of air.
They can only land on the deck of the ship, not on the machinery and piping.
When a crew member lands on the deck, you get bonus points. The further they travel, the more points you get. One method to earn high scores is to let aliens carry your crew members far from the ship before freeing them. But leaving it too long is risky -- it's harder to direct the astronaut back to the ship, the alien might merge with the human before you shoot it and mutate into a more dangerous form, the freed crew member might run out of air before reaching the ship, or another alien might abduct the freed crew member again while they are floating in space. And in the meantime, other aliens are attacking the crew members still on the ship.
You've got to walk a tightrope between risk and reward to earn top scores without the whole situation collapsing into chaos.
1.0 - first public release
1.2 - Fixed colours of cart image in splore browser
1.3 - Improved appearance of ship in response to player feedback
The export command and the -export command line option do not flatten #includes when exporting a .p8.png file. A cartridge exported from a .p8 program that uses #includes cannot be run.
On the Mac, when Pico 8 is running when the Mac hibernates, after I un-hibernate the Mac Pico-8 no longer plays sounds. I have to restart Pico 8 to get audio working again.
I'm using MacOS Catalina 10.15.7 and Pico 8 0.2.3
My entry for the TweetTweetJam 4 game jam -- a game that fits into two tweets. The code for this game is 559 characters.
- Avoid the green meanie.
- Shoot it to score points.
- If you miss, the walls close in.
- Move: arrow keys
- Shoot: X while moving
What's the highest score you can reach?
Escape from Vandermonde by finding your way through the passages to the teleporter. Avoid the robots that patrol the passages or program them to help you.
There are 14 levels of exploring, puzzle solving and action, all intertwined on the one large map.
Gameplay is introduced within the game. You can choose any level to play at the title screen. However, to beat the game you have to play all the way through from level 1.
A physics-based puzzle game with fifteen levels.
Guide the ball around obstacles, to the target.
On the title screen, use the arrow buttons to select a level and O or X button to start play. You can quit a level and return to the level select screen from the pause menu. Gameplay is explained by in-game instructions.
Scoring is like golf: the fewer shots required to hit the target the better. Best scores and times are persisted.
Levels can be played in any order. However, earlier levels introduce game elements used by later levels.
If you're interested in designing levels, let me know in the comments and I'll write up how to activate and use the level design mode.
A board game.
The goal is to trap the other player on a single square.
On each turn, the player can move their piece one square, causing a hole to appear beside their opponent, or jump their piece two squares (possibly over a hole), leaving a hole where their piece was.
There are different options for play:
- two player, one controller (pass the controller back and forth between turns)
- two player, two controllers (each player has their own controller)
- one player, easy AI
- one player, challenging AI
You can choose from a number of board layouts. If you download the cart is easy to add your own board layouts with the sprite editor.
In the menu, use the direction buttons to move between menu entries, and the X and O buttons to cycle through the options of menu entry, or perform a menu action.
In the game, use the direction buttons to move your piece, or hold down the X or O buttons and use the direction buttons to jump your piece. Use the pause menu if you want to abandon a game and return to the title menu.
Gameplay screen shots:
Drawing a board layout in the sprite editor:
I'm loving coroutines -- they make it so easy to write complex animations and user interactions. But without error stacktraces, debugging them is a nightmare. What's the plan around this? Can we expect a new version of Pico-8 with better error reporting from coroutines?
Rocket Rivals, a one-button multiplayer game of brinkmanship.
Each player has a single control button that controls their thrust. Players earn points by flying higher than the other players, but lose everything if they hit the laser beam top of the screen.
Each match lasts one minute.
You can choose active players and their characters on the title screen (at the moment only controller 1 navigates the menu).
- uses @electricgryphon's fast triangle drawing function
Each ball is drawn in the same colour (brown) but it appears red, green or blue depending on which colour stripes are drawn over it.
Inspired by an image shared on twitter. (See https://twitter.com/testingham/status/1139558284631789568)
I thought i'd see if pico-8 can create the illusion even with its limited palette. The answer is: yes it can! :-)
And unlike an image, in pico-8 you can read the source code to confirm the illusion acts as stated.
I’m trying to print text centred around a point.
At the moment my code offsets the x coordinate by half the width
of a string in pixels, calculated as
This works fine for
alphanumeric text but is wrong when the text contains glyphs.
Is there a built in function to help achieve this?
Or do I need to examine every character when computing the pixel width of the text?
An arcade/puzzle game that will challenge your reactions and your wits.
Tap the bubbles that contain a divisor of the number shown at the top-left corner of the screen. When you've tapped them all, the number will increase and more bubbles will appear.
But time is running out. A wrong tap will cost some time. A successful tap will gain some time. Can you get to 100?
This game uses Pico-8's mouse/touch input.