1. Logic World
  2. News

Logic World News

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.

---

[h3]Comment button rearrangements[/h3]
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.

[h3]Better markdown styling[/h3]
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.




[h3]Navbar social media links[/h3]
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.



[h3]Fun spinny loading icon[/h3]
I've added this lovely custom icon when the site is loading a new page :D

[previewyoutube][/previewyoutube]

(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.

[h3]Cute error page[/h3]
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][/previewyoutube]

(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][/previewyoutube]


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][/previewyoutube]


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

[h3]Very nerdy technical tidbits[/h3]
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/