Logic World cover
Logic World screenshot
Linux PC Mac Steam
Genre: Simulator, Indie

Logic World

Logic World Wednesdays: Season Finale

Logic World comes out in two days! TWOOOOOOOO DAAAAAAAAAYYYYYYSSSSSSSSSSSS!!!!!!!!!!!!!

Beautiful Main Menu - Jimmy



First impressions are important, so this week I added some beautiful panoramic backgrounds to Logic World's main menu. The panoramas are loaded from GameData, so mods can add their own backgrounds.

I'm gonna show off the new main menu below, and this is also the reveal of the *Logic World Theme*. In mid-2019, I contacted David Housden and asked if he'd be interested in writing a theme for Logic World. To my surprise and delight, he said yes! David is one of my all-time favorite video game composers, and working with him was a dream come true.

I really love the Theme, I think it beautifully captures the spirit of Logic World. Please enjoy!

[previewyoutube="132OS0VSSPc;full"]


Help screen - Jimmy



Logic World has a lot of controls. When you play the game, I don't want you struggling to remember those controls; indeed, this concern is one of the main reasons I made the Action Wheel. But the Action Wheel doesn't fully solve the problem, so I also added a little list of available controls on the side of the screen. It can be toggled with F6 once you've learned them :)

[previewyoutube="O56fX-HIN1Y;full"]


Sandbox Uploads - Felipe



For the past couple of weeks I've been working on the Creation Hub, where people will be able to share all of their sandboxes and subassemblies with other users. To upload to the Hub, you will press an in-game upload button, which will open your web browser to a form that's pre-filled with whatever title and description your creation had in-game. After that, you'll just have to press submit and your creation will be published to the Hub.



We're hoping to have the Hub launch at the same time the game does, so you can share your creations online right from the start!


Pagier Pages - Felipe



On logicworld.net if you navigate to, for example, a forum page, you will notice that not all of the posts load at the same time. Only a few load at first, then once your scroll down more posts will be automatically loaded and shown. This is called paging, although in this case you don't actually get to see the pages as by default the site uses infinite scrolling. (You can switch to a traditional paging style in the site settings.)

When I implemented paging along with infinite scrolling a while back, I decided to define a page "take X items after item Y". This worked great when sorting by a date such as the creation date, but it also meant that they could not be sorted by any other property. Instead, now pages are defined as the more traditional "skip X and take Y". This approach has the drawback that you may get duplicate items if a new item is created after you fetch one page and before you fetch the next, but this can be worked around with some simple filtering.

This means I will now be able to sort posts by other measurements such as comment count and score, although these will be more challenging since they are handled by separate services. As mentioned above, we want logicworld.net to be a centralized place for the community to share and talk about their creations, so I've got lots of updates planned to make the site really really awesome.


Yet more bugfixes - Jimmy



Oh god! So many bugs to fix, so little time! Our lovely beta testers have been breaking the game in every way imaginable, which I suppose I'm grateful for. I've fixed tons of bugs this week, and I'm happy to report that at this point Logic World seems to be mostly bug-free, and there are ZERO remaining critical game-breaking issues (that I'm aware of, at least!!!!!!!!)!!!

The most interesting bug was that on some systems, there would be errors loading the instrument data (used for synthesizing music sounds). This bug made me panic a lot, because A) it has to do with sound synthesis which oh god is so complicated and there are *so many different things that can go wrong*; and B) I could not reproduce it on my machine, and there was no clear pattern of when and how the bug was occuring. Both very bad signs.

But I worked with the affected testers, and we tracked down the issue!! See, the game loads instrument data from files on disk, which are stored in a human-readable text format. The instrument data has a bunch of numbers in it, and some of those numbers are fractional, using a period as the decimal separator.

BUT NOT EVERY REGION USES A PERIOD DECIMAL SEPARATOR!!!! Some crazy places use a comma instead. The cause of the bug was that some of our testers were in these crazy comma-using regions, so the numbers in those files were being parsed incorrectly!

This was an easy fix once we'd tracked it down. Just needed to tell the number parser to ignore the local format.


The Big Flag Rework - Jimmy



