Road Not Taken: Godot’s VehicleBody in Hovertank22

It’s no secret that I’ve been captivated by trying to make vehicle driving feel good for as long as I’ve been programming. Initially Hovertank 22 (formerly OWTD) used Kinematic movement as described here. But it wasn’t quite right. I have a strong memory of how much more fun World Of Tanks was after they introduced proper physics. I decided that if a third person perspective (as oppose to top down) was going to be used, I should probably use some sort of physics.

In Godot you have at least two options: the ‘easy’ one, using VehicleBody and the hard one, using a bunch of 6DOF joints. I elected to use the former, in this barn-burner of a PR. And it… well it sort of works, I guess.

As you can see, though wonky, the Tilter is able to navigate the terrain. It’s using a single visible steering wheel in front and the tracks are represented by two invisible wheels in the back. This movement model is, of course, built for car driving games, so the trike configuration cuts into the stability badly. The requirements of “Eamonn’s Ideal Vehicle Game” and thus Hovertank 22, however, call for tanks. Unfortunately, this has major disagreements with the movement model.

The basic idea, I figured, for implementing tank movement has been to treat each track as a series of wheels. To turn right, you drive the wheels on the left side and brake or reverse the wheels on the right side. In a real tracked vehicle, this causes it to turn. In Godot’s model, however, wheel slip seems to be very all-or-nothing: the vehicle stays in motion nicely but as soon as you cut the wheel and one track slips, the whole vehicle starts to drift uncontrollably. While some amount of drifting was desired, this turns out to be unplayable. And, worse, messing with wheel slip values didn’t really help.

Editor screenshot showing how the Cobra’s wheels are configured

Another problem with this movement style was that when the vehicle was in motion, differential steering worked far more effectively than from a dead stop (I assume that this has something to do with how overcoming friction is coded.) In order to turn from a stop you need to overcome the friction of all of the wheels, so turning while stopped was impractically slow. I implemented a fix which increased power when you weren’t moving but it was unsatisfactory and resulted in a vehicle that jerked around suddenly and violently.

I suspect that customizing the 6dof version might be able to overcome these limitations, but I don’t have the bandwidth to try it. Similarly, it might be very possible to implement this sort of thing as a custom integrator and bunch of rays, but again, that was more of a lift than I had time for.

Faced with basically a negative result from this experiment, I’ve decided that I’m going to roll back (ha) from the VehicleBody approach. I may switch back to a top-down perspective, and also may try switching out heighmapped terrain for tile terrain.

So what did I learn from this little excursion? You really need to validate your assumptions about how something is going to behave before you stake a project on it. I’m glad I didn’t fully do that (I still have a path forward for Hovertank ’22), though pulling it out is definitely going to be a setback.

PAX East 2020

On the eve of the Covid-19 Pandemic, with the stock market tumbling, hundreds (thousands?) of game fans breezed into a convention center to try some new stuff, purchase apparel, and frequently use hand sanitizer. It was everywhere.

Image
There’s something sinister about the rise of Discord, but I can’t explain why yet

Thursday was far better than Saturday, so definitely go then if you can. I was able to play far more games, and the boardgame tables where much easier to navigate.

Exciting New Games

While speaking to the creator of BlazeSky, I name-checked Escape Velocity and he knew what I was talking about. But the more I look at it, the more it looks like Empty Epsilon/Artemis. The different styles of play (rescuing people, combat, exploration, etc) are represented by different characters who give you quests, which is a neat approach to writing storylines. I found the banking camera made it difficult to reason about where my shots where going, and I hope that at launch there’s an option to keep the camera steady while the ship turns, but even if there isn’t I’ll probably play the hell out of it.

Another game that was physically demanding just due to its camera was Sludge Life. After you fight through its extremely elaborate recreation of a 90s desktop interface you’re dropped in a colorful, heavily distorted 3d environment. Very Getter: Headsplitter. The distortion (I think the vertical FOV was unusually high or low or whatever) was jarring and slightly dizzying. I predict that this game will be a stoner-hit of Rez proportions. Devolver is playing in the same space as Adult Swim here.

Watched some people play Dunk Lords. The world is ready for strawberry-headed athletes. You could dismiss it as Space Jam: The Videogame but stripped of its bizzare branding, the concept of cartoony basketball feels pretty novel. Sports games that attempt to simulate a sport (like EA’s catalog) or Be a sport (like Rocket League) aren’t my jam, but using the basic rules of a sport to do something unique or new definitely is.

Watched some Panzer Paladin play. There was an enormous reproduction of the cover art, standing out against the crowd. Makes me wonder what the differentiator is. It looks like a Gameboy Advance game (specifically, it looked like Metroid) to me, and though the mechanics where cool and smooth, I wonder who’s buying enough copies of this to justify an enormous booth at PAX. What’s the differentiator. Are they just striking at the right moment? Is it the great Anime art? Am I not enough of a sidescroller fan to understand what the difference between it and AVGN Adventure (which we also demo’d) is.

A radically different sidescroller with very clear differentiation was Carrion, a game where the avatar resembles the blob monster from The Thing. I’m not sure what the gameplay is besides sliding and swinging around an industrial environment and eating (?) the little NPCs that run from you.

If you’re itching to play Star Citizen but don’t like social interaction or having to hire an entire clan to operate your large spaceship or pass flight training to join an org, and also want a game that’s finished, I unfortunately can’t recommend Everspace II yet, because it isn’t finished either. But what I did play compared favorably to Star Citizen, and I venture to say that it’ll be done far sooner. The vision of space was colorful and dense with things to explore and tractor beam into your ship.

I also got a chance to demo Brigador Killers. In addition to the stompy robots seen in Brigador, you get to play as an infantry suit or a giant floating wrecking ball. The controls are also slightly different – rather than absolute direction, your WASD controls are now relative to the mouse. It took some getting used to, especially with the wrecking ball.

Parting Thoughts

Check out the screen attached to this expensive of a gaming PC. I’m not sure words will do it justice, but if you’ve been here, you know.

Image
The dreaded launcher update.

I also demo’d a Cookie Clicker clone which I won’t name to protect the guilty. It pitched itself as being about the development of life from molecules to technological singularity. However, in reality it is a cookie clicker clone, the meta of a game (buy stuff on a tech tree to augment your abilities) without the actual gameplay (you score by just tapping the screen. Anywhere on the screen. I wondered again what the filter was between successful games and trivial games. Was presence at PAX a marker of success or a desperate gambit? I told myself I was done with the game, but then I reached down to the tablet and tapped it a few more times.

Unrelated image of a book that was on sale at the convention