SFX instruments that have no loop set (i.e. both loop parameters are set to 0) still loop when used in a pattern.
Also, if effect 3 is used at the point where the SFX instrument should be finishing, it won't retrigger the note until the following beat. If you have a long string of notes with effect 3 it won't trigger the note until the beat after the last note with effect 3 on it.
Here's a sample cart with SFX to demonstrate the issue. It doesn't have any code so you'll have to open it the editor.
Calling line() with these arguments is causing PICO-8 to crash. It seems any iteration around having these "extreme" values on one axis is causing it to either get stuck in an infinite loop or crash outright.
Oddly, if you flip the x and y values it'll finish executing and display the command prompt without rendering the line, but then crashes as soon as a key is pressed.
A short atmospheric platformer with metroidvania elements. Your UFO has been knocked out of the sky by scavengers and you're now trapped in their swampy junk yard. With the help of some friendly aliens, find a way to disable the electromagnetic pulse cannon that's keeping you from escaping.
This was my entry for RNDGAME Jam 2020.
Left/Right - Move
Z - Jump
X - Use Zapper (once you have received it)
Up/Down - Cycle Zapper Modes (when you have more than 1)
Hack all the terminals and defeat the boss.
This is my attempt at making a polished game in a week and a half, although it ended up being 2 weeks. I had to drop a few features I wanted to put in due to time, and code ended up getting a bit messy. Still, I'm pretty happy with how it came out.
The frame rate can drop sometimes, particularly in the later parts of the game when there are a lot of enemies around.
Removed a tiny amount of unused code and added as many comments as I could fit without going over compressed size.
Added the ability to swap jump and shoot buttons because the defaults felt awkward in gamepad. Also fixed a couple of minor audio bugs.
Okay, so not really the soundtrack so much as 2 tracks from Castlevania.
Update 3: Added a 148 token version.
Update 2: Now down to 157 tokens.
Update 1: With improvements from @freds
This is a token optimized version of the polygon drawing routine I originally used in Pico Tennis. I've managed to get it down to 173 tokens, which I'd like to think is comparable to p01's 163 token trifill routine.
Obviously it's going to depend on your needs for which method you use. If you only need to draw triangles then you'll want to use the trifill method, but this allows you to draw shapes with any arbitrary number of vertices.
The only catch with this method is that it only allows your shape to be concave on a single axis.
If anyone has any alternative methods or optimizations please let us know.
With this update the game now progresses across multiple battles, soldiers can level up and have a talent tree, and 2 new enemy types have been added.
The game has 16 levels, and you need to beat level 16 to win. However, levels don't progress 1 at a time, the level you are assigned is based on the combined level of all your soldiers. If a soldier survives a battle they will gain a level and be granted 1 skill point. So if all soldiers survive level 1 you will progress to level 4, if they all survive level 4 you will progress to level 7 etc.. So it's possible to do a perfect run and win the game by playing only 6 battles.
If a player doesn't survive they will be replaced with a new recruit. As you progress through the levels new recruits will start with more skill points so if you lose any soldiers or have a full wipe you won't be set back too far (and you can respec your soldiers).
If you abort a mission after any soldiers have died they will remain dead. However, because the game is only saved between missions you can "save scum" by resetting the cart and continuing the game with all soldiers alive.
X-Com like game with procedurally generated maps that I started developing about 6 months ago. I just came back to it over Easter and finished it off. It uses the same 3D sprite system I developed for Pico Tennis but I ended up making a middleware tool in C# so I could easily build and animate the 3D skeletons for them.
I really wanted to give it a bit more visual flair in a lot of areas as well as add more enemy unit types with different abilities, but I just couldn't afford the tokens. The war on tokens with this one was all too very real.
I had this crazy fantasy when I started that it could have an overworld where you would conquer territory and buy and upgrade units. If I was to do that it'd have to become a duel cart game. I'm not sure how doable that would be, but I think it would ass a lot more fun to game. The outcome of the battles would actually be meaningful and a play session could go from being 10-15 minutes to maybe 2 hours.
Anyway, I'm still pretty pleased with how it turned out. Let me know if there are any issues that need fixing or tweaks you think it could do with.
minor update 1.01
- added the option to choose number of enemies from the title screen (previous it was always 13)
- fixed the action popup so it won't go off screen when at the bottom or right of the map
- enemies will no longer shock a player if they're already shocked
minor update 1.02
- fixed a grenade bug that was introduced in the previous update
major update 2.0
- added new basic enemy with only 50 health that doesn't hit very hard
- added new enemy that that only has 50 health but hits hard and splits into 2 basic enemies when killed
- added leveling system
- added talent trees
- added game saving
- added a victory screen
- fixed a bug that caused the red soldier to steal threat when it was the same as other players
As the title says; music playback is clipping and causing distortion since upgrading to 0.1.12
I've tried rectifying the problem by setting music_volume to 128 (which is what I had previously always had it set to), but the music_volume value in the config.txt file gets reset to 256 every time Pico-8 is closed.
I was playing with some 3D rendering stuff and ended up making a tennis game.
Play against AI or with up to 4 players.
Z to hit the ball. To hit the ball in different directions you need to hit it when it's off to your side. So the further to your right the ball is when you hit it the more it will go left.
X to do a power shot. Whenever you return the ball during a rally you will build up power. You can do a power shot anytime you have power in your meter, but the more it builds up the faster your shot will be.
- As per Felice's comment I changed the display when a point is scored to make it easier to understand. It will now display PLAYER 1 POINT in blue. There's is also a message above that in orange for things like OUT or FAULT etc.
- Also adjusted the service so hitting a fault isn't unpredictable. Now the only way you should get a fault is if you over angle the ball (by moving sideways after you've thrown the ball, but before you hit it)
- Corrected the range from which you can hit the ball because it was WAY too far.
- Readjusted the hit distance to be a little more forgiving. Still not a broad as it was in the early version.
- Power shots are now a bit easier to direct. I was previously culled the angle on them a bit too much to account for the extra speed.
- Made a slight change so the AI isn't quite so strong. Basically just dumbed it down a bit more. I'd need to add some more advanced logic to make it more fun to play against. I've managed to get about 300 tokens, so I might look into it if I have time.
- Added new label image.
- Reduced AI difficulty slightly (particularly for Normal mode).
- Fixed a bug that caused the game to go into an inescapable AI match if the menu screen was left on for about 10 to 15 minutes.
- Changed matches to be best-of so they'll now end when a player/team has won more than half of the sets.
Now available on itch.io https://paranoidcactus.itch.io/pico-tennis
This is my first attempt at using PICO-8. I'm pretty impressed with how quick and easy it is.
The code's a bit messy because I didn't really know what I was building at first, and I've never used lua before.