Last year I added flags to Logic World. The Flag solves several important design problems:

  1. Logic World needs decoration components, so you can personalize the things you build and make them look all pretty.
  2. In big worlds, players should have a way to get around quickly. Flags can be used as waypoints that you can teleport to.
  3. I am a big flag nerd and I want flags in my game.

Flags, as they've been shown off before, offered a selection from a list of real-world flags to choose from. At first, I thought this would work, but I see now that I was blinded by my personal fascination with vexillology. Real-world flags are extremely cool, but they just have too much baggage associated with them. Logic World is supposed to be a fantasy, a separate universe from our own, one where conflict and war and hate are non-existent. I realized a while ago that the real-world flags had to go.

This week I've started on the Big Flag Rework. As of the Early Access release, you'll be able to give each flag a color, a size, and an aspect ratio. This is nice for now, but in my opinion it could be a lot cooler and more awesome. Therefore, later in EA I'll be adding tools to make your own custom flag designs out of geometric patterns and shapes.




Localization Organization - Jimmy



I've done a big update to our community translation efforts! Every single string of text that will be in the Early Access release of Logic World is now available for translation there, and I've added translation guides for many strings.

Thank you SO MUCH to all our volunteer translators. I see your hard work and I'm delighted by it. I am STOKED AS HELL to bring Logic World to people all around the world in their native languages.

If you speak a non-English language and you want to help out with translations, please click this link and start translating! Languages will be added to the game as soon as they are finished, and translators get their name in the in-game credits :)


-------------------------


The Future



Well, we've reached the end of the pre-launch Logic World Wednesdays. So what happens next?

  1. We release the game!
  2. We patch any critical issues discovered after release
  3. We take a dang break for a couple of weeks!
  4. We come right back here, for many more Wednesdays and many more game updates :)

This blog post is our 108th LWW blog post. Holy cow. Thanks for sticking with us along the way, even when it seemed like the game would never come out. We'll be celebrating all Friday long in the discord voice chat; join us there for fun and excitement!

Logic World releases this Friday at 17:00 UTC. If you haven't already, wishlist Logic World on Steam and sign up for our newsletter to get updates mailed to your inbox.

Peace and love!

More Logic World Wednesdays

https://store.steampowered.com/app/1054340?snr=2_9_100003__apphubheader

Logic World releases in Early Access on October 22, 2021

Yes, you read that title correctly. After literally thousands of years in development, Logic World is releasing publicly on the 22nd of this month.

[previewyoutube="OpTZ1geIECU;full"]

Thanks for sticking with us. We can’t wait to get this game into your hands. There is much more to come; Early Access is just the beginning.



And by the way, we have a new FAQ for answers to all your burning questions.

See you on the 22nd!

https://store.steampowered.com/app/1054340/Logic_World/

Logic World Wednesdays: The "The release date will be announced Friday" Edition

That's right! Logic World comes out this month and in two days you'll know exactly what day of the month! Get your hype boots on!!!

Media Updates - Jimmy


This week I've updated the store pages on Steam, Itch.io and Gamejolt with new screenshots and fancy words. This was badly needed; the last time any of those pages got a significant update was March 2018, when we first announced Logic World.

It was particularly satisfying to select the new screenshots. These new screenshots replace the original promotional screenshots I took in 2018, and the difference in the game's quality is just amazing to look at. Shoutout to our beta testers for building all the amazing creations featured in those screenshots.



I've also been doing some more work on the Early Access Announcement Trailer, which is looking very sexy and cool. That will be my main project for the next two days, and if all goes according to plan it will come out Friday evening with the release date announcement :)

The Hub - Felipe


I've started working this week on the Creation Hub, a section of logicworld.net for sharing the things you make in Logic World! Hopefully, this feature will be available from day zero, when you'll be able to share your sandbox worlds and saved subassemblies. In the future the Hub will also be used to share mods, challenge packs, and more.

The Hub looks great so far, but it's not quite ready to show off yet. Next week I'll give a detailed writeup on the technology and show some pretty pictures.

Fixes & Polish - Jimmy


I've been going through the game to fix up all the bugs I can find and really polish up the newer features (like the action wheel and undo/redo). I've fixed dozens of bugs in just the last 24 hours. Yes, I'm very exhausted, thanks for asking.

