Entry Thread - Waddles the Duck

Moderator: Moderators

tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Entry Thread - Waddles the Duck

Post by tepples »

I confirmed that the Action 53 version returns to the menu.

But I found something confusing.
  1. If I take a running leap from here,
  2. I end up on top of this structure.
  3. If I press Select here, nothing happens.
  4. And my way is blocked.
Attachments
waddles_running_leap.png
waddles_running_leap.png (4.91 KiB) Viewed 16435 times
cppchriscpp
Posts: 102
Joined: Fri Dec 27, 2013 4:28 pm

Re: Entry Thread - Waddles the Duck

Post by cppchriscpp »

JRoatch wrote:Ok, I got a small multi-cart with the a53 menu compiling, and I can confirm that start+select returns to the multicart menu.

I still suggest that the magic $db byte be the first byte instead of the last mainly because assemblers and compilers allocate starting from the first byte. That way there will be a greater chance of wiping the whole save when other things partially write into that page.
Cool, thanks for checking that before I got the chance! Will still get around to that in a few days. (Hoping I can do it before Ludum Dare; I'll be checked out that whole weekend)

I just updated the first byte now - that's a good idea I just hadn't gotten to yet. I'm debating whether I want to put the effort into the checksum. It's a good idea, and I wish I'd had that when I first build all the collectible stuff. I'm a little concerned with how many places I might have to update to not break how it works now, so I've been holding off.
tepples wrote:I confirmed that the Action 53 version returns to the menu.

But I found something confusing.
  1. If I take a running leap from here,
  2. I end up on top of this structure.
  3. If I press Select here, nothing happens.
  4. And my way is blocked.
Thanks for testing that, and reporting that bug. Looks like a level design bug - I've just put in a fix to make the ice castle thing a little bigger so you can't get on top of it. (I'd like the engine to be smart enough to not let me do that... but I never was able to come up with a good way to do it.) The castle actually looks a bit better that way anyway.
JRoatch wrote:For some reason I never got the level select screen in my play through of this build.
That's kind of concerning - it shows up once you've beaten all levels, or at least it should. I haven't done a full play-through after the last few builds (naughty me!) and need to get around to that - it's possible I broke it. I'll be sure to check that.

-----

Aside from that, JRoatch brought up a good point - is what I'm doing with the reset button something sane to do? I don't really want to do it if it's something that bothers people -- especially if I've gotten around the big problem by adding the exit to menu item in levels, and moving to memory addresses that aren't used. I like the idea personally, but I understand the concern.

Does anyone else have an opinion?
Attachments
waddles-a53-2.nes
New version with magical byte move and a level fix
(64.02 KiB) Downloaded 611 times
JRoatch
Formerly 43110
Posts: 422
Joined: Wed Feb 05, 2014 7:01 am
Contact:

Re: Entry Thread - Waddles the Duck

Post by JRoatch »

I played this through again today and still didn't get the level select screen, so I looked at your code in github and found the problem. The GAME_BEATEN_BYTE variable also needs to be moved into new save location of page 5, Because the endings calls reset to return to the title screen, and reset clears all non save memory.
cppchriscpp
Posts: 102
Joined: Fri Dec 27, 2013 4:28 pm

Re: Entry Thread - Waddles the Duck

Post by cppchriscpp »

Heh, I think you're right on the money with that one. I completely forgot about that one while moving things. I'll take care of that once I get out of my post-ludum-dare funk.
cppchriscpp
Posts: 102
Joined: Fri Dec 27, 2013 4:28 pm

Re: Entry Thread - Waddles the Duck

Post by cppchriscpp »

Little later than I would've liked, but I finally got around to fixing that bug, and also adding a proper exit menu item instead of the two-button shortcut.

I did validate that it fixes the menu not appearing bug, but I still probably need to give this some good testing at some point soon.

Rom attached! (And the one on my site's also updated, albeit w/o action53 stuff)
Attachments
main-53.nes
(64.02 KiB) Downloaded 616 times
cppchriscpp
Posts: 102
Joined: Fri Dec 27, 2013 4:28 pm

Re: Entry Thread - Waddles the Duck

Post by cppchriscpp »

One more super minor tweak - allow the a button to be used on the menu instead of just start.

This is likely the final version for the multicart. I ran through it on the latest multicart (on powerpak, yay) and poked it a bit; everything seems stable. The only thing I might do is take the time to get rid of that pesky graphical glitch at level start. I can't stop seeing it now, but I'm having a seriously hard time finding what I'm doing outside vblank/forced blank.

(Note: if that improving existing entries contest ever happens, I may tweak Waddles more for that. As it stands though, I need a long break from that codebase)


Hoping we can turn off exit patching for this game in the multicart, though after moving the gem data around it's far less necessary.
Attachments
main-53.nes
(64.02 KiB) Downloaded 618 times
User avatar
Myask
Posts: 965
Joined: Sat Jul 12, 2014 3:04 pm

Re: Entry Thread - Waddles the Duck

Post by Myask »

calima wrote:Great game. The intro text went too fast for me to read, though.
It was exactly as fast as I could read it…which means it's too fast.

(I guess I downloaded 1.0. I played on PowerPak.)
[hr]
A fun Eversion clone QUACK QUACK QUACK. A little cartoony. 24x16 and 24x8 sprites are very unlike most NES offerings!

The difficulty curve is well-put together, in my opinion, f on the easy side. This does mean the game only has an hour or two of play to get out of it, though.

I'm really glad there was a level select for after I got the bad ending.

There's no guard against shifting onto a ghost enemy in the final warp-level, and if you do, you just die without seeing what killed you, making me think a few times that enemy corpses gained "touch=kill" at that level, which they don't.

There's another place you can get trapped, by jumping to the right over some ice (somewhere in the mid-levels? ) but that one allows you to kill yourself, so I wasn't stuck. Tepples caught this.

Stacking the tree graphics is ugly; they're not drawn to be over nonground. Have you got spare CHR? There are even points where it wasn't necessary as the trees are under a solid wall…

In level 2?3? (Add a "which level are you on" indicator to the HUD! It's so bare! "Waddling through level 5") the last diamond pair over a lava pit I don't think you can get the right one without death. But, since death is relatively light, it's fine.

The 2.5 block standing jump is …I don't think I have succeeded on anything except "stomp snake or turtle" with it. Adding half a block to it and the walking jump might help a lot.

There's a place where lava tiles are level with the ground surrounding it, and as a result, Waddles gets burned at a different location than "this is the last pixel I could jump from" when it's not lava.

The music's nice enough.

It's a bit more straightforward and less spooky than Eversion; there's no point where there's a forced transition and no point where taking a warp is the wrong move (though it might miss you one or two gems half a screen further).

Mid-level checkpoints might be nice; Eversion had those. It would mean you'd want to add "restart from beginning" as well as the "restart from checkpoint" as separate options in the pause menu, though.
cppchriscpp
Posts: 102
Joined: Fri Dec 27, 2013 4:28 pm

Re: Entry Thread - Waddles the Duck

Post by cppchriscpp »

Thank you for that very thorough feedback. You're correct, you played the version I entered into the contest - some of that was dealt with soon after. The entry into the contest was... pretty bad; it scored poorly and for good reason. I'd like to think the fixes made it more playable, but aren't substantial enough to try again. I'm treating this entry as a learning experience. Onto the feedback...
It was exactly as fast as I could read it…which means it's too fast.
By far the most common piece of feedback I got. I halved it in the post-compo version and that helped. (Though now the music sounds worse, and I didn't compose a replacement, but... at least the story's readable)
There's no guard against shifting onto a ghost enemy in the final warp-level, and if you do, you just die without seeing what killed you, making me think a few times that enemy corpses gained "touch=kill" at that level, which they don't.


Yeah, I probably made those guys a little too fast. That combined with the blinking didn't go well. I never figured out a great solution to this one; it's in the final build. I do want to make them hard, but of course not unfair.
There's another place you can get trapped, by jumping to the right over some ice (somewhere in the mid-levels? ) but that one allows you to kill yourself, so I wasn't stuck. Tepples caught this.

[and]


There's a place where lava tiles are level with the ground surrounding it, and as a result, Waddles gets burned at a different location than "this is the last pixel I could jump from" when it's not lava.


Yeah, I had a lot of that type of issue in the original entry. I think I've gotten most of the level bugs taken care of by now. They were pretty bad though - a number of people I showed the entry to fell into that lava one. I fixed those pretty quick, at least.
Stacking the tree graphics is ugly; they're not drawn to be over nonground. Have you got spare CHR? There are even points where it wasn't necessary as the trees are under a solid wall…
You're actually the first to mention this - I had that thought myself and struggled with it a bit. The problem is, it isn't 1 tile; it's 5 (one per dimension)... and each of those are comprised of 4 chr tiles -- so each switchable tile ends up taking up 20 chr/256. I had a full row of switchables, and I didn't have room for much more.

I am using chr ram, so there were some options there, but I also was running very low on prg space in the rom. I compressed graphics where I could, but realistically I couldn't find a way to fit more tiles and the logic to show them into the space I had. Given more time I'm sure I could've gotten there.

Also, the trees under a solid wall were generally put there to block the way until you switched dimensions. They had function going for them, but certainly not form...
The 2.5 block standing jump is …I don't think I have succeeded on anything except "stomp snake or turtle" with it. Adding half a block to it and the walking jump might help a lot.
This is another piece of feedback I got a lot (alongside not having any acceleration in the character's movement) and sadly one I never fixed. The hangup here is that changing that would change how far Waddles can jump - which would require redesigning a lot of levels. I'm mainly thinking of the few fake-out jumps, but this would also likely create new places to get stuck.
I just didn't have the time post-contest to redo all of the levels... even though I wanted to. Plus, I just got tired of working in that codebase constantly after 6 months. I dropped most other personal projects too, which was a poor choice.
It's a bit more straightforward and less spooky than Eversion; there's no point where there's a forced transition and no point where taking a warp is the wrong move (though it might miss you one or two gems half a screen further).
That.. sucks. I didn't realize this until after the contest but it's really true. The first few levels had small almost-puzzles, but I never really grew those out - later levels focused entirely on platforming. This also really points to needing to redesign all of the levels.
Mid-level checkpoints might be nice; Eversion had those. It would mean you'd want to add "restart from beginning" as well as the "restart from checkpoint" as separate options in the pause menu, though.
Funnily enough I never seriously considered this. It was a fleeting thought at one point, but no more.


-----

All of that feedback is welcome - if nothing else I'll use it to do a better job next time. I don't know if I've actually mentioned it but this was my first full-scale game using assembly. I had a completely separate action/rpg/wishes-it-was-zelda engine going, but I hardly have all the kinks out of that. So... getting anything at all out there was a challenge. I don't think I prioritized the right things, and I'm generally kind of unhappy with the results - but I did get it to a playable state.


I understand a lot of what people suggested is simple, and in retrospect it should have been. The problem is I was still a complete noob when I wrote a lot of this code (let's be honest, I still am! :D) and as a result the code is pretty hard to navigate. I also used resources very poorly, so in order to make changes now I have to find prg space often. This leads to doing weird bank switches and jumps to fit it in - completely going against the logic I had to separate things originally. Rewriting the whole thing would be great but there was very little time for that.

I might pick this back up for another contest where we revisit past entries - I'd actually like to do that. But for now, I really need a break from this codebase. My NES development isn't stopping though - I've still got plenty to learn and play with! (see: nesnet and Missing Lands)

Thanks again for the feedback!
User avatar
Myask
Posts: 965
Joined: Sat Jul 12, 2014 3:04 pm

Re: Entry Thread - Waddles the Duck

Post by Myask »

it scored poorly and for good reason.
It's a complete game! It's fun! It's the first one I played through to completion of the compo!
Also, the trees under a solid wall were generally put there to block the way until you switched dimensions. They had function going for them, but certainly not form...
The point was, for such a tree-block under a wall, you only need to make the trees-portion one-tall, rather than some of the 3- or 4-tall which looks ugly, and cover the rest with solid brick.

A taller/narrower flame might look better than the squat one. It, too, looks a bit…unmatched when in tall blocks like the ice ones it replaces are.

Well, perhaps you should consider going to a fine-bankable-CHR mapper if you revisit; then you could probably get away with not fading out on a warp.

Yeah, I probably made those guys a little too fast. That combined with the blinking didn't go well. I never figured out a great solution to this one; it's in the final build. I do want to make them hard, but of course not unfair.
They're fine as-is, they're supposed to be the Highest Difficulty enemy. The problem is that in the "auto-switching" level, the ghost trapped in the switchback…

Code: Select all

######
#
#  ##############
# *<- here
####################
is a place where I'd often find the autowarp triggered, and the parity of the autowarp lining up with the parity of the flicker meant he didn't show for the one frame he needed to kill me, and the flickering stops when you're in death-animation, so he doesn't show up, and it's a Mysterious Death. That's Bad. (Can't recall if I got t-fragged by the one after that once I got faster, but he surprised me a little at least once.)

Likewise, lavaballs can show up already in mid-air, though I don't recall any telefragging me. I never got telefragged by a shark, either, but I'm sure there's a spot it can happen on that last level. Some placeholder sprite on other levels would alleviate this: a jumping fish for the lavaballs, a swimming one for the shark…not sure what would fit for the ghost; it'd only be useful on level 9.
cppchriscpp
Posts: 102
Joined: Fri Dec 27, 2013 4:28 pm

Re: Entry Thread - Waddles the Duck

Post by cppchriscpp »

Ooh, that's some great feedback; thanks for helping me understand.

For the tree under a wall - you're right, there are some places I could have gotten away with that. There are a few walls I blocked with trees later on where you had to jump into them where that wouldn't have worked, however I definitely could have improved the look a bit in most places. Thanks!

For the switchback dude, I get you now - yeah, that guy could probably just be removed at this point. There's enough of them elsewhere. Good feedback.

Lastly, lava balls -> fish; that's a good idea; I hadn't considered that. I'm not sure what that might mean for ice though. Maybe for ice I wouldn't show them at all (The fish is trapped under the ice, sorry!) - I think that would still help.

I think the deadline for the cart has kind of passed, so I'm not going to really rush to do any of this, but thanks for some really good feedback.
User avatar
Myask
Posts: 965
Joined: Sat Jul 12, 2014 3:04 pm

Re: Entry Thread - Waddles the Duck

Post by Myask »

Played through it again; was able to get the gem I wasn't sure of easily without dying now that I know he's really three full tiles wide.

Level 4 has, at the beginning, the one instance of "taking the first warp denies you gems". So it's not 100% true what I said, only 95%.
Post Reply