This is my 1st game in pico-8. The vast majority of it was written on friday evening and took me about an hour. I hope you all enjoy it. If you have any suggestions, leave them below. I have more games to come!
I've had the apple spawn under the snake twice while I was playing. Maybe change that. Starting location should be center of screen.
Outside those 2 problems I found this game to be the best snake on P8 yet.
Start position centered
snake.x = 65 snake.y = 65
The right and bottom walls exceed into the red border lines.
Meaning the snake can go into the red lines on the right and bottom.
This does not happen on the top and left walls.
I noticed this when the apple appeared within the bottom read line, then I experimented with how far the edge goes until it says game over.
Ill fix that. The bounds I experimemted with, and I might have to change the size of the snake and food to fix. Or I could make the walls thicker, or possibly remove them. Eventually I plan on adding some way to modify game speed too.
Nice work! Snake's always a nice hello world, partly because it's simple and partly because there's some subtle little not-so-simple bits.
One thing worth looking at: input buffering. This is a game where doing a tight pair of turns can be really important, but if you don't take care to capture and implement a queue of directional inputs in short succession the player won't be able to make the snake do what they're thinking.
I haven't peeked at your code yet, but based on a little gameplay it feels like however you have input configured, it's throwing away all but the most recent keypress once it comes time to move the snake. This has a couple implications, depending on what your current implementation is:
If someone is heading up and wants to make a quick zig to the right and then a zag upward immediately after, the second "up" input might be the only one processed, and so the player gets seemingly no response and just keeps heading upward from the current position. I'm speculating because I didn't confirm this behavior, but there were similarly sluggish-feeling moments while I was playing.
- It's possible to kill yourself by moving backward into yourself due to poor input processing. If heading right, you can hit up and then left in quick succession and produce a death! You're correctly preventing a player from merely hitting left while heading right and killing themself, but something in the input handling is allowing a safe move followed by a suicidal-reverse-if-you-ignore-the-safe-move sequence to trigger the actual suicide, related presumably to the more general input-trashing issue in the previous example.
I was messing around with the code and I couldn't find a viable
outcome for the right and bottom walls. They were either beyond the Red rectfill (off the screen) or too far in that the snake would hit the (invisible) wall and die before ever reaching the red rectfill lines.
I don't thinking the food and snake being smaller would help; they would still be going into the red rectfill lines.
You could just leave them as-is because I might just be nitpicking about it. Up to you.
I still enjoy this snake version the best.
I have also experienced the self-sacrifice bug. :-)
One other suggestion.
Maybe have the Length show up at the death screen.
This way it gives a final length and saves the screen space on the playing field ;-)
Nope The apple was gone. This, for me at least, only happened once I get passed Length 100+.
And take your time. No rush for completing carts, especially when there are more important aspects in your life happening.
BTW. These are just suggestions. In the end you have the final say as to how the game/cart will be finished.
Good luck on your Finals.
[Please log in to post a comment]