
Let me explain.
I'm a new to PICO-8 (this is my first post actually) but not programming. I'm looking to develop games on PICO-8 to improve my programming skills. That being said, I'm following a tutorial to make a small breakout clone, and I've decided to give it my own flair in several ways, one of which is giving the ball a smooth animation when it bounces off of a wall or the paddle. It works swimmingly when bouncing off of a wall, and I was able to make it animate when bouncing off of a paddle by forgoing the tutorial and adding my own rudimentory collision detection. The collision detection isn't the greatest, but it works and I've gotten the ball to animate when bouncing off of the paddle in the past. Today, I decided to finish up the animation by making it only play when the ball is within a certain range of the paddle. As soon as I added this functionality, the animation stopped playing, as shown in the gif below (the animation of the ball bouncing is slowed down since it's an admittedly very small detail in normal game play)


Let's say I have an 8x8 sprite, like the one in my avatar. I want to manipulate that sprite as follows:
- Randomly position each non black sprite pixel outside the viewport.
- Move those pixels into the viewport to form the sprite.
I know how to do this with a whole sprite, but how might I achieve this effect with the individual sprite pixels? Obviously I'll need the following:
- Destination position of sprite within the viewport.
- The index position within the 8x8 grid of each pixel, offset from sprite destination position - e.g. x,y of sprite, then index of pixel within the sprite 8x8 grid.
Anyone have any ideas? I want this as a neat effect for spawning enemies at the start of each stage in a new game I an working on.





This is my remake of a long forgotten 68k Mac shareware game of the same name, originally created by Robert Chancellor. I've updated the rules from AD&D to D&D5e and added some extra items.
Aim
You play as Derek Silverhand and are tasked with protecting Darkwood from Torque's approaching hordes.
Survive 10 waves of enemies to win the game!
Darkwood will fall if Derek falls in combat or the advancing hordes destroy the castle!
How to Play
Prepare yourself
Buy equipment like swords and armour from the 4 item shops.

Enter the battlefield
Enter the battlefield and engage with your target




Hi, i'm using here a qwertz keyboard.
The problem with this layout is that the buttons on the bottom left side do not match.
Where the US/UK keyboard layouts have the z, is here an y.
So the actual layout here, is yxcvbn.
I know that c and v are the same as z and x, but it is very uncomfortable to do so.
Especially when playing on the executable, and then trying out the web version.
Can you change or add a setting to the Web Player, so that it respects the keyboard layout of the machine ?
The standalone (exe) version of pico 8 works perfectly, but some carts are web versions only.
Delve Feedback help
Hi! I was looking back on this project that I wanted to get back to work working on..
But before I do that I wanted to get feedback on what to add,change,etc.
(I allready know somethings like music,horizontaldrill,notcrashingonlvl4,enemies,etc...)
But I wanted feedback regaurdless for things I might miss!
Thanks if you looked at this!
PS:
Asking what people think about my game with 0 ideas thrown at the player is probably not the best idea so here's some topics that I would like help with thanks again :) :
- controls
- titlescreen / options
- map generation issues
- area concepts or misc ideas about gameplay
(some problems I might already know about but please tell me anyways)



Virulent is a turn-based game where you use action points to manage a viral outbreak on earth. The story is that the earth is hit by asteroids carrying a deadly virus, your task is to launch missiles to prevent any more infections, while administering remedies to infected countries and cure them.
Virulent is a remake of an Atari game called "Epidemic!" by Steven Faber (1982). I hope you enjoy playing it.
I dedicate this game to every person who has been separated from their family or loved ones during the tragic corona virus outbreak of 2020. We miss you dearly.
![]() |
[0x0] |
Okay, bear with me, because this is a pretty niche bug and also I can't post the actual code because it's spoilers for a demo I'm putting together.
I have code that basically works like this:
local a,b={},{} --a loop that populates a,b with 128 nums each ::_:: cls() --some code that involves nested looping through a,b to draw pixel-by-pixel on the screen flip() goto _ |
This is not a super uncommon design pattern for my tweetcarts. One thing I'd intended to do was encode the contents of a,b rather than the code that populates them. So I did, and the performance tanked.
Weird. Maybe there's a performance difference I'm not aware of?
What was odd is that I know a and b are local in both cases, and they take up the same storage as far as I can tell. I started poking around, and I tried this:
local a,b={},{} --a loop that populates a,b with 128 nums each local anew, bnew = {...my constants...}, {...my other constants...} ::_:: [ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=80528#p) |




Introduction
In Don't tank it!, players take on the role of a tiny tank that likes to shoot around randomly.
The goal of the game is to have as many bullets active without getting destroyed.
Each level gives you one more bullet to handle.
To help you stay alive for longer, the tank is equipped with a shield, but after you use it you have to recharge it by moving and have bullets active!

Controls
Move
Keyboard: Arrow keys
Controller: D-pad or Joystick
Shoot
Keyboard: Z
Controller: A / Y
Shield
Keyboard: X
Controller: B / X
Have fun and good luck! Do not hesitate to leave a comment about anything!






Here's my follow-up to my first Pico-8 game (Pico-Bot). This one is called Pico-Tron and will be a Robotron-style shooter. There aren't many of these types of games on Pico-8 so thought I'd try my hand at one. It won't be a slavish recreation, instead it will have lots of new features of its own. It currently has 13 enemy types, with around 790 tokens remaining that I might use for a few more enemy types. I still have the sfx and music to do too. Should hopefully have it finished soon.

This cartridge fails the assertion, which normally I would write off as a floating point bug, but pico-8 uses fixed point representation so this seems like an actual bug in pico-8 to me?
function _init() local x=0.6 local y=0.3 local sum=x+y assert_equal(sum,0.9) end function assert_equal(a,b) local s=a.." ("..tostr(a,true)..") does not equal "..b.." ("..tostr(b,true)..")" printh(s,"@clip") assert(a==b,s) end function _draw() cls(3) end |
The assertion fails, saying:
0.9 (0x0000.e665) does not equal 0.9 (0x0000.e666)
This is just one example, but this happens to me more often than not when trying to compare decimal numbers :(


Credits
I made this game following this tutorial.
Thanks SO much to Lazy devs for making the tutorial.
Check out the original here
Here is the awesome person who made the original:
Krystman
So sorry I forgot to give credit when I first posted this game.
[hidden]
FYI:
I created plasma ball and I plan on adding more.
things I plan on adding:
- laser powerup
- custom sprites
- custom gamemodes
- more I am not thinking of right now
post level ideas in the comments
level format: / = skip a line b = normal brick x = empty space i = indestructable brick h = hardened brick s = sploding brick p = powerup brick letter then number to place 1 more than the number ex b7=bbbbbbbb (8 b's) rows are 11 bricks long and will start a new line automatically ex: ///b9bb9bbbpbbpbbpbbb9bb4pb4 is level 1 |
![]() |
[8x8] |
these are the powerups (slow, extra life, sticky, expand paddle, reduce paddle (extra points!), mega ball, multiball, plasma ball (breaks indestructible bricks) and laser)




Inspired by @slainte 's post, I wanted to code a simple isometric map renderer with height information.
This is my first try - feedback on tiles and general how to approach this stuff is very welcome.
Right now the height is bruteforced rendered by overlaying the tile sprites height times. This could be optimized by checking the surrounding height and not drawing the area that will be painted over anyway.
Feedback very welcome :)


