Logic World Wednesdays: The International Edition

by @MouseHatGames 2020-06-25

The Logic World Community Translation Project

Today, the Logic World Community Translation Project has officially begun!

localizor together 1080.jpg

The enthusiasm of the translators has been absolutely staggering. It’s been less than a day since translations began, and already we have thousands of translation suggestions, seven languages with at least one suggestion for each translation, and several dozen individual contributors.

Thank you to everyone who has so far helped translate, and thank you in advance to everyone who is going to. We want folks to enjoy Logic World in whichever language they wish, and thanks to you, they will!

Component Resizing: Endgame - Jimmy

At the suggestion of the thoughtful @tokumei, I’ve made some awesome changes to the Component Resizing interface!

This particular UI, I realize now, was a big blind spot of mine. For most of this game’s history, you couldn’t resize things at all, and it was a big missing feature. Because of this, I saw any form of resizing as “really good”; I didn’t realize how poor the interface was in comparison to what it could be.

That’s why I’m so grateful to this community and all the additional eyes it puts on the project. To Tokumei, and to everyone else who has suggested features for Logic World: thank you!

In-game logins - Felipe

This week I’ve been working on making the game connect to our servers, and the first step of that is to let users log in using their logicworld.net account. To do this, all they will have to do is press a “login” button in the main menu, and their browser will open with the login page. Once you enter your credentials and submit, you will be authenticated in-game!

We also considered having the login fields directly in-game. However, the login process is very complicated: it has to support creating a new account, resetting your password if you forgot it, sign-ins with external providers like Google, ect. It would be a lot of work to duplicate all this UI in both the browser and in-game, so we’re just using the browser login for both.

Friends list - Felipe

Many, many Wednesdays ago, I wrote to you about how I had started work on a Friends system for Logic World. This week I’ve picked up on that work, and I’ve added an in-game menu for all of your friends!

friends.png

This menu will show you a list of your friends, including the profile picture they set on logicworld.net, their username and their current status (online or offline). I also want to make this status reflect what they’re currently doing, for example “Playing with 5 people” or “Playing by themselves” (this could of course be disabled in the settings). And, probably the best feature, you’ll also be able to join other people’s games through this menu (if they have enabled it).

Color picker square - Jimmy

I love triangle color pickers. I think they are completely and objectively better than square color pickers in every metric. That’s why, when I added a color picker to Logic World, I made the picker a triangle.

To my utter shock and disbelief, this week I had a few people tell me that they prefer the square color picker. These people are, obviously, completely wrong. But nevertheless I have added an option to use a square picker.

square picker 2.jpg

And of course, just like the Fun Spinny Triangle, there is an option for a Fun Spinny Square.

Sexy New Server – Jimmy and Felipe

We’ve talked before on this blog about our Cloud Build system: we write some code, we press a button, and a server somewhere automatically builds the game for each operating system and uploads the builds. Until now, we’ve been using a server that we rented from a company. But this had two problems:

  1. Companies charge hella cash for high-performance server rental
  2. Not having physical access to the machine made troubleshooting and problem-solving more difficult than it should be

So this week, Jimmy built a new server for us. And if you’re gonna build a server, why not make a vlog about building a server :)

But building the hardware is only half the battle. We’re still working on the software part: we’ve got the operating system installed, we’ve got all the networking configured, and we’ve successfully activated a Unity Plus license on the server (something we were never able to do on a machine we couldn’t physically access). The next step is to set up all of Felipe’s fancy build software on Bob.

Once that’s complete, we’ll finally be able to build Logic World quickly, reliably and cheaply. Any disasters notwithstanding, you’ll be hearing about the completion of this project next week :)

Bugs Fixed This Week

  • Fixed ‘Tried to add entity at invalid circuit state index’ error, requiring a game restart, if you built a world with more than 10,000 concurrent circuit states
  • Fixed errors when you tried to resize a component with wires directly attached to it (Panel Displays)
  • Fixed board hitboxes becoming squished when you moved or placed a board on their edge
  • Fixed sometimes not being able to resize objects for no reason
  • Fixed being able to interact with Interactables that are behind players
  • Fixed various crazy visual errors when cancelling Multi-Wire Placing at stage 0
  • Fixed in-game changelog not rendering
  • Fixed the MissingLocalizations command incorrectly stating that present localizations were missing
  • Fixed the Configurable Menu scale slider label having an incorrect localization key
  • Fixed Resizable Menus always starting in fullscreen when the game is played in Europe

