On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags
(1 edit)

Day 6

Done today

  • Can now add multiple controllers per war machine, using code or the editor.
  • Danger, an enemy is shooting at the player!
  • Added a gatling gun cannon-type.

Godot Tools for Visual Studio Code

Having two computer monitors, but being stuck to work in a single one, was not ideal, so I went in and configured Visual Studio Code as an external text editor. Using the excellent godot-tools plugin, I’m now able to do as I did in Godot (breakpoints, variable and scene inspection, etc.). It only took minutes to configure, and the process is well documented. I’ll see how I like it after a couple of days, but tonight at least, it felt less cramped, and did not seem to come with any drawback.

Controllers as components

Yesterday, I added a single controller as a member of the base Warmachine class. Today, I decided to extend that, so that any number of controllers could be added to a single Warmachine. This will allow for multiple concurrent control schemes (e.g. gamepad and keyboard+mouse), and will give me more freedom when assembling complex behaviors for enemies. I also made those controllers as scenes, so they can be added and configured from the editor.

Enemy shooting at the player

For now, the enemy is as dumb and aggressive as can be. One controller makes it charge the player, optionally staying at a minimum distance, and another controller shoots towards the player non-stop. This would probably need to be refined when working on proper enemies, but it does the trick for now as a proof of concept.

I had to do a couple of changes, mainly making the cannon class know who can be hit by the bullets it spawns. Making it configurable allows me to reuse the same cannons and projectiles both on the player and their enemies.

What’s next?

Tomorrow, I plan to work on one of the following:

  • Detaching the projectile and cannon types.
  • Basic UI to show the player’s health, and manage dying more elegantly.