Logic World Wednesdays: Making Mods & Bashing Bugs

by @MouseHatGames 2019-12-05
Logic Maker - Felipe

As we discussed in a previous LWW, mods’ source consist of up to three Visual Studio projects as well as the assets and libraries you want to include. This week I’ve been working on a tool that lets you create these projects from a template and upload the source for it to be compiled: Logic Maker.

logic maker ui.png

The UI is a WIP, it currently has no styles at all.

Logic Maker is meant to be a tool to aid you in creating and developing mods. While it isn’t necessary (you could for example just copy a template project), by using the tool you can create your mod solution with the features you want, and it will automatically output the minimal code to get your mod running.

Logic Maker can be used in one of two ways: through the UI or through the CLI. The UI is made with Avalonia, which means that it’s completely cross platform and it will look the exact same way on Linux, Windows and MacOS. On the other hand, the CLI will let you perform the same actions as the UI, but with arguments instead of buttons:

logic maker command line.png

In the future I’d also like for Logic Maker to let you build the project using the same Docker image that logicworld.net uses. That way you can locally verify your mod before you upload it.

Hover Tags - Jimmy

The menus in Logic World have many small, circular buttons with icons on them. When you’re like me and you programmed all those buttons yourself, this isn’t a problem, but if not, it can be a little confusing. What does the button with a gear on it do? What does the button with a folder on it do?

Back in the Dark Ages of Last Week, there was no way to know. That’s why this week I’ve developed a system for displaying more detailed information about a button when you hover over it.

hover buttons with transparency.png

The size of the hover text is configurable, as is the delay between mousing over a button and the hover text appearing. You can also disable hover tags entirely.

Camera Controller Upgrade - Jimmy

When you’ve saved a board, you can view an interactable in-game preview of the saved board in 3D. This week I’ve upgraded the camera controller used in these previews. It is now much more configurable, and it now supports moving the pivot position by holding right click and moving the mouse. This feature was already present in the web previews, which you see when you share a board online - interactive demo of that here.

I’ve also added a button to reset the camera position, and saved boards now remember where you had the camera when you saved them.

Finally, I’ve refactored the system for rendering the models so that it can also render a static image of the models. This will allow me to generate thumbnails for saved boards.

Bug Squashing Palooza - Jimmy

I’ve spent most of this week going through the game and fixing various bugs that have cropped up. Multiplayer bugs in particular have been getting my attention. The game has been through several major code architecture upgrades in the past few months, so there were a fair number of these.

Now, though, Logic World has reached a very stable state. The core gameplay is smooth, incredibly fun, and mostly without issues. It was important that I go through and clean it up this week, because we intend to start beta testing soon.

Website upgrade - Felipe

Previously the website was using the ASP.NET Core 2.1 framework, which runs on .NET Core 2.1. However .NET Core 3 came out not long ago, so I’ve been working on upgrading to ASP.NET Core 3.1. This update comes with a ton of performance upgrades, which means that logicworld.net can now handle 5x the amount of concurrent users!

If you’d like to receive an email each time we post one of these blogs, 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

@Nik 2019-12-05

5x the amount of website users with no server upgrades! nice!

I really like the tooltips that pop up when hovering over buttons. That was quite necessary.

also I am happy.

@cmoa 2019-12-05

Hello happy I’m cmoa

@pipe01 2019-12-05

.NET Core 3 really is amazing