Logic World Wednesdays: Season Finale

by @MouseHatGamesDeveloper8 months ago (edited8 months ago)

Logic World comes out in two days! TWOOOOOOOO DAAAAAAAAAYYYYYYSSSSSSSSSSSS!!!!!!!!!!!!!

Beautiful Main Menu - Jimmy

First impressions are important, so this week I added some beautiful panoramic backgrounds to Logic World’s main menu. The panoramas are loaded from GameData, so mods can add their own backgrounds.

I’m gonna show off the new main menu below, and this is also the reveal of the Logic World Theme. In mid-2019, I contacted David Housden and asked if he’d be interested in writing a theme for Logic World. To my surprise and delight, he said yes! David is one of my all-time favorite video game composers, and working with him was a dream come true.

I really love the Theme, I think it beautifully captures the spirit of Logic World. Please enjoy!

Help screen - Jimmy

Logic World has a lot of controls. When you play the game, I don’t want you struggling to remember those controls; indeed, this concern is one of the main reasons I made the Action Wheel. But the Action Wheel doesn’t fully solve the problem, so I also added a little list of available controls on the side of the screen. It can be toggled with F6 once you’ve learned them :)

Sandbox Uploads - Felipe

For the past couple of weeks I’ve been working on the Creation Hub, where people will be able to share all of their sandboxes and subassemblies with other users. To upload to the Hub, you will press an in-game upload button, which will open your web browser to a form that’s pre-filled with whatever title and description your creation had in-game. After that, you’ll just have to press submit and your creation will be published to the Hub.

We’re hoping to have the Hub launch at the same time the game does, so you can share your creations online right from the start!

Pagier Pages - Felipe

If you navigate to, for example, a forum page, you will notice that not all of the posts load at the same time. Only a few load at first, then once your scroll down more posts will be automatically loaded and shown. This is called paging, although in this case you don’t actually get to see the pages as by default the site uses infinite scrolling. (You can switch to a traditional paging style in the site settings.)

When I implemented paging along with infinite scrolling a while back, I decided to define a page “take X items after item Y”. This worked great when sorting by a date such as the creation date, but it also meant that they could not be sorted by any other property. Instead, now pages are defined as the more traditional “skip X and take Y”. This approach has the drawback that you may get duplicate items if a new item is created after you fetch one page and before you fetch the next, but this can be worked around with some simple filtering.

This means I will now be able to sort posts by other measurements such as comment count and score, although these will be more challenging since they are handled by separate services. As mentioned above, we want logicworld.net to be a centralized place for the community to share and talk about their creations, so I’ve got lots of updates planned to make the site really really awesome.

Yet more bugfixes - Jimmy

Oh god! So many bugs to fix, so little time! Our lovely beta testers have been breaking the game in every way imaginable, which I suppose I’m grateful for. I’ve fixed tons of bugs this week, and I’m happy to report that at this point Logic World seems to be mostly bug-free, and there are ZERO remaining critical game-breaking issues (that I’m aware of, at least!!!!!!!!)!!!

The most interesting bug was that on some systems, there would be errors loading the instrument data (used for synthesizing music sounds). This bug made me panic a lot, because A) it has to do with sound synthesis which oh god is so complicated and there are so many different things that can go wrong; and B) I could not reproduce it on my machine, and there was no clear pattern of when and how the bug was occuring. Both very bad signs.

But I worked with the affected testers, and we tracked down the issue!! See, the game loads instrument data from files on disk, which are stored in a human-readable text format. The instrument data has a bunch of numbers in it, and some of those numbers are fractional, using a period as the decimal separator.

BUT NOT EVERY REGION USES A PERIOD DECIMAL SEPARATOR!!!! Some crazy places use a comma instead. The cause of the bug was that some of our testers were in these crazy comma-using regions, so the numbers in those files were being parsed incorrectly!

This was an easy fix once we’d tracked it down. Just needed to tell the number parser to ignore the local format.

The Big Flag Rework - Jimmy

Last year I added flags to Logic World. The Flag solves several important design problems:

  1. Logic World needs decoration components, so you can personalize the things you build and make them look all pretty.
  2. In big worlds, players should have a way to get around quickly. Flags can be used as waypoints that you can teleport to.
  3. I am a big flag nerd and I want flags in my game.