The game is very nearly feature-complete at this point, so bug fixes and polish are the bulk of the remaining work. With the help of our beta testers, we'll be working over the next few weeks to make sure Logic World's launch is as smooth and high-quality as we can.


---------------------------------------------

We write a blog like this one every week, keeping you updated on Logic World development. To make sure you don't miss the next one, you can sign up for our newsletter. Be sure also to wishlist Logic World on Steam and join the official Discord.

See you on Friday :)

View this post on logicworld.net

More Logic World Wednesdays

https://store.steampowered.com/app/1054340/Logic_World/

An update for the Steam peeps!

Howdy hey hello,

Earlier this year, I stopped publishing our weekly devblog here on the Steam forums. I apologize for that. I was under a lot of stress, and I kind of shrunk away from a lot of my responsibilities. But we haven't stopped working on the game and we haven't stopped doing the blog! You can catch up on any Logic World Wednesdays you missed here on logicworld.net. All future LWWs will be posted here to Steam as well, starting this Wednesday.

Logic World is nearly ready for public release. Contrary to what we previously announced, we've decided to do Early Access, so you can play sooner and so we can gather more feedback during development. The game will launch in EA later this month, and if everything goes according to plan, the full version will come out next year. The specific date of the EA launch will be announced this Friday, accompanied by a sexy new trailer.

In the meantime, please check out the updated Steam store page! I added a bunch of new screenshots and wrote a new description. Most of the screenshots are 4k or 8k, you can view the full resolution by clicking on the image and then on "Download full-size version".

Thank you so much for your interest in Logic World, and thank you for your patience as we work to make it the best game we can. See you Friday :)

-Jimmy



https://store.steampowered.com/app/1054340/Logic_World/

Logic World Wednesdays: The Webtacular Edition

Logicworld.net Rises to Glory - Felipe



This week I finished converting all our web services to Mice, and it was finally time to work on the website frontend!

Our goal with logicworld.net is that it be a pleasant and easy-to-use place to hang out, share your builds/mods/ect, and generally discuss Logic World. To that end, I've been working on various aesthetic and usability improvements.

---

Comment button rearrangements


I've moved the "like" and "reply" buttons from their old awkward placing underneath the (still to-be-implemented) profile picture to the bottom right of comment boxes.

Before:


After:


On your own comments, the "edit" and "delete" functions are now tucked away in a dropdown accessible from the gear in the top right.

Better markdown styling


I've improved the way the site displays user-submitted text, using github-style markdown rendering. The most noticeable improvement is that headers are much meatier.




Navbar social media links


I've brought back links to the Logic World YouTube, Twitter and Discord to the site navbar. Some folks have told us that these have been hard to find, so hopefully this makes it easier.



Fun spinny loading icon


I've added this lovely custom icon when the site is loading a new page :D

[previewyoutube="4dhOf3-Tzr8;full"]

