Logic World Wednesdays: Season Premier

by @MouseHatGamesDeveloper7 months ago

It’s been sixteen Wednesdays exactly since the previous LWW, and we’re very excited to be back! Logic World update 0.91 development is underway, and we’ve got lots to talk about this week.

Configurable simulation speed - Jimmy

Logic World launched with the ability to change the simulation speed using console commands, but this was an awkward and unwieldly process. I’ve been working on a proper user interface for changing the speed, which also allows you to pause the simulation and then advance it step-by-step.

Shoutout to @LOOPS99 for building the Fibonacci machine shown in the video. You can check out that build here.

Soundtrack publication

In case you missed it: this week, the Logic World Original Soundtrack was published on internet music websites! You can read more about the soundtrack, and find links to all your favorite music places, in this blog post.

Since the initial soundtrack launch, there have been a few updates. First, the Logic World Theme is now available on Bandcamp and Soundcloud. Second, we’ve started working to get the soundtrack published as a Steam DLC. Thank you to the folks who’ve requested that; we hear you, and it is coming!

A few words from Logic World composer Markku Wainman on the soundtrack launch:

A big thank you to those who have been listening to the album. The reception has been amazing and I really appreciate all the kind words.

Revamped changelog - Jimmy

You may not know this, but Logic World has an in-game information page to display the changelog. In 0.90.3 this is a simple, single page of text, like the Credits and Roadmap pages.

However, after just three updates, it’s clear that this approach scales poorly. First, there’s the performance issue: in 0.90.3, when you open the Changelog page, there is a lag spike as Unity converts the 13,000 characters into a single mesh for rendering. Second, there’s the usability issue: a single-page giant block of text is not fun to navigate!

We make a lot of changes to Logic World, and our changelogs are very detailed, so these problems were only going to get worse with time. Thus I’ve remade the Changelog page from scratch. Starting in 0.91, the individual changelogs for each version can be expanded and collapsed by clicking on the headers. The giant block of text is no more, which fixes both issues described above.

Better handling of exceptional SUCC - Jimmy

If you’ve gone digging around in the Logic World game files, you’ve probably encountered some files with the extension .succ. These files contain data formatted as text that is easy for humans to read and edit. They are generated and read using my custom data serialization library, SUCC.

Previously, a significant limitation of SUCC has been its poor error messages. When something went wrong, there were very few clues about what exactly that thing was. Well, this week I’ve finally added good error handling to SUCC! When something goes wrong, SUCC will now provide:

  • A description of the error
  • The path of the file in which the error occurred
  • The line number on which the error occurred

This change won’t affect most players, but if you’re a modder or tinkerer it will probably improve your life at some point. When you accidentally screw up your SUCC formatting, the new error messages will tell you exactly where to go and what to fix.

If you’re a big nerd and want to look at these changes in more detail, you can check out the pull request here.

Optimization work - Jimmy

I’ve started working on some serious optimizations for Logic World. These will drastically improve loading times for large worlds, and significantly improve framerates while playing in large worlds.

This work is in the early stages and I don’t have anything to show for it just yet, but things look very promising, and I expect to have more concrete news soon. Stay tuned :)

That’s all for this week, but we’ll be back next Wednesday with another juicy blog post. To make sure you don’t miss it, you can sign up for our newsletter. Consider also joining the official Discord.

See you next Wednesday!

More Logic World Wednesdays

@Vykori7 months ago

don’t think I didn’t notice that beautiful new update order <3

@internet_man7 months ago

This is a great update. Many worlds do infact take a while to load, and I have entirely quit a server due to how laggy it was. Error messaging is great too, but I do have one question. The simulation speed. Can you use this in servers? If so, can only the owner use the feature or can everybody?

@JimmyDeveloper7 months ago

Yes, the simulation controls are fully compatible with multiplayer! The menu state is synchronized between all players, except for the “favorite speeds” which are a per-player custom list. Currently, every player can use the simulation speed controls, with the only restriction that there is a server-defined maximum. We’re planning on adding more advanced multiplayer features in 0.92, which will include an extensive permission system; there will be a separately-assignable permission for controlling the simulation speed.

@internet_man7 months ago

off-topic, but why are some servers shutting down?

@JimmyDeveloper7 months ago

Servers are run by community members, not by MHG. You would need to ask the owners of these servers.

If I had to guess, a lot of it is due to the game’s poor performance with large worlds and the lack of server management tools. The former will be fixed in 0.91, the latter in 0.92.

@ForLoveOfCats7 months ago

There is a feature I had been thinking of for the simulation speed changes and this is the perfect opportunity to bring it up. I think it would be useful in isolation but the addition of dedicated stepping shortcuts may reduce its usefulness.

When following a circuit’s behavior at a slow tick rate it could be cool to have a metronome of a kind to signify each tick when they occur, so you can follow along with the tick-tock of the simulation stepping along even when you cannot see states changing in the specific area you are looking.

@JimmyDeveloper7 months ago

This is an excellent idea. I’d like to use sound more in Logic World. Thank you, I will think on this :D

@ForLoveOfCats7 months ago

I wasn’t necessarily thinking of audio, more of a thing that visual changes each tick, but having sound effects for it could be really cool :)