To start off the frog mechanics, I wanted to find an online tutorial for a 3D Mario style platformer in unreal engine. This would be the basis that I would transform in to a frog movement system. The best I found was this tutorial series by Dev Enabled that actually provided the complete unreal project with all the mechanics pre-programmed. Despite that, I followed the tutorial so I had a proper understanding of how everything worked and to get back in to the practice of programming. The tutorial provides animations and models to focus on how to implement them into unreal instead of creating them, so my prototype is going to look like a little guy as opposed to a little frog. I removed the air jump logic as that wasn’t a desired function. I also modified the wall jump by turning it into more of a wall kick that gives no height to remove the possibility of climbing up between two parallel walls. The wall slide/jump may be removed entirely if it is found to be annoying when trying to jump up on to ledges.
My first major change to the programming was to change the default “jump” character movement function to “launch character” so I had much greater control over the angle of the jump. With this I could make the jump a lot more jerky and elongated, more akin to a frog. In the character movement settings, I also increased gravity scale drastically, decreased air control in comparison to your usual platformer, and cranked the ground braking deceleration to make the jumps much more rigid and sticky. One issue I had is that launch character stacked with the current movement speed, meaning repeated jumps would rapidly accelerate the character to absurd speeds. To fix this, I set the character velocity to 0 before each jump. Here is the jump programming as of writing this entry, which was turned into a custom event to streamline a later mechanic.

I scrapped a change to the standard walking movement. I originally wanted to make the standard movement lots of small rapid jumps, similar to the Mario Odyssey captured frog. I tried doing this with programming by repeatedly using launch character when the player moved. This worked somewhat as intended but just didn't feel great to play (should have taken a video of it). I decided this could just be done with animations and scrapped that idea before I went too deep. But I later decided that the standard movement would be a slow crawl, and the player would repeatedly press jump to move around the world quicker, although this could be subject to change if players find that monotonous.

My next goal was to create a charge jump. My first iteration would charge the jump depending on how long you held crouch for, then when jump is pressed the character would jump a scaled distance according to the charge. This was done by setting a “jump charging” boolean while crouched, which would increase the value of “jump charge” in the event tick to a maximum value. This would then be multiplied into the jump calculations in a separate charge jump branch when the button is pressed. However, I realised this would be incompatible with the planned mechanic to change the jump angle with the movement controls, as the frog would start moving when trying to control the angle. Instead I would change to a combined input system, where you would hold jump down while crouching to charge it, which also locked your position.