(It usually doesn't take that long lol. Loading times were artificially extended for the sake of demonstration.)

You can see it yourself by navigating through pages on the Logic World forums.

Cute error page


I added a lovely graphic in the style of Logic World components to display navigation errors, like 404s. The lights even flicker as the page loads.



You can see it yourself at https://logicworld.net/thisisnotareallinklol

---

Let me know what you think of these changes, and what other website enhancements you'd like to see. I love working on the site, and I'm excited to help it become a hub for Logic World discussion, community, and creation sharing.


Undo Improvements - Jimmy



I unfortunately wasn't able to work on Logic World much this week, but I did make an important behavior change to the undo/redo mechanics I showed off a couple of weeks ago.

In my first implementation of undo/redo, the undo stack was stored entirely server-side. However, a lot of the checks the game does to test if a placement is valid can only be done client-side. The server has no concept of the 3D geometry of components, so it can't check if (for example) a new component would be inside of an existing component, or if a new wire would have line of sight between its two ends. In singleplayer, this doesn't matter for undo: every individual step along the way is validated by the client, so undoing back to one can't get us into an invalid state. But it causes problems for multiplayer. Picture the following scenario:

  1. Alice accidentally deletes an inverter
  2. Bob helpfully places another inverter down where it got deleted
  3. Alice, realizing her mistake, hits "undo", re-placing the inverter where she just deleted it

We now have two inverters occupying the same space, which isn't allowed. So, when undoing a build action, we need the client to check if undoing would violate any geometrical rules.

The way it works now is that when the server verifies and applies a client's requested world changes, a "reciept" is sent to that client containing an instruction to undo the action and an instruction to redo the action. The undo/redo stack is then entirely managed by clients, and for instructions that require client-side checks, the client performs said checks. To undo or redo an action, the client sends a world modification request to the server just like it does in regular building.

A side benefit of this approach is that per-user undo/redo stacks exist automatically without any extra code. If the stacks are handled on the server, per-user stacks would have to be implemented explicitly.


---------------------------------------------

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 right here on Steam and join the official Discord.

See you next Wednesday!

View this post on logicworld.net

More Logic World Wednesdays

https://store.steampowered.com/app/1054340/Logic_World/

Logic World Wednesdays: The Circular Edition

My Color Picker grows Ever Stronger - Jimmy



I unfortunately wasn't working at all last week, and when I got back into Logic World work I wanted to start with something fun. As you may know if you've been following Logic World for a while, I absolutely adore the color picker UI, so I began my work week with some fun color picker stuff :D

[previewyoutube="K2U3_MARblU;full"]

(I tried something a little different with this video. It's heavily edited, and instead of just showing off game features, it tells a story of the features' development. Let me know if you like it and would like to see more development videos like this :))

I added the new Circle Picker style shown in the video, and I also made a few more tweaks. First I made the "save this color" button change color to reflect the color that's going to be saved, which adds a nice visual indicator of the button's function. I also changed the style of the pointers, from the old white & black targets to simple circles which display the selected color or hue.



I'm pretty sure I like this new pointer style better, but I'll probably add an option to switch between the two based on preference.

Finally, I added a little popup confirmation dialog when resetting a list of saved colors. If you're anything like me, you'll spend a lot of time carefully curating your color lists, and I don't want you to lose all that work accidentally!



After reinvigorating myself with the color picker work, I've returned to working on the new building mechanics & features. Unfortunately I've got nothing to show this week -- I've just done some minor refactors and code cleanup on my previous work here -- but that's my singular focus now, and I'll have cool stuff to share soon :D


Web refactor progress - Felipe



I've been making steady progress on the transition to mice in the web services. All of the services are now migrated and working fine for the most part, and even though there are still some bugs left to solve and code to optimize I think you will read next week's LWW on the new backend if all goes well!

---------------------------------------------

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 right here on Steam and join the official Discord.

See you next Wednesday!

View this post on logicworld.net

More Logic World Wednesdays

https://store.steampowered.com/app/1054340/Logic_World/

Logic World Wednesdays: Control Zed

Undo and redo - Jimmy



I've implemented one of Logic World's most highly requested features: the ability to undo and redo your changes to the world!

[previewyoutube="-3Uuu_Ugnrk;full"]


General building overhaul progress - Jimmy



This week I've finally finished my big refactor of how Logic World stores and modifies its internal world state! This is all the code to do with storing components and wires, and how updates to components and wires are handled. One player tells the server they want to place a component, the server verifies that this modification is allowed, the server sends information about the modification to all connected clients, and they all handle the update appropriately -- that kind of thing.

Before this rewrite, that part of the codebase was one of the oldest, written in late 2018. At the time, I was a generally much less experienced programmer, and I also had a much less complete understanding of how this code needs to work and be worked with. It didn't help that this system is necessarily very complex -- Logic World is a complex game, with complex builds, and it all has to work in real-time multiplayer, plus there's all the complexities introduced by supporting modding. As a result, the original code was a very shaky foundation, and it did *not* age well throughout the years as we extended and modified it. I knew that if I was going to really improve Logic World's building mechanics -- which I am determined to do before we release -- I would need to rewrite this whole module.

And now that's done! The new systems I've designed and implemented are robust, extensible, and easy to modify. They use everything I've learned since starting this project about how to write Good Code™. You can see the fruits of my labor in the video above -- something as complex as undo and redo would NEVER have been possible with the old systems, but the undo/redo implementation I wrote this week is under 100 lines of code and *stunningly* simple.

