Logic World Wednesdays: The Buggy Edition

by @MouseHatGames 2020-06-10

Devilish Details #2 - Jimmy

It’s been one of those weeks where I’ve combed through the game and added tons of small details and polish. I felt it was time for another video compilation of these :)

Benchmarks - Felipe

This week I’ve been working on some performance improvements in the circuit code, but quickly I realised that I had no proper way of testing whether or not my changes actually made a speed difference. For this reason I’ve made a simple framework for us and mods to add different benchmark cases. A single case is an interface with a method in it that does a single “iteration” of work (for example, creating a component), and the framework takes care of running a ton of iterations and measuring how long each one takes, then reporting that to the user.

This framework is accessed by the user through two commands: benchmark and stress. The first command will run iterations in about 1 second “groups”, then average the time each group took and calculate the time each single iteration takes. This is fine for long jobs, but for jobs that are very quick to finish (like changing the state of a wire), the time per iteration is so small that it becomes cumbersome to measure and compare. That’s why there’s the second command, which will instead run as many iterations as it can in 5 seconds and report how many iterations per second it achieved.

These benchmarking tools will be invaluable in the coming weeks as we get serious about speeding up Logic World.

Jarvi Makes a Mandelbrot, LIVE

Our brilliant and very handsome beta tester @TheWildJarvi has embarked on an epic quest: to build hardware for rendering the Mandelbrot set in Logic World.

Click to view this image in glorious 16k!

Jarvi is livestreaming most of this process. If you’d like to see hours and hours of unedited Logic World gameplay from someone who knows a heck of a lot about digital logic, you should check out his streams! The first few are already up on youtube, and you should subscribe to his channel so you’re alerted of his future streams.

Bugs Fixed This Week

A member of our community recently suggested that we start including a list of bugs fixed each week in these blog posts. This week has been particularly bug-fix-filled, so it seems like a good time to try out the idea!

Bugs with components

  • Fixed Oracles generating a new value when their circuit network is updated, i.e. by adding or removing a connection to their input
  • Fixed ghost display configurations on picked-up Displays with deleted configurations
  • Fixed Buttons and Switches making extra sounds when they are placed, rotated, moved, and when the sandbox loads
  • Fixed Buttons and Keys getting stuck on if they are rotated or flipped while being pressed
  • Fixed held-down Buttons and Keys going up if another player joins the game while they’re being pressed
  • Fixed being able to press Keys when you couldn’t see the actual key part
  • Fixed Keys turning on but not moving and not making sound when a different player presses them
  • Fixed being able to press Keys when they are visible only via their reflection in SHINY BOBBY

Bugs with building

  • Resizing components: fixed holding shift to snap to square size not working properly
  • Fixed wire ghosts sometimes having a different rotation from the wires they create
  • Fixed multi-wire placing outlines sometimes being the wrong color

Bugs with the player controller

  • Fixed player jump sounds always coming from the world origin, rather than the position the player jumped from
  • Fixed players sticking to the ceiling when they jump into one
  • Fixed players falling at an inconsistent, and usually too fast, speed when walking off the edge of a platform
  • Fixed players decelerating in the direction they’re facing instead of the direction they’re moving
  • Fixed players accelerating too slowly when the game is lagging

Bugs with the user interface

  • Fixed hover tags rendering behind popups
  • Fixed visual artifact on settings sliders when set to minimum value
  • Fixed terrible glitchy behavior when clicking on scroll bars
  • Fixed incorrect hover tag text localization key on Add New Tag button
  • Linux: fixed resizable menu custom cursors being gigantic and taking up half the screen

Other bugs

  • Fixed positional sounds not getting quieter with distance
  • Fixed client’s quit command hard locking the application
  • Fixed component registry not properly detecting the error when a mod adds duplicate component IDs

Please let us know what you think: is this list interesting to you? Would you like to see it return next week?

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!

More Logic World Wednesdays

@Ecconia 2020-06-11

LUV dem little insects list! Need MOAR fixed stuffs!

SUPA BIG TEXT goes bigger and bigger, shows on your bluescreen and on your mobile, in fact MHG draws it on your walllaper when too big for your monitor.

@shamus030 2020-06-10

Cool update. Can we type in arbitrarily large numbers for the text size? I want EVEN BIGGER TEXT.

On performance testing, I really like how Go handles benchmarks. The benchmark framework gives you an n value that you use to run your code n times, and the framework re-runs your test with larger values for n until it can get a significant result. The idea is really small/fast operations will need to be run many times to get a good feel for how long it takes (and the opposite for expensive operations), but you shouldn’t have to figure that part out per-benchmark.

@pipe01 2020-06-11

Our framework does do that, in a more crude way:


And this is the benchmark code for a single case:


As you can see the cases (which is the code you write) don’t deal with any benchmarking stuff, and the framework calculates the appropiate iteration count.

@Red_3D 2020-06-10

I love the Devilish Details series, so many improvements in a very dense format. Good Job pipe, you and your skills are amazing.

Jarvi, your Mandelbrot machine is looking amazing so far.

I like the Bug-fix list, it shows how much is being accomplished in one week.

@piyy01 2020-06-10

Early LWW and bug fix list <<333

@RuthenicDawn208 2020-06-10

that is a big amount of fixed bugs good job! also…