Tis' the season

I'm starting this dev blob with a bit about the importance of Christmas, before we jump into game dev.

It is the season to remember what Jesus Christ has done for us - He reconcilled us to God through His death on the cross and his resurrection 3 days later (which we remember at Easter). At Christmas we are reminded that He came to be with humanity. Jesus Christ, God come as a man, to come and be with us, his creation, and to save us from our sins!

“For this is how God loved the world: He gave his one and only Son, so that everyone who believes in him will not perish but have eternal life.
John 3:16
What a great God we have!
We at bitshift wish you the best over this Christmas season.

A new (old) master server

The circle of "master server" goes full circle! Let me explain.
My first master server was written in GDScript using IRC. This worked but was slow to connect - in the order of 20 seconds.
So I eventually decided to try using the Matrix protocol as my brother found a Matrix library for Godot. I spent a long time getting this to connect quickly and made many attempts to make the protocol work as a master server to no avail. So in the end I let Matrix provide chat functionality and wrote the master server in PHP with a SQL database.
But with all the trouble we have had with our website hosting, the PHP master server has been left non-functional waiting for a solution.

I recently thought to myself, what was ever wrong with my IRC master server? It just worked and didn't need me to host find a web provider to host a PHP server + SQL database.
So now comes a new master server in IRC! Basically this is the same old IRC but now implemented in C++ using an IRC library. IRC allows me to implement my own commands by joining a special channel where the servers can talk to each other.
Doing this in Matrix is problematic in that any Matrix IM client would see you in this special channel and notify you of messages and such, which is not good for everyone out there who is using Matrix as their IM of choice. IRC obviously also provides chat functionality and by moving to C++ it appears connection times are super quick - roughly 8 seconds!

IRC also does not require a login so we can start the IRC connection process as soon as the game is launched and change the users name later if needed.

Plans for next year

As you are aware, things have been pretty quite on the Trains & Things development front recently. This is because we develop the game in our spare time and our real world jobs (you know that thing that puts food on the table) have been extremely busy lately. To that end, I have decided to take off a few months early next year to try to finish off Trains & Things. My brother will also be taking some time off to assist.

Our plan is to enter Early Access around the end of January and to leave Early Access a few months later assuming we get the game to a state we are happy with. Will will guage as we go wheather or not we can afford to continue full time or some part time development.

Steam submission

Because of next years plans, we have been trying to get a working version of the build onto steam so that we can get a pre-approval to release whenever we are ready too. Unfortunately the switch the Vulkan branch of Godot has made this super challenging.  There have been a number of graphical glitches, of which I have submitted some bugs with code fixes to the Godot team. Most challenging has been our water shader which has taken me a few days to basically break down and rebuild to get it working in the editor, only to find that it does not work in game for some reason. So now I am spending my evenings after work making changes to some shader code, compiling, loading up a game, testing if that line works... rinse and repeat until I find the problem.
In the mean time we have submitted a build to steam for them to review hoping they will overlook these few glitches.

To that end, we shall finish the year with a cool train video I found on YouTube:

Thats all from the bitshift team for 2019!

Popular posts from this blog

Slow progress towards 0.4

v0.2 b1797 Released

Working towards 0.4