There's still some cleanup and improvements to do, but I'm honestly thrilled with how well everything is working. It's going to be so *easy* to add all these cool new building features I have planned.

---------------------------------------------

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 right here on Steam and join the official Discord.

See you next Wednesday!

View this post on logicworld.net

More Logic World Wednesdays

https://store.steampowered.com/app/1054340/Logic_World/

Logic World Wednesdays: The Locally Networked Edition

Debug Displays - Jimmy



I've added two fancy shmancy debug overlays to the game: one to show your FPS, and another to show your coordinates in the world.

[previewyoutube="mtJ7JIl5FPM;full"]


Local Network Servers - Jimmy



When I showed off the multiplayer menu last week, you may have noticed an unused "local network servers" tab of the server list. Well, this week I made it work: any servers that share a local network with your game will be displayed in a list here!



In a couple of weeks, I'll add some lovely UI that lets you open your singleplayer game to the local network, and opened singleplayer games will show up in this list. Logic World LAN parties will be incredibly easy to set up :D

Very nerdy technical tidbits


You might recognize this feature from Minecraft, and indeed I did steal this idea from Minecraft. Thanks Minecraft. However, Minecraft's "Open to LAN" feature has never worked right for me. The problem is that when Minecraft servers broadcast their existence, they do so only on the first network interface found on the device; similarly, Minecraft's multiplayer menu only listens for multicasts on the first network interface. This might work fine for the normies, because most people's computers only have one network interface: the Wi-Fi or ethernet adapter. But I'm a massive nerd, so my computer has TONS of network interfaces: VPNs, virtual machines, docker instances, ect. So whenever I try to use that Minecraft feature, it inevitably picks the wrong network interface. I can't see other people's LAN games, and other people can't see mine.

However, Logic World does this right: it iterates through every network interface on the device, and every interface with broadcast capabilities is used for this menu. Servers announce their existence on all interfaces, and clients listen for servers on all interfaces. It all Just Works™ without disabling my VPN or anything. Since Logic World's audience is largely composed of massive nerds like myself, I felt it was important that things work properly here.

As an aside to the Minecraft people -- yes, I am available for consulting, send me an email and we can discuss rates.


Bugs Fixed This Week



  • Fixed not being able to see your own reflection in SHINY BOBBY
  • Fixed IPv6 networking not working on Windows
  • Fixed being unable to initiate connection to a server from the server list if a discovery response packet hasn't been recieved yet
  • Fixed "offline name" setting description using outdated nomenclature
  • Fixed all the server config player lists (whitelist, banlist, admin list) not working
  • Fixed items in the server list sometimes displaying incorrect data if you spam the refresh button too quickly
  • Fixed being able get a Sandbox or Saved Board without a title by editing the title after creating one
  • Fixed the "Create Sandbox" and "Save Board" buttons sometimes being hidden when they should be shown
  • Fixed many text boxes throughout the game interpreting a "cancel" action (by pressing escape) as a "submit" action (what should only happen when you press enter)
  • Fixed pressing tab/shift-tab to switch between textboxes not working properly when Popups are open; tabbing between textboxes is in general much more reliable
  • Fixed Labels and Panel Labels having a slightly different color to the other off-white components
  • Fixed being able to see the reflections of player nametags in SHINY BOBBY
  • Fixed the nametag on the little bobby model in the Avatar settings not properly showing when you mouse over the bobby model
  • Fixed the integrated server not shutting down correctly when leaving a singleplayer game



Very Excellent Building Mechanics Coming Soon - Jimmy



The things you can build in Logic World are very geometrically complex. It's not a simple voxel grid like some other 3D circuit simulators; you've got components and wires attached to each other, and everything can be arbitrarily rotated and positioned.

So the fundamental problem of designing Logic World's building mechanics is this: how do you make it easy and fast for a player to communicate their complex 3D ideas through the user interface? What is the best, most efficient, most intuitive way to take the structure in a player's brain and get it into the game?

