Editable Controls - Jimmy
This week Ive finally finished the user interface for editing your controls!
[previewyoutube=hcEsP3EiXHc;full][/previewyoutube]
As you can see from the video, the input system and the interface that supports it are incredibly complex. Programming it all was a very fun challenge.
New Website - Felipe
Over on https://logicworld.net/, we now have a brand new site! I've been remaking the website into a bunch of separate services (coded in
Go), instead of the single big application that it was before. This has the advantage of being much easier to iterate on, as there is less code that has to be compiled for a single change, as well as being easier to test since each service can be tested independently from each other.
Perhaps most importantly though, is the fact that the site now doesnt require JavaScript at all. It does use JS for some stuff but only QoL improvements: the entire site is 100% usable even with all JS disabled.
Im still working out the kinks on the new site, re-adding missing features, and improving the visuals, so expect lots of updates to it in the near future. Now that the new site is live, I dont have to worry about maintaining the old site, and I can focus completely on this new version.
Hole-punching - Felipe
This week I've also been working on the system that will allow you to join your friends' games. We intend for this feature to be as easy as possible to use, requiring just a single click from the user's point of view.
This is achieved through
UDP hole punching, which bypasses the most common NATs and in turn removing the need for you to forward any ports at all. Hole punching consists of 3 parties: a client, a server and a master server. In our case, the client is the user that wants to connect to a game, the server is the user that's already in-game, and the master server is our cloud server.
When the client wants to connect to the server, it first sends a request to the master server and asks for information about the server (that has previously been registered). When this happens, the master also sends information about the client to the server, and finally they both are able to connect through the tunnel that has been established.
That was a very simplified explanation, if you want more details you can check out this
paper that really helped me fully understand it.
The proof of concept is done: I have successfully joined another instance of Logic World running on a remote PC --
Bob, to be precise -- without any port-forwarding. The next step is to integrate this logic with the game UI and Friends system.
Bugs Fixed This Week
- Fixed various issues with game input when there is no keyboard or mouse plugged in
- Fixed not being able to bind Keys to buttons on a gamepad or joystick
- Fixed not being able to bind Keys to mouse buttons or to scroll wheel actions
---------------------------------------------
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.
More Logic World Wednesdays
https://store.steampowered.com/app/1054340/Logic_World/
[ 2020-07-16 06:21:39 CET ] [ Original post ]