Flags, as they’ve been shown off before, offered a selection from a list of real-world flags to choose from. At first, I thought this would work, but I see now that I was blinded by my personal fascination with vexillology. Real-world flags are extremely cool, but they just have too much baggage associated with them. Logic World is supposed to be a fantasy, a separate universe from our own, one where conflict and war and hate are non-existent. I realized a while ago that the real-world flags had to go.

This week I’ve started on the Big Flag Rework. As of the Early Access release, you’ll be able to give each flag a color, a size, and an aspect ratio. This is nice for now, but in my opinion it could be a lot cooler and more awesome. Therefore, later in EA I’ll be adding tools to make your own custom flag designs out of geometric patterns and shapes.

Localization Organization - Jimmy

I’ve done a big update to our community translation efforts! Every single string of text that will be in the Early Access release of Logic World is now available for translation there, and I’ve added translation guides for many strings.

Thank you SO MUCH to all our volunteer translators. I see your hard work and I’m delighted by it. I am STOKED AS HELL to bring Logic World to people all around the world in their native languages.

If you speak a non-English language and you want to help out with translations, please click this link and start translating! Languages will be added to the game as soon as they are finished, and translators get their name in the in-game credits :)

The Future

Well, we’ve reached the end of the pre-launch Logic World Wednesdays. So what happens next?

  1. We release the game!
  2. We patch any critical issues discovered after release
  3. We take a dang break for a couple of weeks!
  4. We come right back here, for many more Wednesdays and many more game updates :)

This blog post is our 108th LWW blog post. Holy cow. Thanks for sticking with us along the way, even when it seemed like the game would never come out. We’ll be celebrating all Friday long in the discord voice chat; join us there for fun and excitement!

Logic World releases this Friday at 17:00 UTC. If you haven’t already, wishlist Logic World on Steam and sign up for our newsletter to get updates mailed to your inbox.

Peace and love!

More Logic World Wednesdays

@Gotenks9178 months ago

maybe I missed this in a previous lww but when and where can we find mod documentation?

@JimmyDeveloper8 months ago

Mod support will be finished during Early Access. There will be many blogs and videos about it. Modding documentation/tutorials/examples will be released sometime before the modding update comes out.

@tokumei8 months ago (edited8 months ago)




@Beth8 months ago

Haven’t you had this problem with period decimal separators before?

@JimmyDeveloper8 months ago

Indeed we have! Good memory, Beth. About two years ago, I made the same mistake with my own library for parsing text data. I of course learned from that mistake, but this time the error wasn’t actually from code I wrote. The error came from CSharpSynth, an old open-source library for music synthesis which I forked for Logic World.

@tokumei8 months ago

The C# float parser strikes again, I see…

And that theme is beautiful. What a masterpiece. I cried several times while listening to it. Could spend all day picking it apart and analyzing all its elements, but, suffice it to say, it does a fantastic job capturing the essence of Logic World.

Congratulations, Jimmy and Felipe, for making it this far. I’m sure you still have a long way to go to fulfill your aspirations, but this is an incredible milestone.

@JimmyDeveloper8 months ago

I cried several times while listening to it.

Me too 😭

Could spend all day picking it apart and analyzing all its elements

Can confirm, because I have 😂

Congratulations, Jimmy and Felipe, for making it this far.

Thank you thank you thank you ❤❤❤❤❤

@Ecconia8 months ago

Wohoo, finally thread sorting, I was waiting for it so long. Please do not forget the sorting by most recent comment :)

Many of the languages are not translated well enough yet. What will you do with keys, that do not have a proper translation yet.
Also it seems that Localizor did delete our votes, cause most of them are back to 0%. That means that partially the translations are done by one person and not accepted by 2-3 others. Will you add these keys too?

Nice a main screen background again, good stuff.

@JimmyDeveloper8 months ago

We will include keys that haven’t been confirmed. The languages can be early access too :)

@Anne8 months ago

Amazing! So excited for it to come out!!!

@JimmyDeveloper8 months ago

omg same!!!!!!!!!