Here's the latest version of my very first PICO-8 game. It's a casual adventure game with a 4x4 bit aesthetic.
The gist is that the king offers you the throne if you kill the dragon. To get to the dragon, you have to bribe some guards blocking the path. To bride the guards, you have to collect all the loot.
There are enemies running around that you can kill. There are also NPCs to talk to and signs to read. There are keys that open gates.
The current map is just a testing area, but you can go through all the gameplay steps, albeit in an abbreviated fashion. There's an intro screen explaining the controls. After you kill the dragon, be sure to revisit the king.
I incorporated feedback from an earlier version, namely a larger buffer between the player and the edge before the screen scrolls, and a better way to restart the game after you die. (When you die, you enter Ghost Mode. You turn into a ghost who can wander the map at will, but can't interact with anything. The X button will then restart.)
One earlier comment was that the diagonal movement was too fast, which is true. It is. The commenter suggested a cool solution involving running at 60 fps, doing cardinal movement every other clock tick, but diagonal every third clock tick. I did try that out, and it did make the diagonal movement more in line with the cardinal movement. But I just didn't like how the different refresh rates looked. It might just be that I couldn't implement it right. Anyway, I kept the too-fast diagonal movement. In the end, I don't intend for there to be large open areas in the game, so long stretches of movement aren't going to happen a lot.
Nothing in the game is intended to be hard. You can die, but it's not difficult to avoid that fate. It's meant to be a fun, low stress diversion.
I think the mechanics are done, and I'm about to start creating the actual large game map. I managed to keep the sprite count to 128, so I can have a 8x4 screen game map.
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/82211/7_realshadowcaster.png)
Hello again, nice to see you progress on the game. Still a big fan of the visuals.
Sorry that you spend time on the diagonal problem to not like it in the end. Having orthogonal scrolling every 2 frames and diagonal every 3 does make the diagonal feel slower than it really is. This problem can be somewhat reduced by having the scrolling and the player movement occur on different frames, so something is moving 2 frames out of three during diagonal movement, but I think that it wouldn’t make a significant change in your case because the player is 16 pixels, pretty negligible screen movement compared to 128x128 screen scroll, and does not work when moving in the middle of the screen anyway.
What could work is a 2 frame animation for horizontal movements, and a 3 frames animation for the diagonal movements, so everything always moves. The real jittery change of the player coordinates is hidden by the animation.
About sprite/map trade off :
128 sprites indeed allows for maximal 4 screens tall and 8 screen wide screen, but if need be, you can exchange a part of the bottom of the map for a part of the bottom of the sprite sheet :
Starting from the bottom, one line of 16 sprites uses the exact same space as 4 lines of map.
In that case, the map is still a big rectangle, but your valid sprite number range is spit in two : 0-127 and (256-16x) to 255 depending on how many groups of four rows your map doesn’t need.
![](/gfx/set_like0.png)
![](/gfx/top_drop.png)
![](/media/94261/Profile.png)
Spending time on the diagonals was fun. I don't regret it, and now I have a new technique that might get used in a different context!
Thanks for the info on the sprite-to-map tradeoff! I hadn't thought about being able to add more sprites incrementally. I currently have 10 empty sprites for new NPCs or map tiles. It's good to know it's not an all or nothing proposition.
[Please log in to post a comment]