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][/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.
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:
[olist]
Alice accidentally deletes an inverter
Bob helpfully places another inverter down where it got deleted
Alice, realizing her mistake, hits "undo", re-placing the inverter where she just deleted it
[/olist]
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/
[ 2021-03-25 02:27:10 CET ] [ Original post ]