The Exciting World of Nudging - What's Up Wednesday #21
Added 2023-09-13 17:03:46 +0000 UTCHey folks,
I made three little additions to Bazooka Panic on a whim yesterday. Let's talk about them!

Jump Nudging
I watch a lot of Kaizo Mario stuff on YouTube. It's cool too see the mechanics of Super Mario World pushed to their breaking point and it shows how much thought and expertise was put into the base game.
One little thing I kept seeing was how Mario's jump nudges him over if he jumps halfway between an overhanging block and an open space. It's sort of like the game saying "Ah, I know what you meant to do, let me just fix that for you."
It's a little touch that smooths out the gameplay in general, helps new players, and gives experienced players something they can potentially exploit. I love it! So I put it in Bazooka Panic.
In the move code, every time Mira moves up a pixel and there would be a collision with a wall I check two of the pixels above her collision box, one to the left and one to the right. If one of them doesn't have a collision I know there's a gap she can move into so I nudge her over pixel by pixel until she isn't colliding with the block above her anymore.

Donkey Cam
What kicked off my programming sesh with Bazooka Panic was this Game Maker's Toolkit video. In it Mark Brown describes a lot of techniques for maximizing the use of your camera in 2D games. Most of the techniques I had already heard before (I think even from other GMTK videos) and tried before (sometimes successfully!) but one line really stuck out to me:
"...You don't need to treat both camera axes equally. It (the camera) can do completely different things when moving left to right and when moving up and down."
Huh. Maybe that's why when I tried the Donkey Kong: Tropical Freeze method of moving the camera's Y axis only when you landed on a platform, it felt weird and bad despite the fact that I was confident it would work much better for BP?
I checked my camera code to see how similar the code for the X and Y axes were and as it turned out, they were pretty similar! I moved the Y axis a little slower than the X but that's about it.
So I added a little bit of complexity and some more communication between the player character and the camera. The Y axis had to lose some of it's punchiness to make the new, steadier version work but I just segmented that old part of the code off and call it back for when I need punchiness, like when Mira launches herself with Jump Orbs.
The new version still needs some tweaks but what I have now already feels natural. Looks like I'm not done with BP's camera system just yet.

Gripping/Skating
Finally, I crammed in some of the physics from GripSkate. I even got them working with Mira with some expected jankiness!
My intention is not to turn BP into a skateboarding game but rather to incorporate the physics into new enemy designs.
See GripSkate's physics only exist because I was trying to fix slimes in Bazooka Panic. Slimes move along the walls and ceilings of Bazooka Panic, sticking to those surfaces and following that set path. Except sometimes they freak out when they hit an overhanging corner and fall or glitch out.
I think I can fix that behavior with what I learned making GripSkate and also use it to design other enemies, projectiles, and challenges. I could maybe even try a level with no gravity where you can jump to different walls like in 0Space!
There's also a bunch of things I learned making WIZARD LAWS and Gig Master this year that I'd love to give a second life in Bazooka Panic once I find the time.
-
That's all I got for today. Thanks for reading and thank you for supporting SuperTry!
KC
PS: Oh yeah I also fixed a bug in Bazooka Panic where the game would crash when you minimized the window. Some tweaks aren't as flashy!
PPS: This What's Up Wednesday is available to everyone! I'm going to try and release these into the wild every now and then. If you like these kinds of posts and would like to read one every week, consider throwing me a dollar!
Comments
Thanks bud!!
Kevin Cole
2023-09-14 15:35:15 +0000 UTCThis is a dope update!
Corey C
2023-09-13 19:27:45 +0000 UTC