Logic World Sometimes™
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!
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.
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 :)
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!).
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!