Avyrra
Member
Long post, but I've been doing some experimenting and it's a conversation I've been wanting to have for a while.
I've been scrambling together bits of code recently and testing out momentum based movement. Mostly by theory-crafting how movement can be fun on it's own if it's intuitive and responsive. I don't have enemies or powerups or anything fancy. Just a red block jumping on other blocks. And to be honest, I'm having quite a lot of fun just jumping around in a nearly empty room with what I have so far.
Anyway, I can move with the arrows and "X" is my dedicated sprint button (I was gonna use C, but my keyboard has some ghosting issues). Jumping is variable and the player can either do a high jump or a hop depending on how long the jump button is held. (Controls are planned to be reprogrammable, but right now Jump is bound to the up Arrow as it is most comfortable for me.) Movement speed is not ridiculously fast like some momentum games. It'd difficult to describe the feeling I was goin for with it, but for reference I move at 4.3px per frame walking and 7.5 sprinting(with subpixel calculations) at 60fps. Not floaty, but not too heavy.
Anyway, the conundrum comes from wall jumping. It's been done in so many different ways throughout many different games and the controls are usually different.
There is no double jump: my intent is to use wall jumping as one of the primary ways of gaining height.
I had friends and family test my game. I tried to get different people each time, but I also brought a few back to give me feedback on the controls.
As a scenario, lets assume the player has jumped and there is a wall directly to the right.
-Initially, if the left button was pressed, the player would wall Jump. Plain and simple. But this would cause problems with wall jumping when it's not wanted as I noticed testers would try to move away from the wall to land a tight spot, but would instead bounce off, launching them far from where they wanted. However, this was very responsive when wall jumping was intended.
-So my second idea was to press jump when the player is not facing the wall (holding left), to jump. It took tweaking of the code to make it fluid. Easy enough for me, but testers struggled... a lot. So even though this made sense to me, it took people ages longer to figure out how to wall jump. I must admit though that after not using it for a while, I feel like the muscle memory for this is gone.
-My last idea was the most successful. The player is facing the wall (holding right) and presses jump. It solved the problem of moving away from the wall early and was also responsive. But if felt really, really weird to me. However, for some reason, most new testers discovered how to wall jump very very quickly. Some still struggled, however, but even some testers that don't play games often were able to figure this one out at a reasonable speed.
After this, I booted up as many games I could think of with wall jumping that I owned and tried them out and there is a huge number of ways it's been done.
Here's some of the games I booted up:
I want to know everyone's thoughts on wall jumping controls and the most intuitive ways to execute it. Jumping without direction looks popular, but I am yet to have tested it. So, my question to you.
What are some interesting ways you've seen wall jumping executed?
What controls have you found the most enjoyable for executing wall jumps?
Are there any schemes you've invented?
Is there anything else you'd like to bring to the table in terms of intuitive movement.
Dark sodas vs Light sodas? (Unrelated, but I'm curious.)
I've been scrambling together bits of code recently and testing out momentum based movement. Mostly by theory-crafting how movement can be fun on it's own if it's intuitive and responsive. I don't have enemies or powerups or anything fancy. Just a red block jumping on other blocks. And to be honest, I'm having quite a lot of fun just jumping around in a nearly empty room with what I have so far.
Anyway, I can move with the arrows and "X" is my dedicated sprint button (I was gonna use C, but my keyboard has some ghosting issues). Jumping is variable and the player can either do a high jump or a hop depending on how long the jump button is held. (Controls are planned to be reprogrammable, but right now Jump is bound to the up Arrow as it is most comfortable for me.) Movement speed is not ridiculously fast like some momentum games. It'd difficult to describe the feeling I was goin for with it, but for reference I move at 4.3px per frame walking and 7.5 sprinting(with subpixel calculations) at 60fps. Not floaty, but not too heavy.
Anyway, the conundrum comes from wall jumping. It's been done in so many different ways throughout many different games and the controls are usually different.
There is no double jump: my intent is to use wall jumping as one of the primary ways of gaining height.
I had friends and family test my game. I tried to get different people each time, but I also brought a few back to give me feedback on the controls.
As a scenario, lets assume the player has jumped and there is a wall directly to the right.
-Initially, if the left button was pressed, the player would wall Jump. Plain and simple. But this would cause problems with wall jumping when it's not wanted as I noticed testers would try to move away from the wall to land a tight spot, but would instead bounce off, launching them far from where they wanted. However, this was very responsive when wall jumping was intended.
-So my second idea was to press jump when the player is not facing the wall (holding left), to jump. It took tweaking of the code to make it fluid. Easy enough for me, but testers struggled... a lot. So even though this made sense to me, it took people ages longer to figure out how to wall jump. I must admit though that after not using it for a while, I feel like the muscle memory for this is gone.
-My last idea was the most successful. The player is facing the wall (holding right) and presses jump. It solved the problem of moving away from the wall early and was also responsive. But if felt really, really weird to me. However, for some reason, most new testers discovered how to wall jump very very quickly. Some still struggled, however, but even some testers that don't play games often were able to figure this one out at a reasonable speed.
After this, I booted up as many games I could think of with wall jumping that I owned and tried them out and there is a huge number of ways it's been done.
Here's some of the games I booted up:
- Super Meat Boy - Press Jump. If near the wall, the player will wall jump regardless of direction.
- Mario Maker - Seemed similar to my 3rd scenario. Took me a while to get it, but I got used to it. This also applies for the other modern Mario games I own.
- Ratchet and Clank - Although 3d, move towards wall and jumping. The camera will swing around while mid jump so movement feels automated.
- Valdis Story: Abyssal City - Similar to Super Meat Boy, but there is a noticeable delay before the jump happens.
- Empty Black (Online Game) - Controls similar to my second scenario, although the player will stick to the wall indefinitely if holding the right button.
I want to know everyone's thoughts on wall jumping controls and the most intuitive ways to execute it. Jumping without direction looks popular, but I am yet to have tested it. So, my question to you.
What are some interesting ways you've seen wall jumping executed?
What controls have you found the most enjoyable for executing wall jumps?
Are there any schemes you've invented?
Is there anything else you'd like to bring to the table in terms of intuitive movement.
Dark sodas vs Light sodas? (Unrelated, but I'm curious.)