Wait a second, did I read that last bug correctly?

Yes you did! This is one of the most interesting bugs we’ve ever had in Logic World. Can you guess what caused it? We sure couldn’t for several hours!

Pause reading here if you want to think about it and try to solve the puzzle yourself :)

 

We were going absolutely mad trying to figure out this bug. We each did the same thing, but got different results. Who could have guessed that the difference in our digital setups was the physical location?

It turns out the culprit was… different regions using a different character for the decimal indicator! The resizable menus save their size to a SUCC file. In North America, the menus were saving their size as something like 205.872. But in Europe, they were saving their size as something like 205,872. You can probably see where this is going: the numbers were saved using the local culture, but they were loaded as a global culture. So all of the values were being blown up by 3+ orders of magnitude!

A couple of quick commits to SUCC, and the bug was fixed.

Sometimes, bugfixing can be delightful. When the symptoms are bewildering and random, but the cause (and fix!) turns out to be simple and logical… that’s one of the finest feelings in programming.

Regular Logic World Streams!

The lovely @Daniel, a beta tester for Logic World, is now doing regular streams of the game! So far on-stream he’s built a Nintendo CIC), a binary adder, a tic-tac-toe machine and more; right now he’s working on a playable game of Battleship).

In our biased opinion, Daniel’s streams are always tons of fun, and you should check them out! Follow him on Twitch and Twitter to be notified when he goes live.

StreamSchedule.png


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. Be sure also to wishlist Logic World on Steam and join the official Discord.

See you next Wednesday!

More Logic World Wednesdays


9 comments
@Nerd 2020-07-01

How about adding the ability to customize the color of wires? This will allow users to group the wires by color.

@shamus030 2020-06-26

At 46 seconds into the resizing video, the horizontal resizing handles are almost totally covered by the diagonals. Is there going to be a setting for the size of those handles? I would love to see an option to scale the corners down to match the sides more closely when a component gets too small.

I love the decision to keep the login page in the browser. Less things to maintain!

The CultureInfo bug is awesome! Personally, fixing those types of oddities is my absolute favorite thing about programming. I once had a similar issue with culture and localization related to currency, and that’s how I discovered there is a universal currency symbol)!

@Jimmy 2020-06-26

I agree that it would be nice to make the arrows bigger when the component is small. Whether I spent time on making that happen will mostly depend on feedback from testers. In my own playtesting I’ve found it to not be a very big deal: when you start resizing a component, your cursor is guaranteed to be axis-aligned with the horizontal resizing arrows, so you only need to flick your mouse in one direction with low precision to move it over a horizontal arrow.

That universal currency symbol is very interesting! It’s cool that it was created for computers, rather than being an existing symbol that was co-opted for computers.

@Daniel 2020-06-25

Jimmy mentioning my stream in LWW? Ok, this is epic.

@Zeaga 2020-06-25

Probably my favorite update yet! You really spoiled us with the server vlog. Great work!

@AIdude 2020-06-25

Looking forward to translating logicworld.net

@Jimmy 2020-06-26

I think we’ll probably keep logicworld.net as English-only, at least while the community is still small. I don’t want to fracture the site into tiny sub-communities divided by language.

@Red_3D 2020-06-25

The translators and Beta testers are Awesome :D

I can’t wait to enable the fun spinny triangle and finally resize boards. not being able to resize was one of the most annoying things in tung, well done Jimmy!

The login system sounds great and I can’t wait to add all my friends to my friends list, Great Job Pipe01!

that was an interesting bug, good job fixing it.

Fun Bannder I made fun banner I made

@Jimmy 2020-06-25

1010 banner!!!

Thanks for all your kind words 😄