Part 3 – Rolling It Up
Welcome back to the final section of the three part series on my exploration into refining ball movement in a video game. In part one, we talked about the benefits of using torque over force and about setting up architecture for your ball. In part two, we talked about appropriate use of force when changing direction. You can find those posts here: Part 1 and Part 2.
I have spent a great deal of time ironing out small details that have really completed the movement experience in Rollossus. Thankfully, most of these details have been pretty straightforward, but are often overlooked at first.
This detail is pretty simple, and might not be an issue you even run into, but I felt the need to mention it. Give the ball a chunky, distinct texture. If you have texturing that’s completely even or subtle, it will just look like your ball is hovering around, and it will be hard for the player to tell that the ball is actually rolling.
Imagine a game that feels like every single ice level from a video game ever. Unless you’re specifically designing around that, it’s probably going to not be the best. If you don’t have good friction values in your game, that’s exactly how it will feel.
What makes a “good” friction value? Honestly it depends. For Rollossus we wanted our game to feel really sticky and to give the player really snappy controls. We have relatively high friction values on both our ball and our ground materials, but honestly the only way to find a “good” value is to play around with it and evaluate what you need in your game. Exact numbers will vary depending on ball weight, gravity, etc. I would say a good rule of thumb is to start high, and move down.
If Mario lost all control every time he entered the air, it would take away a lot of the control that players expect in a game. The same rule applies for a ball. Early on in playtesting we didn’t have any air control whatsoever and playtesters hated it. Every time somebody hit a small bump or took a large ramp they completely lost control and had to accept that wherever they land is where they land. It felt bad.
The solution to this is more force. When the player enters the air (we found that with a short line trace looking for the ground, but there are many solutions), we apply force to the ball in whatever direction the player pushes the movement stick. In Rollossus, this value is relatively small, because we want the player to feel like they can influence where the ball goes in the air rather than control where the ball goes. Think of it as more of a nudge rather than a push.
Early in development we had a lot of issues with the player having to change direction really slowly, because we didn’t have all the architecture and solutions from part 2 set up. To compensate for this we moved our acceleration value to a very high number to simulate good player movement. However, once we had it all fixed we went a long time before fixing this overcorrection. Having a very high acceleration value means the player will feel less like a ball slowly building up speed and momentum and more just like something that goes from a standstill to max speed in an instant without any sort of concept or feeling of weight.
This is intentionally vague, but it’s worth mentioning it as a consideration. Don’t forget that your ball is a physical object that interacts in the world. Kicking up dust behind the player as it moves, camera shake when hitting a wall really hard, squashing/stretching effects, or maybe even camera shake when moving at max speed are all things you can do to make the player feel more physically placed in the game world. This will all likely be context dependent for your game, but it’s worth thinking about the player experience as a ball and things that can help solidify that experience beyond the direct mechanics of rolling.
That's all for this blog series, I hope you enjoyed, and if you have any questions please either leave them as a comment here or contact me through my personal email at [email protected].