It's a hard problem. It's a problem I've been contemplating since the first Logic World prototypes in October 2017, and it's a problem I've been contemplating especially hard over the past month or so; watching gameplay from our newest beta testers, and listening to their feedback, has led me to the realization that the building mechanics need to be much better before release. In my time contemplating the problem, I've had a lot of individually good ideas, and I've even implemented some of them, but they've never come together as a comprehensive whole.

Well, a week ago, all that changed. I was lying in bed after publishing last week's blog post, trying to fall asleep, when suddenly... I saw it all. The perfect building mechanics. Like a switch flipping on, this incredibly difficult problem became transparent to me, and I could see straight through it to the perfect solution. I achieved game design nirvana. I leapt out of bed to get my pen and paper, and I hastily scrawled down some of the best ideas I've had in my life. It's honestly one of the wildest psychological phenomena I've ever experienced.

I have mostly finished documenting my epiphany, and turning those documents into code is the next work I'll be doing on Logic World. I wanted to finish up a few other things before diving in -- see the rest of this post lol -- but now, building is my singular focus, and I am so excited to get to work on it and make building as smooth and intuitive as I can.

---------------------------------------------

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 right here on Steam and join the official Discord.

See you next Wednesday!

View this post on logicworld.net

More Logic World Wednesdays

https://store.steampowered.com/app/1054340/Logic_World/


Logic World Wednesdays: The Triumphant Return

Multiplayer Menu and Networking Upgrades - Jimmy



The first big task I tackled when I returned from vacation was to make the Multiplayer Menu! I'm really pleased with how it turned out, under the hood it's one of the most complex menus I've ever made.

[previewyoutube="KLNuxDO7Tj0;full"]

The Multiplayer Menu requires a lot of networking functionality, and so while I was working on the menu I took the opportunity to beef up our network code. There were many lovely upgrades, but the two highlights are:


  1. IPv6 networking is now fully supported, so we're future-proofed in that regard until something crazy happens that requires undecillions of network addresses. The default network protocol is IPv6 Dual-Stack -- meaning connections to both IPv6 endpoints and IPv4 endpoints are allowed -- but you can also choose to run both clients and servers in exclusive IPv6 or in IPv4.
  2. You can now connect to servers by hostname instead of just by raw IPs. So if you own, for example, "EpicPeanutButter.com", you can host your server at that address, and others can type that into the game and connect to it. Previously you could only use raw IPs, which look much less interesting -- usually something like this: "217.160.0.132".

Making this menu was very difficult and time-consuming, far more so than I expected going in. I had a lot of fun learning about networking, but I'm really glad I never have to do it again.


Seeking your feedback on server authentication modes



As can be seen in the video above, there are presently two authentication modes for Logic World servers: Unverified and Verified. Unverified servers will allow any player to join, with any username, and this identity is not checked at all. Verified servers only allow players to join who are logged into their logicworld.​net account, and it is impossible to fake your identity to a verified server.

Verified mode is useful when you want to have a whitelist of players who are allowed to connect to your server; only the people who are really on your whitelist will be able to connect. But it's less useful if you want to have a public server and ban players from it. Because creating a logicworld.​net account is free, a banned player can simply create a new identity and rejoin your server.

With this in mind, we are considering the addition of a third authentication mode to servers, "Super-Verified". In Super-Verified mode, the server would only allow connections from players who are logged into their logicworld.​net account, and whose accounts are verified owners of Logic World. This means that to evade a ban, a player would have to buy another copy of the game, which they are a lot less likely to do than simply create a new account for free. However, Super-Verified mode would introduce hassle for players; unless you purchased directly from logicworld.​net, you would be required to link your logicworld.​net account with the account you purchased the game on (i.e. Steam) before connecting to a Super-Verified server.

We've been discussing this and we aren't sure how to proceed or how useful such a feature would be. And so, we ask you -- would you like Logic World to have a Super-Verified mode? If you're interested in hosting a server, would you turn it on? If you're interested in playing on servers, would you prefer to play on servers that have it on?

Let us know in the comments, on discord, or in an email :)


Mice are Nice - Felipe



