Hello everyone! I hope you enjoy my piece for the Logic World OST called ‘Time and Science’.
In addition to writing new music, I’ve recently been working on polishing some of my previous pieces for this soundtrack. I’m now completely done with 20 minutes of music for Logic World. The full soundtrack will be 40 minutes, so we’re officially halfway finished! I’m looking forward to the next half and I hope that you’re there with me on Logic World Wednesdays to hear some new tunes!
This week I’ve been working on making the game log the stuff it’s doing. Right now all the game’s output is printed directly to the in-game console (or the server console), meaning that if you, for example, wanted to print an error, you’d have to explicitly specify the message’s color every time you print it. I’ve been working on a system that abstracts this, instead it lets you say “print an error”, and it will automatically print it to the console with the appropriate color, as well as to a file on disk. Mods will get their own dedicated logger, which means that it will be easy to distinguish between mods’ log messages. This is what the logs in the server look like:
Knowing the message’s “importance” level (trace, debug, information, warning, error or fatal) also lets us write some pretty logs to a file:
I’ve added a command that lets you change the log level (which by default is the information level), so that you can see the tracing messages that are hidden by default.
Now that we have a proper logging system, it will be much easier to diagnose and fix bugs and crashes. Logs should also be a big help to modders who are trying to fix their mods.
I’ve also been working on a menu that shows all loaded mods. It’s not complete yet, currently it shows you some details about the mod like its name, ID, version and priority:
(The artifacts you see in the details panel are just some Unity Editor shenanigans)
I’ve also been progressing on Logic Maker, the tool you will be able to use when working on your own mods. I’ve decided to drop the GUI option (at least for 1.0 release), since I think it won’t be necessary as the CLI app is very easy to use.
I spent a while looking for a library for parsing command line arguments, but none managed to quite convince me. The closest one was Fluent Command Line Parser, however it still doesn’t fully support subcommands (like
git fetch -a, for example). This is the reason I am developing Yaclip (Yet Another Command LIne Parser), a library for parsing arguments with a completely fluent interface. It’s also able to automatically generate pretty help messages, this is Logic Maker’s help message (so far):
Currently, Logic Maker allows you to create new mod projects from templates that you will be able to provide, as well as a default template that allows you to configure what you want and don’t want to include in the mod. You’ll also be able to add new components to your existing mod, although this will probably be overkill for simple components.
Building on last week’s work on Global Display Configurations, this week I’ve added some fancy menus for editing those configurations!
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!