Logic World Wednesdays: The Thursday Edition VII

by @MouseHatGames 2020-05-22

Logic World Sometimes™

And So We Danced - Markku

Hello everyone,

I’m glad to be back for another LWW music update. I hope you enjoy this OST sample and that it finds you in good health. This piece is called ‘And So We Danced’. Talk to you all again soon!

Sandbox Menus & World Types - Jimmy

I’ve finally added a big missing feature: menus to create sandboxes and load your existing sandboxes! Each sandbox has a description box where you can write notes about it, and you can organize your sandboxes by tagging them.

Additionally, when you create a sandbox, you now have the ability to choose its world type, and to edit settings about that world type.

New Epic Website - Felipe

As I mentioned on a previous LWW, I’ve been working on redesigning all the cloud infrastructure, including the main site. The site you’re reading this on is a Single-Page Application or SPA. This means that the site exists only on a single page, and the contents are updated using JavaScript. The new site, however, is being built to use JS as little as possible, and the entire site is guaranteed to work even when disabling JavaScript on your browser. If you do disable JS, you will only lose some QoL features, but the site will still be 100% usable.

You can try out the work-in-progress new site at https://logic.world/. Please let me know what you like and don’t like about it :)

LogicScript: Ludicrous Speed - Felipe

As I was adding features to LogicScript, its performance kept going down. Previously LogicScript was an interpreted language, meaning that scripts didn’t get compiled beforehand and were instead parsed and run. This has a high performance overhead, since we need C# code that’s reading the script and executing the instructions. For this reason, this week I’ve been working on making LogicScript code compile to CIL, which is the same kind of code C# runs as after being compiled. This means that when you load a script it first gets compiled in-memory, and when it gets run it is much, much faster (about 30 times so!).

Extra Data - Jimmy

This week I’ve added a very fancy and versatile system to Logic World, which I call Extra Data. Extra Data is a set of arbitrarily-typed data that is stored with each save file. Currently it is used to store world settings – see above – and I’m working on a few more exciting applications for it.

Extra Data is easy to use from code, but under the hood it’s enormously complex. Anybody connected to the server, as well as code running on the server itself, can update the Extra Data. When this happens, it has to be synchronized between all of the connected clients, as well as the server’s master copy saved to disk. The primary source of complexity is the fact that the data can be of any type: the system has to work for numbers, text, colors, lists of lists of six-dimensional vectors – whatever you throw at it, Extra Data can handle it.

Extra Data is stored on disk as SUCC, so it’s all very nicely formatted and easy to edit if you’re the kind of person to muck about with save files.

Extra Data is fully accessible to mods.

This system was far more difficult to program than I anticipated. I initially budgeted six hours, but it ended up taking three very long and stressful days. This is the cause of this week’s record-settingly-late Wednesday. Sorry about that 😬

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

@Ry 2020-05-23

Can you add thumbnails for worlds? Sorta like models for boards and minecraft worlds.

@Jimmy 2020-05-23

I definitely want to add thumbnails for sandboxes. Minecraft does this really well.

@cmoa 2020-05-22

We need Mountainland : The original TUNG world ! Plus, if a save would be converted, this could be the selected map.

@Jimmy 2020-05-22

I definitely want to have that map in the game! It is very special to me 😊

Unfortunately we won’t have an official save converter from TUNG saves. Sadly there are just too many complications, and our development time is needed elsewhere.

@Nerd 2020-05-22

Tutorial is a documentation or levels like challenges?

@Jimmy 2020-05-22

Tutorials will be interactive gameplay that teaches you how to use the controls. There will be at least two tutorials, one for basic controls and one for advanced controls (like multi-wire placing).

Tutorials won’t teach you anything about digital logic. That all comes from the Challenges and Sandbox gameplay.

@Dredonkey 2020-05-22

I think a spherical world type as seen in this video: https://www.youtube.com/watch?v=ztAg643gJBA would be very cool! Although I would have to assume that would probably be very hard to implement, and I don’t know if mods would be able to provide it either, would be cool though!

Also I think that for tags they could not be in a text box, be listed in alphabetical order, have a ‘+’ button to add new tags, and a new tag menu where you can create a new tag and add it to that world, in the new tag menu you should be able to customize the color.

Being able to select multiple worlds with a click-drag selection box sort of thing, see what tags they share, add a tag to all of them, and graphically move them into one of these tag-folder things would also be neat.

Just some ideas I had, hope you guys figure out something nice whether it has above features or not.

Keep working hard!

@Jimmy 2020-05-22

Because Logic World’s building system isn’t locked to a grid (as can be seen in today’s video) the spherical world isn’t actually that much of a challenge. The only new system necessary for it is a way to change the player’s local gravity, so you fall towards the planet even when you’re underneath it. I’m planning to add such a system, because I really want to have an O’Neil Cylinder type world.

I totally agree that a spherical world would be awesome. Perhaps you’ll see one in a coming Wednesday :)

I really like your suggestions for improving the tagging UI. Thank you for sharing them!