The world flounders, but a beacon of stability shines brightly through the fog of panic and pandemic. That beacon is Logic World Wednesdays: ever on time, ever organized, ever punctilious. We are here for you when you need something dependable in your life.
Settings Menu Polish - Jimmy
This week Ive made a number of improvements to the settings menu.
[previewyoutube=w-HrTYwndhE;full][/previewyoutube]
The machine in that video was built by the lovely @woox2k :)
Tracker Improvements - Felipe
This week Ive been working on improving the tracker website that the beta testers are currently using for reporting bugs and other feedback.
Firstly, this week Ive beautified the main page. You can now see each tickets creation date, type, status and ID.

Ive also added another property to tickets: its priority. It ranges from 0 to 5, from least to most important.

Thanks to these changes, its much easier for us to manage a large number of tickets. We can easily see what needs addressing.
More SECCS - Felipe
Last week I told you I was working on a rewrite of
SECCS, our library for converterting arbitrary C# data into binary and back. This week Ive continued this work and integrated the new SECCS into Logic World. Its now correctly reading and writing all the packets, while also being much cleaner and easier to maintain! The next step is making it fast, since up to this point Ive been focusing on readability over speed.
Robust Initialization - Jimmy
When Logic World connects to a server, there is a process of initialization wherein the connection is verified and established. Previously this process was very haphazard and error-prone; there were a number of cases where the initialization process would not complete properly and youd get stuck on an infinite loading screen when you tried to connect.
This week I worked out and implemented a robust and reliable protocol for initialization. Its a careful back-and-forth with verification at every step. It looks like this:
[olist]
Client requests connection with server. It sends approval information like the game version and the mods installed.
Server approves connection
Client verifies that the connection has been established
Server sends the information needed to load into the game, such as the contents of the world and the other players currently on the server
Client pauses processing of all incoming network messages (such as updates to the world) until it has fully loaded into the game
Client informs the server that all is well and it has loaded into the game
[/olist]
This is on top of the UDP message reliability features built into Lidgren, our networking library.
Thanks to this new protocol, all the bugs with connection are fixed. You can connect to a server with other players in it, you can connect to a server with a huge world loaded, you can connect while someone else is disconnecting -- it all works as it should, and I am a very satisfied developer.
---------------------------------------------
We'll keep releasing these weekly updates right up until the game comes out. To make sure you don't miss them, you can sign up for our newsletter or join the official Discord, and of course you can wishlist and follow the game right here on Steam.
See you next Wednesday!
View this post on logicworld.net.
More Logic World Wednesdays
https://store.steampowered.com/app/1054340/Logic_World/
[ 2020-03-20 15:17:55 CET ] [ Original post ]