Godot 5 Wish List

Godot has had some coverage, and over the course of a conversation, someone said something like “What would you even want in Godot 5.”

I made a couple of off-hand lists, but I think there might be something interesting here so I’m going to go back, edit them together, and add a few more.

  • Interfaces, and deep integration of interfaces. For example, I’d like to be able to create a Group with an interface and ensure that any node added to that group implements that interface and get editor support when I pull that group. Interfaces should be able to require methods and signals at least.
  • Improve large scale scene editing and navigation. The scene editor is great for something like a character, but it’s downright painful to move around a really large scene to try and use it as a level editor.
  • Built-in heightmap terrain
  • Split Code Windows (and better code window management in general. They seem to open and switch around at random.)
  • Much better asset import/export story. I’m mostly talking about Blender here. Getting an animation successfully exported and imported is an arduous journey.
  • More debug drawing primitives. Arrows and stuff.
  • Please make it less painful to edit dictionaries in the node inspector. Needing to click add and navigate a drop down for each key hurts. Should be easier now that we have typed dicts.
  • Print should use log levels we can toggle like we toggle drawing navigation and physics shapes. Bonus if we could expose our own log level checkboxes in the same menu.
  • Better debugging information during nav mesh baking. Understanding why the nav mesh turns out the way it does tends to be a lot of trial and error.
  • Demo projects replicating common multiplayer use cases in depth to demonstrate parity with popular multiplayer games.
  • Allow us to define custom variable decorators (like @export) so that we can, for example, annotate which variables need to be persisted in a save file.
  • Tuples, especially Tuple unpacking so we don’t need to return untyped arrays everywhere
  • Pack file explorer so we can debug our exports.
  • Linter integrated with editor. Gimmie green squiggles, including support for linter flags like “forbid untyped vars”
  • Improved VSCode plugin.
  • Make it easier to move subtrees from one scene to another. Right now it’s a bit onerous.
  • Scene inheritance is sort of a mess; clean that up. I don’t have a great proposal for how but it’s a core feature and still feels like an obscure edge case by how the editor handles it. My not-great proposal is to have scene superclass be a parameter you can change in the inspector with a ‘reparent’ dialogue.
  • vi mode for the editor.
  • Python style fstrings.
  • Input event names could be an enum or something like an enum so the editor is aware of the available options. Ditto for groups. This works very well for node paths, I’d like to see it in more places.

Some of this may already exist, which makes it more of a doc bug than a missing feature. If some or all of these are filled in by plugins, please let me know in the comments if I’ve missed any good ones.

Lead Testing wargaming minis

First, an apology. If I’d known I was going to write this up, I would have taken pictures of the minis and the lead test results. Lacking that, you’ll just have to trust that I read the test strips correctly. I encourage anyone to test any minis they’re concerned about, and don’t file or sand metal minis around kids.

Random weird knock off space marines of questionable origin: Lead

I tossed them, but they weren’t anything I’ve seen before or since. They resembled space marines but had vertical slats for face plates and resembled robots. May have been garage minis. Really kicking myself for not taking a picture.

Microworld Games: no lead

Agents Of Gaming: No lead

Brigade Models Starmada ships: No Lead

Scotia Grendel: Positive

Privateer Press (warmahordes): Positive (this is surprising because they’re a pretty big outfit.)

Old Questionable Fasa hex walkers: Positive

Cloud Nine’s Heavy Gear mechs: clean

Fading Suns A Call to Arms: Clean

I have a bunch of IWM things, so I tested a few

the Forestry mech labeled ‘Lead free pewter’ was indeed lead free

The Long Tom seemed clean, maybe the slightest positive?

But another seemingly new tank (probably a Shrek PPC carrier) had one of the strongest positive results I saw.

Lab Notes

I accidentally flicked a bit of vinegar/reagent mix into me eye. Owch. Washed it out pretty exhaustively… I hope.

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