When I returned from my vacation, the first thing I needed to do was to test the services that I had migrated from Nitro to mice. I could have just created a "test" service that was hard-coded to call certain methods on certain services, but that's a very inflexible way of doing it. With that in mind, I started the MiceUI project. This project consists of an Electron application that lets you load protobuf files containing the method definitions of a given service, and then lets you send requests to the service instance and inspect the response.



This tool will let me test each and every one of a service's endpoints, making sure that the service is working as it should. In the future I plan on upgrading MiceUI with some sort of test suites, automating the process of E2E testing and even integrating it into the site's CI pipeline.


In-Game Theme Editor - Jimmy



Many of our beta testers have been playing with the menu themes capability of LogicUI, and many more of you in the community have voiced interest in doing so. Until now, making new themes was very difficult, requiring tedious manual editing of individual RGB values in a config file, and you'd have to restart the game to view the results of your labor. I decided to make this process easier, and added some in-game UI for making a custom menu theme.

[previewyoutube="y7CShp9uaYc;full"]


Even Beta than Ever



We've added several new testers to our internal beta! These lovely folks are helping us track down bugs, giving great feedback about features, and making cool content to showcase the current state of the game. There is a bunch of said cool content in the #beta-content channel of our discord, so join us there if you haven't already and check it out!

And if you haven't seen it yet, shortly into the break we held a big multiplayer playsession with a bunch of the beta testers. Jimmy's perspective of that event is up on youtube:

[previewyoutube="6KwwzsmLN50;full"]

I mentioned that the testers have been helping us find bugs, and well, holy moly they've helped us find a lot of bugs. An absolute tidal wave of them. Here are just the ones we've fixed...


Bugs Fixed Since Last Time



  • Fixed the "Pick Component" feature not properly recognizing the components already on your hotbar in some specific circumstances
  • Fixed world rotations being bad and glitchy for components placed on the environment with a non-standard up direction (i.e. on the side of a hill)
  • Fixed awkward-axis rotation being incorrect for grabbed boards placed on the environment with a non-standard up direction
  • Fixed Edit Title textbox not being properly selected when you create a new sandbox or saved board
  • Fixed linux version not starting up properly due to a file system error
  • Fixed linux version not loading some important resources from GameData which was causing a myriad cascade of issues
  • Fixed scroll wheel input direction being inverted on linux
  • Fixed scroll wheel having 1/120th sensitivity on linux
  • Fixed Keys going crazy when you try to press them if another player is in their range
  • Fixed server giving a Load Board response to every player on the server instead of just the player who requested to load the board
  • Fixed decorations on grabbed, cloned and loaded components not being tested for collision
  • Fixed missing flag graphics in Choose Language menu
  • Fixed double newlines in the beta start screen
  • Fixed "Realtime GI is not supported in Universal Pipeline" console spam
  • Fixed failure to connect to a server if another player makes changes to the world while you're connecting
  • Fixed moving and then deleting a socket causing server errors and sometimes corrupted saves
  • Fixed sockets not connecting properly after they've been moved
  • Fixed error and disconnection if another player moves/rotates/deletes the chair you're sitting in
  • Fixed various cases where the server could crash if a client sent them bogus data
  • Fixed component position/rotation imprecision issues within deeply nested stacks of many child components
  • Markdown renderer: fixed weird visuals on the first and last line of a list if that line is very long
  • Fixed changelog saying "2020" for all the dates in 2021 lol
  • Fixed client going to error screen if it tried to connect to an unverified server when the Logic World servers are unreachable
  • Fixed servers having a hard cap of 32 maximum players connected even if a higher value was set in the config file
  • Fixed servers crashing if a client sends garbage data in the discovery request packet
  • Fixed clients connecting to the wrong server sometimes
  • Clients now ignore the data instead of going to an error screen if a server sends garbage data in the discovery response packet
  • Fixed the volume sliders on music components having the incorrect range (0-10 instead of 1-100)
  • Fixed fatal error if you tried to delete a component on the same frame you modified its data (i.e. pressing a button and deleting it on the same frame)



SOCKS



This Christmas might possibly have been the best Christmas ever. Jimmy's mom and brother Andrew teamed up to make two pairs of got dang Logic World socks, giving one pair to Jimmy and sending the other across the ocean to Felipe.



