Hiya! I've been working on this little puzzle game for a few months and its finally done!
Thanks to @Trog for the lovely font, and everyone who playtested and/or gave feedback.
Good luck and I hope you enjoy! 🐛
Version 0.9: monster graphics!
features
- Mons in save data
- Image decompression system added
- based off the system used in the gen 1 and 2 pokemon games with some changes to better fit pico-8
- Display mons in battle mode
- mon info menu system
- view mons
- view stats, moves, info
- change mon placement
- mons appear on start menu
- i thought it would be a fun way to show off all the cool monsters that are in the game so far
- you cant catch all of the ones shown
- cleanup and token saving measures
story time
Hello! this update came out really fast as far as this major feature being added. this is because i had been working on this part in a separate project as i was making the rest of the engine. It loads an image compressed into a string. there are some improvements i wouldve wanted to make but it didnt seem worth the token cost. anyways it works now. this was a major feature that i had to have in the game for it to be worth the challenge.
So I'm trying to use two sprite sheets per frame in my game using the new high memory video mapping. at the start of the game the video memory is moved to 0x8000. there are special sprites that are loaded from a string into 0xa0. What im trying to do is quickly switch to 0xa0, load/draw the compressed sprite, then switch back to the 0x80 sprite sheet. for some reason loading the sprite into 0xa0 overwrites sprites at the same position in 0x80, which is my main issue here. if anyone has advice or help id appreciate, i understand its a new feature so its not as well documented just yet.
copying sprites from video memory to 0x8000 (this is done in _init):
memcpy(0x8000,0x0,0x2000) poke(0x5f54,0x80) poke(0x5f5c,255) |
loading sprite data from string into 0xa000 (this is called sometimes during _update within a decoding function):
poke(0x5f54,0xa0) --load 0xa000 memory --buncha stuff that loads decompressed sprite for i=0,4096do sset(slot*64+i%64,64+i\64,0) [ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=149955#p) |
Splode 'Em Up
Destroy rascally missiles n' bombs with incredibly powerful countermeasures: balloons! Balloons 'splode enemies on impact, but not only that, each different color balloon has a unique special ability.
Explosition
You play Recty, a sentient rectangle with an incredible ability to spawn balloons ad infinitum. Recty hates missiles n' bombs and likes to 'splode as many as possible all the time. It's literally all he ever does.
Gameplay
- Move Recty (the rectangle at the bottom of the screen) left and right.
- Release balloons to try and hit the missiles n' bombs. You can only have one balloon out at a time.
- While you have a balloon, you can pivot it left or right, or even have it float up more quickly.
Finit
A simplistic game about lines and green fluid.
If anyone wants to make a soundtrack, fell free to post it in the comments.
I made this game in a week or so.
Controls:
- mouse to click and rotate the lines
- Space to confirm the build
- If The fluid doesn't get everywhere, and you don't finish the level, click anywhere with the mouse to try again.
Goal:
- All white should be green, so that doesn't always mean everything has to be connected.
Have fun :)
The Question
Hello everyone,
I am ludicrously close to finishing the engine for my game, but some physics equations have me stuck. Here is what I'm trying to achieve:
- The players are effectively nodes that can switch between being pendulum bobs and fulcrums. One can be anchored to serve as a fulcrum while the other swings. If both are anchored, neither moves. If both try to un-anchor themselves, they fall.
- In order to let the players navigate the playfield, I want the swing of a pendulum bob to increase bit by bit. (This will let players climb the playfield by swinging upward instead of just descending.)
- Once a bob makes a full loop around the fulcrum, I want it to continue in a circle at a more-or-less consistent speed.
With the help of this math writeup, I managed to assemble a simplified set of physics variables and equations that do an okay job of simulating momentum and creating a non-degrading swing (i.e., the swing distance never shrinks due to friction). But I haven't figured out how to make the desired increase in swing distance happen. I'm sure it's a single value or sign that I haven't identified.
I made a function to draw an equilateral triangle that I could animate:
function triangle(_x,_y,_size,_angle,_clr) for i=0,2 do local _offset=.33*i local _x1=_x+(cos(_angle+_offset)*_size) local _y1=_y+(sin(_angle+_offset)*_size) line(_x1,_y1,_clr+i) end end |
Pico 8 does something weird when I try to draw 2 triangles made out of lines:
I can draw each triangle just fine, but when I put the triangle() function twice it weirdly connects the triangles.
I have no idea why it does that, I could use some help.
here's the full code
function _init() end function _update() end function _draw() cls() triangle(64,64,30,0.255,8) triangle(64,64,30,0.255+0.5,12) end function triangle(_x,_y,_size,_angle,_clr) for i=0,2 do local _offset=.33*i local _x1=_x+(cos(_angle+_offset)*_size) local _y1=_y+(sin(_angle+_offset)*_size) line(_x1,_y1,_clr+i) end end |
You are Stickyfoot, a squishy sewer creature who dreams of escaping to the surface world. Leap and dodge through a host of dangerous levels to escape the sewer and bask in the sunny, flowery fields above!
A short, challenging puzzle-jumper in the vein of Chip’s Challenge, Tomb of the Mask, and Pac-Man. Do you have what it takes to beat the gauntlet?
How to Play
Arrow Keys: Move
Z/X: Self-destruct
Enter: Pause/menu
Collect all coins in each level to win. There are 56 unique levels to beat!
Aim for the target score to get a gold trophy. Beat every target speed to prove you’re the best!
Astrox is a thrilling pico-8 shoot-'em-up (shmup) game inspired by the classic Galaga. Players navigate their ship through waves of diverse spaceship enemies, engaging in intense firefights and dodging enemy fire. With retro aesthetics and fast-paced gameplay, Astrox offers an exhilarating arcade experience.
Mechanics
Astrox comprises 15 enemy waves you need to clear to win the game. Kill them before they respawn back at their location, as they will restore their health. Enemies will shoot and move towards you. Avoid colliding with enemies or comets and don't get hit without a shield or you'll lose 1 life. If you lose all your lives, you lose the game.
Here's my latest version of Nybble Quest, an adventure game with a 4-bit aesthetic.
Since the last dot release, I've put a ton of work into the map. It's not done, but most of the pieces are there. The city to the NE still needs to be filled in.
This isn't all that playable because only a few of the objects have been moved to appropriate places from their initial testing locations. The win state trigger is in the old location, but the king is in his new location, for example. The enemies are all in the NW wasteland. There aren't enough keys for all the doors. Some of the loot isn't really visible against the wasteland.
But you can wander about the full map instead of just 2 screens worth or so in prior versions. The full map is 8x4 screens. With its 4-bit aesthetic, you get a pseudo-resolution of 32x32 tiles on-screen, which makes for a lot of map tiles overall.