Posted July 30, 2019 by Nitzan
#2D #godot #Isometric #MMORPG #Pixel Art #Real time strategy #Strategy RPG #Tactical RPG
The last week was a fun milestone. Up until recently, although the game was playable, you couldn't really get the characters to do what you had in mind for them.
A few behaviors expected from an RTS were missing:
On top of those, combat parameters like damage, healing done and cooldown times were never given more than an afterthought.
To get those in order, while spending as little time as possible on development tasks I had to implement some tooling.
Since most of the game logic is taking place on the server, tuning combat parameters and repositioning characters created the constant hurdle of re-deploying the server, so, in order to prototype more rapidly I ended up implementing two hot reloading features allowing me to prototype while avoiding re-deployment.
Although I did not mention this before, the way the server knows how to instantiate a map is through loading the map scene file from the game editor. So until I settle on a more dynamic solution, the map has to be prepackaged with the server deployment.
Until I implement a more complete solution for server map loading I added a debug map loading RPC, allowing me to hot-load an alternative map to the main map to be used by the server without having to restart it.
All characters on the map are loaded through character "templates" that, until recently, were hard-coded in the server. Again, forcing me to restart the server to implement changes.
Here I wanted more leeway. I wanted to be able to change character specifications way more rapidly because I'm predicting a lot of minute tuning will be required for those, possibly during an active match.
That required two things:
To make the solution more complete I also ended up developing a helper tool that, when directed, watches a local file for changes and injects the new contents to the server.
All this required a lot of work but the end result is satisfying.