Showing posts from December, 2017

Mod support & Train config

Whats going down in code land? Mod support Lately, I have been working on mod support. I wanted to get this done early in the piece, so that modders can start working their craft.
Also I want to get feedback from modders to help improve my code API for them, and so would rather do this sooner rather than later.

For example, in writing the "Example Mod," which will ship with the game I wanted to replace the train with a customized version. To do this without any modifications to my code would take 5-10 lines of code. This was overly verbose, and as a result I modified my game code so that I could do it in 1 line of code.

The tricky bit with modding at the moment is that of breaking backwards compatibility as I continue to work on code. This is the bane of modders - when a developer goes and radically alters their code breaking mods. Unfortunately there is nothing I can do here except provide good communication over what has changed and why.

For research, I looked at Factorio…

Master server

The new master server code is up and running!

In Dog Fight we used the Unreal 4 engine, which provides its own master server, which I assume is located at Epic HQ somewhere. But Godot has no such built in feature.
I came up with the interesting idea of using IRC as my master server as I noticed many free IRC servers. I hobbled together a master server implementation based on IRC by implementing the IRC protocol in Godot. I found this took a long time to connect to the IRC servers as there was quite some handshaking going on.

Sometime later, my brother stumbled across a great Godot plugin written by vurpo, which adds C++ support for the Matrix IM protocol. I then dropped this plugin into my project and have had only chat support for a long time, and this caused my IRC plugin (and hence the master server code) to become broken.

Seeing that I have had some time recently, I decided I wanted to finally get this sucker working again so I don't have to keep joining my multiplayer games …