Dev Blog #4- Sweet, Sweet Game Feel
Hello! I am Matthew Roy, MilkShed Games’ lead programmer, and this week I was told to talk about “programming stuff”. More specifically, I’ll be discussing how we have approached the development of RV Punch differently this time around when compared to its original iteration a few years ago.
If you are unaware, the version of RV Punch currently in development here at the MilkShed is actually a sort of “remastered” version of another project we made with the same name when we were all attending Champlain College in our Junior Year. The original RV Punch was fun to develop and play and received two awards during its time in development. With that said, we are tackling it once again to publish a version that’s better than ever. With us remaking the game, there is a lot of opportunity to reflect on the original game and how we can make improvements.
The main point we attempted to tackle when considering the remade version of the game was how the vehicles in the game actually felt. In the original game, the way the RVs were controlled wasn’t very impressive. It felt more like you were controlling a sliding box than driving a vehicle most of the time… and that’s because the RVs essentially were sliding boxes! Here’s a video from very early on in the original RV Punch’s development demonstrating basic movement and the jump punch ability being used to perform a shortcut:
With this in mind, me and our other programmer, Nicholas Robbins took a dive into how we could improve RV Punch’s driving. In the end, we decided that completely realistic vehicle physics wouldn’t be the best fit for RV Punch, but we did decide to include certain heuristics to improve the feel of the RV.
The first heuristic I implemented was a more realistic take on steering. When you’re playing a game on a controller and you are directing a character to go left or right, it isn’t the most realistic thing to be able to immediately switch between the directions at the same speed your thumb can move the analog stick. With a car in real life, if you’re turning to the left, you have to turn the steering wheel all the way back to the default position before you can even begin turning right. So, to simulate this better, a value that controls the RV’s turning is now separate from your controller’s analog stick and slowly moves towards a maximum “turning value” to simulate a real car’s steering wheel. We believe this adds a nice weight to the RVs that gives context to their size and general bulk while driving around the track.
Another detail implemented is the simulation of directional friction, or “anisotropic friction”. In real life, cars are much more likely to move forward or backward along their wheels due to the wheels rolling. While sliding sideways is technically possible if a car were to lose control, it is much more difficult. By simulating the friction of the RV’s rubber tires, the RVs feel more under control when driving on the ground. While you spend a lot of time flying through the air by jumping or punching off walls in RV Punch, having the normal driving feel good as well is definitely a good thing.
Finally, another group of details we have begun to implement are visuals to make the RVs feel more like real vehicles. So far, we have made it so the body of the RV leans away from the current velocity to make it look like it’s more accurately responding to sudden changes in speed. Otherwise, we want to look into more details such as the slides or awnings on the RVs being able to slide in and out while driving or bits of furniture falling out upon receiving a large impact. Little visual feedback like this will go a long way in making the RVs not only feel like they’re not just sliding boxes, but also look like it too.
With these improvements, we hope we can make the RV Punch racing experience more polished. Between visual details and changes to make the RVs feel slightly more realistic, the RVs in the game should feel much better than in the original version. This week I spoke about the “RV” part of RV Punch, and next week my fellow programmer Nicholas Robbins will be speaking about the “Punch” part and how we are implementing new features and visuals for the arms.