Changelog
- Fixed bug that moved the player over the HUD if they were one tile below it and rolled with an empty hunger bar
- Audio and visual cue for traveling through tunnels
- Sound effects for player damage and poison added
- Sound effect for walking added
- Sound effect for whirlwind travel added
- Fixed softlock when interacting with a whirlwind and tunnel
- Fixed bugs that allowed movement on the HUD -- Hopefully finally fixed!
- Added statistics for time and turns taken that are displayed on game over
- Added method to hunt for secrets
- Minor map updates
Pico Panda
The Adventures of Pico Panda is my 2nd "completed" project(it's still missing some sfx, music, and polishing.) It's a small adventure game inspired by my wife. She wanted a game that lets you plays as a panda who eats bamboo and rolls. So, I had my own little mini game jam lol. I hope you all enjoy, and as always, any advice is welcome.
Game Overview
The Adventures of Pico Panda is a turn-based adventure game. Each movement the player makes increases the amount of hunger accrued(a little for walking, more for rolling) and takes one turn. Any enemies onscreen will move one tile per player turn. Eat to restore your strength, solve puzzles, and set out to save your true love.
Story
While enjoying a lovely picnic of the best bamboo, Pico Panda and his true love, Amanda Panda are suddenly surrounded by nefarious poachers. After a heroic struggle, Pico wakes up with a splitting headache to find Amanda is gone! With steely determination, he sets out to rescue her before it's too late.
Keyboard Controls
Movement - Arrow keys move up, down, left, and right
Rolling - Press X to roll into enemies and some obstacles (if you're not too hungry)
Wait - Press Z to wait one turn, allowing enemies to move while you do not
HUD
Pico Panda's health is represented by his heart icon. As he takes damage, his despair at saving Amanda grows and his heart breaks. Pico can take 3 points of damage before it's game over.
Optimistic
[8x8] | |
Sad
[8x8] | |
Heartbroken
[8x8] | |
Pico's hunger bar will change from green to red as he becomes hungry. Eating bamboo will fill Pico's belly and give him the energy he needs to save Amanda.
The number of panda cubs Pico has rescued (there are 99 total) and the keys he's collected are both listed as well.
Pico's status icon is in the top right of the HUD, and each of three icons show how he's feeling.
Healthy
Pico Panda's base state.
[8x8] | |
Poisoned
Pico moves slower and each action generates more hunger when he's poisoned.
[8x8] | |
Energized
When Pico is energized he speeds up and his walk becomes like his roll (without the extra hunger loss). Squash those beetles and boulders by walking into them.
[8x8] | |
Gameplay
Bamboo
[8x8] | |
Blackberries
[8x8] | |
Ramen
[8x8] | |
Keys
[8x8] | |
Panda Cubs
[8x8] | |
Shrines
[16x16] | |
Enemies
The insects of the forest aren't exactly Pico Panda's enemies, but sometimes they'll be in his way. And they can definitely hurt him if he gets too close. If necessary, Pico can roll into an enemy and squash them flat. Watch out for whirlwinds, though. Nothing is going to squash them!
Beetles
[8x8] | |
Hornets
[8x8] | |
Whirlwinds
[8x8] | |
Hints
Nice. Combat is a bit confusing, especially when you have enough hunger to roll, but not enough to defeat an enemy and you end up on the same square. Saved Amanda, despite the warning sign, and ended the game with only 80/99 cubs.
Took me some time to figure out that you need to purposefully get damaged to regrow bamboo at a shrine, or that you have 3HP.
Missed one screen (row 1 column 7), probably a secret like R4C5, maybe a hidden tunnel or a tornado destination. Also wonder if there's a way to reach the island on the starting screen.
Rock n Roll, Mister Panda
Roll in Rock, Save Amanda.
Thank you. I added some more instructions on the post to better clarify some things. More work is needed there lol.
My friend mentioned the same thing about the island on the starting screen. Unfortunately, it's just decorative, but maybe the screen should be redesigned to better take advantage of the screen space.
Any tips on improving the combat? I'm trying to go for more of a puzzle solving aspect for it, treating enemies more as obstacles to be avoided or eliminated. Positioning should matter most as it's turn based. Right now, when the player rolls, the enemies don't move (creating resource management somewhat dealing with hunger) to help the player set up. I'm thinking maybe a wait button to let the enemies take a turn without the player moving could help.
Tried the game again, and couldn't get every cub, probably because of a warp related bug.
When I go in the hole in the 1st screenshot, 3-4 different screens as quickly show, ono with the pandas I'm missing, and then I land in the bottom right of the map (2nd screen shot).
This is not where that hole lead me to last time I played. (It lead to a screen with pandas, a shrine, and a key, probably R4C5 in the map).
I also have no idea how I reached R1C7, couldn't find the hole that lead to it again.
I had tried every possible wall in the three screens around it to no avail, with some buggy obstacles on the top sprite row of R2C7.
Because of the warp bug, I didn't open the double gated river crossing (screenshot 3), but am missing the last key from the unreachable R4C5. Still, I can return to the other side of the map via tornado.
About battle, I had missed 1st playthru that you could roll more than once in a row. Bumping into obstacles to pass your turn and change tile parity with the enemies was much harder. This time, i just started fights on a full stomach and easily rolled over every enemy. Taking distance with a series of rolls if needed. The different speed the panda moves is an illusion, your real speed is always one square per move regardless of hunger. I think speed determines who moves first maybe ? Still haven't figured the game battle rules, but I have a multi-roll cheese strategy that wins everything.
EDIT : Softlock found.
I found the bug you mentioned during the tunnel transitions. Unfortunately, the first time you played was the glitch, as the tunnel in screenshot 1 does indeed lead to screenshot 3. The screen you were taken to the first time has a secret entrance located elsewhere.
I also added a wait button to hopefully mitigate some of the frustrations with the combat. In terms of the rules, it's better to avoid enemies if possible. They're more of a mobile piece of the puzzle of navigating the world than antagonists.
@Tw1zTeD616 , To each his playing style. If I find a screen with enemies, I won't explore further until they are defeated, especially since there's no limit to shrine usage and killed enemies don't re-spawn.
Found a soft-lock last game : if you walk on a hole that has a twister over it, you get warped to the start, but can't escape from the walk to the left animation. This happened to me on the screen below the final one, on the hole to the top left of the screen.
The game before that, I found all the cubs and had 2 keys left (didn't open the river crossing). Hardest part was walking all over the map, hoping to stumble on that last missing secret hole. If you want to make things a bit easier for completionists, you could add a bell and a sign explaining it in Amanda's cage. The bell would ring when entering a screen with remaining secrets. Maybe add the 99 cubs to the victory screen, if you got them all ?
When taking a hole that lead you a few screens away, the sequence of displayed screens is confusing and feels more like a bug than like an intended behavior.
Maybe some pixel based map scrolling to the destination would be clearer ? Or maybe some dust to show where underground the panda is moving ?
Oh, almost forgot : minor bug, if you move diagonally with both directions pressed at the same time and enter the space at the top of the screen that would normally lead you to the screen above, the panda stays in the same screen and can walk over the status bar.
@RealShadowCaster Thank you so much for all your suggestions. I didn't have much time to work this week, but I've fixed the bugs you've found and added a bit of juice to make the tunnel transition look intentional. I also added some slight improvements for possible replays in using less turns and speed runs as well as a method to search the current screen for secrets. I'm still working on sfx and music. I'm actually terrible at that part.
Love the tunnel animation, especially in the screen with lots of them.
Diagonal movement is still exploitable, especially in combination with game border collision :
Thanks for adding the bell !
At least one of the hints is longer than the screen. A few pixels are missing on both sides.
Discovered by accident some secret troll message ;)
You can still walk in the status bar here and there with diagonal movements + collision, or by entering from above, but softlocks seem to be gone.
That bug with walking on The HUD is being pesky. I can't seem to squash it for good no matter how I change the movement. I'm beginning to suspect it may have to do with how the map is drawn in those locations and how I'm checking the walkable tiles. It's odd, because with the initial code I used for movement, diagonals shouldn't have been possible. When I changed it so that an actual diagonal could be checked, it fixed the HUD bug in some locations but not others. It's driving me mad lol
Edit: I'll take a look at the hints I added again. The troll messages have been there since the start, I just altered the chance to see one a bit :)
You can take the problem backwards : if your code can't properly handle when btnp is true for more than one key for the same frame, you can re-assign btnp to a custom function that buffers the key presses for later and only ever has one active button per frame.
-- btnp, but doesn't report multiple -- keys on the same frame function custom_btnp() local true_btnp=btnp local last_time=0 local buffer={} return function(b) if time() !=last_time then last_time=time() if (#buffer>0) deli(buffer,1) local i for i=0,5 do if (true_btnp(i)) add(buffer,i) end end return #buffer>0 and b==buffer[1] end end btnp=custom_btnp() |
If this fixes the problem, you can either leave it as is, or go back to btnp and fix the bug(s), but at least you know what to look for.
If the bug remains, you know the problem doesn't come from mishandling of multiple button presses on the same frame.
I noticed that I could replicate the bug every time the player hit a wall when moving diagonally over the HUD. Adding the buffer for button presses and removing an extraneous wall collision check seems to have done the trick. I tried over and over in the spot where I got the bug and it seems to work fine now (he says for the 4th time). Thank you again for all your help.
Tested the last release, and diagonal related problems seem to be gone.
There's still 6 places in the map, where you can walk in the HUD, number 6 being the worst since you can softlock yourself.
Here's the code I used to display the map :
function wall_map() cls(15) for y=0,63 do for x=0,127 do pset(x,y+64, check_tile(wall,x,y) and 1+y\16 or 0) end end end |
Numbers 1, 3 and 4 should be fixable by code : you shouldn't be able to enter the 1st row from below if it's a wall.
Number 2,5 and 6 are more map errors, where you have a wall adjacent to an non wall separated by a screen line.
Since the game is essentially finished, game-play wise, I let my 7YO daughter try it without telling her anything about the game, except fast reading text if she asked or making jokes.
Here's how it played out :
Try 1 :
Cute panda, sad story, let's save Amanda.
Shed moves one step, doesn't get why the panda is waking into place, then mashes the buttons and instantly burns her entire hunger bar. She then walks very slowly, eats the bamboo, does a few rolls, reads the text and asks me for help. I try to sneak past the boulder since that used to be possible pre diagolal fix, and we reboot the cart.
Hours of at least two adults testing, and a 7YO finds a new softlock in seconds...
Try 2 :
This time she starts with destroying the boulder, heals at the shrine, flees from monsters, gets keys, loves the room with the many tunnels, saves cubs whenever possible, does a lot of back and forth to the shrine R2C4 , then reaches the river crossing and gives up. (total 45 minutes)
Before bed, I asked her what she thought of the game :
She liked it, thought she shouldn't have killed a bee that just stung a little, but the beetle that ate her bamboo she should have rolled over. Her favorite part was when she entered a cage, ate the bamboo first, and I voiced the annoyed cubs who wanted saving first.
What she didn't like is that the panda keeps stopping and you have to push the pad all the time to make him move. She didn't want to explore to find keys any more because of that.
This is something I completely overlooked myself. I'm playing a lot of sokoban like games, especially written in puzzlescript, so tap navigation feels normal to me, but felt cumbersome to her. I admit that I felt her panda was walking excruciatingly slowly compared to when I play. She hit a tornado once, and just gave me the controller and told me to get her back to where she was, and grabbed the controller back after I complied.
I fixed the 6 locations you pointed out. Turns out, the wall check I have to delete to ensure that diagonals don't allow movement over the HUD, is the one needed to prevent it at map locations 1,3, and 4. Having both the checks breaks the diagonals again. Some slight map adjustments corrected them for now, and I may have to redo that whole section of code at one point.
Thank your daughter for her awesome feedback. I haven't had anyone that young play yet, and it was great to hear what she thought. I never even considered being able to softlock the player in like that on the first screen. I'm not even sure how to address that right now. It's going to require rethinking the first puzzle of the game haha. She's 100% right about the movement. I'm working on it now, but I'm removing the animation slowdowns associated with hunger and being poisoned. As you mentioned in your first post, it's only an illusion and is pretty annoying. I'm also removing the button restriction so that holding the button will now execute multiple moves. My only concern here is that it could be increasing the difficulty slightly because enemies will move that fast too (so far, in my playtesting, hunger hasn't been affected much by being able to hold btnp.) Unfortunately, I learned an important lesson a bit too late. I got too far into my code with the player and enemy turns tied together. Now when I'm trying to separate them (as they should have been in the first place), it's breaking. Definitely a lesson learned for next time. So, I'm going to have to think of another gameplay effect for the player's hunger level and status effects, because I can't alter the number of turns for them like it probably should be. As it stands, the player's ability to roll is affected by hunger and status determines hunger loss. Seems a little underwhelming to me to only have one small effect for each.
Does she think the tornado would be more fun if there were around 5-7 random locations it could take you? One of them could even be one of the secret screens. In hindsight, I think that's probably better lol. Also, I'm hearing that when a full map redesign gets done for version 1, I should include more of the tunnel mazes?
About the tornado, she's OK with a secret destination, but with another tornado to go back. She doesn't want to get lost because of a tornado, so multiple destinations are OK, but for the non secret ones, only to known destinations.
The problem I see with that idea is that it turns tornadoes into a fast travel of sorts rather than a set back to avoid...
About the tunnels : in the tunnel mini maze screen, she quickly stumbled on the key (she likes to make her panda smell the flowers), but stayed a few minutes in the screen after that, to play with all the tunnels and be sure she "played" each one at least a couple times. The windier the path, the better, it seems.
She's all for more visible tunnels, but totally missed that it was supposed to be a puzzle and not a merry go round.
About the 1st puzzle soft-lock : you could add a tornado starting far from the player. This way the player can learn its effect without loosing progress if curious, and if you add regrow like a shrine to the effect of tornadoes, the bamboo is back and there's no more soft-lock.
Redoing all the game mechanics is no small task. I'm doing a backup of current version for myself. I personally like it and don't mind tap walk, and will likely re-enjoy it in a year of two after forgetting the map. I'm setting an alarm for next year.
[Please log in to post a comment]