Just look at those things. Absolutely fabulous.

---------------------------------------------

Thanks for reading our blog :) lots of fun stuff is coming up, so watch this space. We absolutely cannot wait to get this game done and into your hands.

To get updates on Logic World beamed directly into your inbox, you can sign up for our newsletter. Be sure also to wishlist Logic World right here on Steam and join the official Discord.

See you next Wednesday!

View this post on logicworld.net

More Logic World Wednesdays

https://store.steampowered.com/app/1054340/Logic_World/

Logic World Wednesdays: Farewell to 2020

Performant Building - Jimmy



This week I've been optimizing Logic World's building mechanics. When you create or destroy a large amount of objects simultaneously, that should be as fast and fluid as possible, and I've made a lot of progress on that front.

[previewyoutube="X4QJSaR-SBk;full"]


Finished server authentication - Felipe



A while ago I shared my plans for a system that would allow game servers to verify the authenticity of the players that connect to it. This week I've implemented the final features of that system. Now, when in online mode, the server will retrieve the player's name from their authentication payload. This prevents a client from logging in as a user and send another user's username, since now the server will ignore the username that the client sent.

So, Logic World servers can now officially require online verification! Players will be denied connection to online-mode servers unless they are logged in and verified with logicworld.net. This allows you to have banlists and whitelists that actually work, as players can now prove they are who they say they are.

This entire system is optional, you just need to enable offline mode in the server's settings and users will not be verified, which also means that no logicworld.net account and no internet connection would be necessary. It's important that you're in control of your game, and we'll never require that you connect to our servers to play Logic World.


Server discovery - Felipe



Before connecting to a server, you most likely want to know some information about it, like Message of the Day) or how many players there currently are in it. I've implemented a system for requesting and retrieving this information, in preparation for Jimmy's multiplayer menu. You can now request discovery information from a specific server (by its IP), or from all the servers in your local network. This last feature will make it really easy to connect to a server that someone else in your network is hosting, you won't even need to know their IP!


Multiplayer Menu Progress - Jimmy



As Felipe mentioned above, I've been working a little on the server list. There will be three tabs: your list of saved servers, discovered servers and open singleplayer games on your local network, and all games your friends are playing in, so you can easily join them.

The server list isn't done, but I have finished the Direct Connect popup. Finally, Logic World has a way to connect to a server using a menu!



Some fun things about the Direct Connect popup:

  • It remembers the most recent IP you typed in. (Passwords are currently not remembered, but most servers won't have a password anyways)
  • The password box has a button to toggle password visibility
  • As soon as you open the popup, the Server IP text box is fully selected, so you can start typing/pasting an IP immediately
  • The two text boxes can be switched between with the tab key
  • Hitting Enter in either text box will start a connection to the server

It's simple, but it does its job darn well, I think. I look forward to finishing the multiplayer menu -- I'll make a video about it when I do :D


Bugs Fixed This Week



  • Fixed some simulation bugs that could occur when deleting components with wires attached to them
  • Fixed not being able to connect to a server when signed in to your logicworld.net account
  • Fixed crazy lag that could sometimes happen when managing your hotbar
  • Fixed search box text being cut off if you typed too much in it
  • Fixed the "disconnected" screen not displaying the reason for disconnection
  • Fixed popups not being removed properly in some circumstances
  • Fixed not being able to connect to a server when logged in



Reflections



It's been a big year for everyone.

For Mouse Hat Games, 2020 was the year we came into our own as game creators. On January 1st, we sort of knew what we were doing. But today, in the dusk of this year, we quite solidly know what we are doing. For two self-taught kids, that's an amazing and empowering feeling. We could not be more excited to finish Logic World and get it into your hands.

Thank you for being on this journey with us. We're going to take a week or two off for the holidays, but we'll see you soon on a Wednesday in 2021 -- the year Logic World finally releases!


Xmas builds are from Brown Falcon TV, and were built today live on stream!

Take care, friends, and happy holidays ❤

---------------------------------------------

View this post on logicworld.net

More Logic World Wednesdays

https://store.steampowered.com/app/1054340/Logic_World/