Posts

Vehicle Edit & Clone Support

Image
Vehicle Edit & Clone Support We are having a LAN with mates soon and want to test out T&T with more than 2 players. On that note, we have been sprinting towards ironing out the final big pain points.

What would that be you ask?
I'm glad you asked... seeing as I planted the idea that you in fact did want to ask in the first place! If not, tough! But you already know as the title has given it away: Bug free (I hope!) support for editing a vehicle's route as well as the ability to clone a vehicle.


The vehicle panel (left side of the screen) has some snazzy looking tool buttons that provides access to: (1) locate and follow the vehicle, (2) edit the vehicle, (3) clone the vehicle, (4) delete the vehicle.

Clicking edit or clone will bring up the dialog you see on the right which shows where the train will stop and what will be unloaded and loaded at each stop. This is now editable once the vehicle has been setup, which should allow for some good micro to optimize profit!

Pain point iteration

Image
Leveling System  We have been continuing our "pain point iteration," that is, playing the game, finding pain points - things that are painful to endure when playing, fixing them and repeating the process. Again we sat down as a team on the weekend and had a multiplayer game of T&T. Once the game was over we discussed what is the biggest thing that needs to be improved?

Surprisingly we came away feeling that the game was really fun and well balanced. It caused us to have to think about where and when we built, to watch the wallet and to ensure we were encountering profit before we proceeded to attempt to expand.

The biggest pain point was that the only way to expand was to expand to other cities and develop resources all over the map (lets call this "horizontal" gameplay). The cost of horizontal expansion is significant which leads to a mid game economic slump. The early game we have the bank to give us enough of a loan to get up our first resource chain to de…

Dialog overhaul

Image
Now that setting up a train is a really lovely experience, we sat down and had a few games of multiplayer so that we could identify the next major pain point when playing Trains & Things.

Surprisingly, it boiled down to fighting with the user interface - we were always moving windows around and they would always end up in crazy positions. Especially when playing in a window and resizing the window. They would even vanish into the ether and we could not rescue them!

Our initial UI design philosophy was to have dialogs as we knew from the get go there would be a lot of information the user could dig into. We figured that allowing the user to lay this out as they liked would be great!
But here we see the ideal depart from reality. The theory is great, the practicality is vastly different.

We again talked about what different games do thing well, and why they are done well and those games that do them bad and came up with a new solution to the problem: Let the game pop panels in from …

Mod support & Train config

Image
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

Image
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 …

The end of hibernation

Image
Well, study is finally winding down as I finish my degree. That means I now have time to resume work on T&T.
Since last time I haven't done much apart from keep an eye on on the Godot engine watching it become more and more stable and getting in a few of my own bug fixes.
My computer blew up which was well over 5 years old. I have built a new system: a Ryzen 5 1600, RX580 and a 29" ultrawide monitor. This thing is such a dream to work on.
As I write this up, I am doing a build which is making out all 12 threads at 100%!

See full size
First thing I have worked on is to get the latest Godot code and get T&T working again as the engine API is still in flux. The closer Godot gets to a release the less and less this will change.

I am also looking now at working getting the master server working with the Matrix IM protocol. Previously I was using IRC as a chat and master server system but it took too long to connect to the IRC channels. Matrix is much faster, and I have pus…

September, 2017

A really quiet month this month, just getting a bunch of engine fixes pushed into Godot.  Godot is become more and more stable, but keep changing their API's so I'm also trying just to keep up with them.

Starting the new semester has my priority at the moment, so I expect things will be quite for the next 10 weeks before I can get back on track.