1. Logic World
  2. News

Logic World News

Logic World v0.91.1 is now available!

What's up gamers,

The minor update v0.91.1 is now available for download! You can get it right here on Steam. This update contains a ton of bugfixes and lots of minor improvements/tweaks/polish. Read on below for the full list of changes.

More big Logic World news is coming soon, so make sure you're subscribed to our newsletter and following Logic World on Steam. Enjoy the update!


(Artwork by Cady | @​pink_3d:matrix​.org)


0.91.1 Changelog


Building

  • Multi-Placement systems have been drastically improved. It should now be much easier to place multiple items where you want them to be, and items should always have the correct starting placement when you begin moving them now.
  • The system for determining the rotation of items being Grabbed or Cloned has been reworked. These items should never change rotation unexpectedly now when you move them to a surface with a different orientation.
  • Added secret setting: `MHG.Placing.Secret.MaxOffsetVariantAttemptsPerItemPerFrame`
  • Fixed a crash to error screen that could occur when grabbing or cloning multiple components (#475)
  • Fixed a crash to error screen when undoing some custom-data-changing operations (#469)
  • Fixed a crash to error screen, and occasionally other weird errors, when undoing a multi-clone operation that placed a cloned object on top of a source object (#466)
  • Fixed not being able to resize components when they're placed in very specific locations (#471)
  • Fixed cloned objects sometimes containing input pegs that remain On without being connected to any outputs
  • Fixed using Offset Hold on a Flipped component resulting in a mirrored X offset value


Components

  • Fixed inputs on Through Pegs and Sockets sometimes erroneously starting Off instead of On after loading a save
  • Fixed Delayers' internal counter state not being saved, and resetting to 0 on save load (#473)


Servers and Multiplayer

  • FOR REAL THIS TIME, fixed the infamous "cuddle bug", where you'd sometimes be shoved around by other players while someone was in the process of joining the server (#474)
  • Fixed visual glitches for a short time after someone joins or leaves the server where other players would appear to move around very far and fast
  • Fixed connected clients sometimes erroneously seeing the default server closing message when the server is closed with a custom message
  • Fixed missing server console message to confirm the world has been saved to disk when the server is closed and `SaveOnClose` is enabled
  • Improved the phrasing of various messages printed to the server console


Music

  • Finding Parcels: tweaked the color of some sounds and fixed some audio artifacts
  • Time and Science: fixed the ending note being cut off abruptly. It now fades out fully to silence.


Localization

  • Translations for WIP languages now include non-approved Google Translate suggestions
  • Updated translations and translator credits for Bulgarian, Chinese (Simplified), Croatian, Czech, Dutch, Estonian, Finnish, French, German, Hebrew, Hungarian, Japanese, Korean, Polish, Portuguese (Brazil), Romanian, Russian, Slovenian, Spanish (Spain), Swedish, Turkish, and Ukrainian 🇺🇦


OBJ Export

  • Fixed OBJ export not working at all lmao
  • Added command: `objexport.currentworld [int textResolution]`
  • OBJ exports should have much less texture duplication compared to 0.90.3. Textures are now reused where possible.
  • Exported .obj and .mtl files are more human-readable compared to 0.90.3 thanks to added whitespace between objects, better organization of the data, and a few other improvements


Authentication

  • `token.dat` is now stored in the game install directory, next to the executable. This means your login is now specific to your installation of the game, instead of being shared by all installations on your machine.
  • `token.dat` is now stored encrypted, with an encryption key and IV stored in a separate location on your machine. This means that in order to impersonate you, an attacker would now need access to two files instead of just one.
  • Fixed the `LogicWorld.Online.Auth.ClearedToken` event never being invoked (#476)
  • Added a smiley face when you log in using the browser


Miscellaneous

  • Fixed incorrect integrated server paths on the Itch.io version, which prevented Itch.io players from loading singleplayer worlds
  • The game handles input much better now if your binding for Multi-Select overlaps with your binding for a Build Action
  • Fixed a crash to error screen when the main menu loads if you have a corrupted save file
  • Added a check on application startup for whether the environment supports compute shaders, which are required to draw component/wire geometry since 0.91. If not, an appropriate error message will be displayed.
  • Removed OpenGL support on MacOS, since OpenGL on MacOS does not support compute shaders
  • Enabled Graphics Jobs and GPU Skinning in the player, which should provide a modest rendering performance boost

Logic World v0.91 is now available!

Greetings, gamers!

We are finally ready to release our biggest update yet! Introducing Logic World v0.91: The Less Buggy Update. This update is now available, for free, to everyone who owns the game.



0.91 is a massive update that touches every area of the game, drastically improving performance, majorly improving stability, adding dozens upon dozens of little quality-of-life improvements and tweaks, and introducing a few radical new features. For this update, we've changed or added over 69,000 lines of code since 0.90.3 across over 1,000 files. It's been a big effort, but it's just the start of what's to come.

We're very happy with Logic World v0.91. It's the best version of Logic World yet, and it's an excellent foundation for the really ambitious updates we'll be doing next.

Thank you for playing our video game. Enjoy the update. From everyone at Mouse Hat Games, please have a happy holidays, and a wonderful new year!



[h2]0.91 Changelog[/h2]

This update will reset your settings!

Building

  • Multi-Clone now supports cloning wires that connect the different selected objects (#73)
  • Multi-Grab and Multi-Clone handle a bunch of placement edge cases much better, particularly related to circuit boards
  • You can now configure the size of the Action Wheel
  • Added a button in the Action Wheel configuration screen to reset to the default Action Wheel configuration
  • Multi-Wire Placement is now treated as a single action in the undo/redo history, instead of one action per wire placed (#318)
  • Multi-Wire Placements with only one peg in the first selection now work properly
  • Wires can be slightly shorter now
  • During Grab, Clone, and Resize operations, the placing ghost will now update its circuit states instead of being frozen
  • Added secret setting: `MHG.Secret.Building.PlacingGhostsRecieveCircuitStateUpdates`
  • Various improvements to Multi-Edit, especially with regards to colorable components
  • During a Multi-Select pass, components which are a child or parent of the initially-selected component will no longer be added to the selection
  • Added secret setting: `MHG.Secret.Building.MultiSelector.AllowSelectingChildrenOfFirstComponentInPass`
  • Added secret setting: `MHG.Secret.Building.MultiSelector.AllowSelectingParentsOfFirstComponentInPass`
  • You are now always allowed to proceed with a deleting operation when multiple components are selected (the previous rule was that you had to select all the children of a component)
  • Fixed sometimes not being able to rotate Switches, Buttons and Keys without grabbing them first (#206)
  • Fixed undo/redo stack breaking and causing errors sometimes (#396, #281)
  • Fixed undoing build actions that deleted wires breaking the undo stack (#399)
  • Fixed some issues with components moving around upon completing a multi-resize (among them #266)
  • Fixed canceling multi-wire placement not removing the outlines of the selected pegs (#233)
  • Fixed board drawing sometimes not properly snapping to a square size when holding shift (#203)
  • Fixed flip state not always being correctly detected for Grab/Clone operations (#351)
  • Fixed rotations getting out of sync during Multi-Clone if you try to rotate before the first successful placement (#268)
  • Fixed not being able to resize short Flags
  • Fixed warnings and errors in the console when grabbing and resizing Flags
  • Fixed log spam with “Look viewing rotation vector is zero” during some edge cases with grabbing
  • Fixed hovered colors in the Quick Color Chooser being persistently applied when the operation is canceled (#71)


Components

  • Added an option to Keys to only allow pressing them while in a Chair
  • Added a “reset” button to the Edit Delayer menu, to reset it to the default delay of 10 ticks
  • If you hold the Mod key while flipping a row of switches, they will all be set to the same state as the first switch flipped (#60)
  • Added secret setting: `MHG.Secret.InvertMultiSwitchInteractionModKeyBehavior`
  • The input pegs on XOR Gates, AND Gates, D-Latches, Oracles, and Relays are now slightly longer
  • Fixed some unintuitive Delayer behavior that could, among other anomalies, allow one-tick pulses to go through a two-tick Delayer (#183)
  • Fixed Delayers getting out of sync after being cloned
  • Fixed Chairs sometimes erroneously complaining that they are occupied (#223)
  • Chairs will no longer be outlined if you look at them while they are occupied


Simulation

  • Added Simulation Speed menu. It can be accessed through a new button in the pause menu or with a hotkey, bound by default to `F9`
  • Added a hotkey to pause or resume the simulation, bound by default to `F10`
  • Added a hotkey to step one tick forward through the simulation (when the simulation is paused), bound by default to `Shift+F10`
  • Added secret setting: `MHG.Secret.SimulationSpeedMenu.ShowRemoveFromListButtonsOnHover`
  • Added secret setting: `MHG.Secret.SimulationSpeedMenu.SavedSpeedWiggleData`
  • Added secret setting: `MHG.Secret.SimulationSpeedMenu.AutoResumeSimulationWhenChangingSpeed`
  • Added server config value: `DefaultSimulationTPS`
  • Added server config value: `MaximumSimulationTPS`
  • Removed the server config value `SimulationTPS` as this is now configured per-save in ExtraData
  • Renamed the server command `step` to `simulation.step` for consistency
  • Fixed the simulation unpausing in multiplayer when a new player joins the server even if the players currently on the server have paused it (#347)
  • Fixed the simulation unpausing in singleplayer when accessing a sub-menu of the Pause menu


Circuitry

  • Outputs that should start on (such as the outputs of newly placed Inverters) now start on in the simulation
  • Fixed Clone operations not properly copying the circuit states of the original objects, which would often result in flickers and broken feedback loops (#116)
  • Fixed component outputs sometimes erroneously changing state when the number of inputs is changed
  • Fixed weird simulation glitches (and occasionally server crashes) that would occur when changing the number of pegs on a component that has connected output pegs (#104, #250)


Optimization

  • Significantly improved loading times, especially for large worlds
  • Improved game framerates for most scenarios, particularly for large worlds, and particularly if post-processing or shadow cascades are disabled
  • Component/wire geometry is now rendered with GPU instancing instead of in combined mesh chunks
  • Colliders are instantiated more efficiently
  • Improved performance and reduced allocations when grabbing or cloning stuff
  • Improved performance of checking Socket connections
  • The game now logs how long it takes the client to load a save
  • Removed the secret settings `MHG.Graphics.RenderDistance.Secret.IdealFramesBetweenRecalculations` and `MHG.Graphics.RenderDistance.Secret.MaxTimeBetweenRecalculationsSeconds`. Render distance is now recalculated when the player has moved to a new chunk, not on a time interval.
  • Improvements to physics performance
  • Added secret setting: `MHG.Secret.UnityFixedDeltaTime`. Increasing this value can massively increase the framerate in very large worlds (with a very large number of colliders), but will reduce the accuracy of game physics.
  • Added secret setting: `MHG.Secret.UnityMaximumDeltaTime`


Fixy Pointy

  • Component positions are now stored as fixed point rather than floating point
  • Component world positions are now calculated in the reference frame of the stack root component
  • Rounding of component rotations is smarter and more consistent
  • Due to these changes, components now stay perfectly aligned up to an arbitrary nesting depth (#269, #273) and no longer cause tiny erroneous intersections (#123)


Save Files

  • Upgraded to Blotter File Format v6, to store positions in the new way (fixed point rather than floating point)
  • Blotter v6 also has support for multi-root subassemblies, in preparation for some 0.92 features
  • Added save converter from v5 to v6
  • The game no longer considers a save to be “corrupted” if it uses a previous blotter format version; instead, a helpful save converter UI is offered
  • Fixed missing translation string for the file corruption state “unknown save type”
  • Fixed sandbox list displaying an empty info box for saves with an outdated format version


UI

  • The About menu, Languages menu, and Teleport menu can now be accessed from the Pause menu
  • The in-game changelog is much prettier, and the changelogs for each update can now be individually collapsed and expanded
  • The in-game changelog now automatically generates and displays links for mentioned issues
  • If another player edits the properties of a Flag (i.e. name, color, aspect ratio) while you have the Teleport Menu open, the Teleport Menu will now update to reflect those changes
  • By default, the Edit Flag menu will no longer close immediately when you select a new color
  • Added secret setting: `MHG.Secret.UI.EditFlagMenu.CloseImmediatelyWhenBigColorClicked`
  • Added secret setting: `MHG.Secret.UI.EditColorableComponentsMenu.CloseImmediatelyWhenBigColorClicked`
  • The markdown renderer does a better job of rendering lists and headers
  • The markdown renderer now supports superscript. This is disabled everywhere by default, but it can be enabled for chat via a new `Superscript` section in the secret setting `MHG.Chat.Secret.ChatMarkdownSettings`
  • Added command: `UI.Debug.LogObjectsUnderCursor`
  • Enabled smooth scrolling for the Settings Menu sidebar
  • Fixed setting descriptions being cut off in the Settings Menu sidebar if the description is sufficiently long (#342)
  • Fixed some visual issues with the Settings Menu sidebar for settings with names long enough to span multiple lines
  • Fixed some inconsistencies with UI text boxes
  • Fixed some visual issues with the custom avatar preview (under settings -> multiplayer)
  • Fixed some resizing arrows not being properly disabled on configurable menus that are not supposed to be resizable, such as the Edit Delayer Menu (#377)
  • Fixed the binding prompts in the Action Wheel not updating to show the new bindings if you change them
  • Fixed jankiness when using the scroll wheel in the debug console
  • Fixed some issues with UI usability when running the game at extremely wide aspect ratios
  • Fixed the debug console window rendering in front of its hover tags
  • Fixed hover tags sometimes not disappearing when they’re supposed to
  • Fixed console error spam if you have the Help menu open and you switch game states on two consecutive frames (#395)


Thumbnails

  • Thumbnails are now anti-aliased
  • Thumbnail lighting is now independent of environment lighting, so thumbnails will now always look consistent
  • When a single component has an output that is supposed to start on, such as the output of an Inverter, the output is now properly rendered as on in the thumbnail
  • Added command: `ExportThumbnailCache`
  • Added command: `RegenerateThumbnailCache`
  • Added secret setting: `MHG.Secret.Thumbnails.ThumbnailAmbientLighting`
  • Added secret setting: `MHG.Secret.Thumbnails.ThumbnailDirectLighting`
  • Added secret setting: `MHG.Secret.Thumbnails.ThumbnailRenderSizeFactor`
  • Added secret setting: `MHG.Secret.Thumbnails.ThumbnailAntiAliasing`
  • Renamed the secret setting `MHG.Secret.ComponentDisplayRotation` to `MHG.Secret.Thumbnails.ThumbnailModelRotation`
  • Renamed the secret setting `MHG.Secret.ComponentDisplayRenderSize` to `MHG.Secret.Thumbnails.ThumbnailRenderResolution` and changed the default value from 256 to 128
  • Due to a limitation of the new rendering tech, new thumbnails will now be blank for a single frame after creation. To avoid this, thumbnails are pre-cached as much as possible.
  • Fixed visual artifacts when geometry intersects the edge of the thumbnail render


Text rendering

  • Added support for emojis (i.e. 🍆😆🐢🥗)
  • Added support for music symbols (i.e. 𝄞𝄿𝅘𝅥𝄇)
  • Added support for additional math symbols (i.e. 𝞉𝞩ϵϕ𝚤)
  • Added Hong Kong style option for CJK characters. Currently only accessible by setting the secret setting `LogicUI.Secret.CjkDefaultFontStyle` to `Hong_Kong`
  • All characters in the Adlam script are now displayed in the joined style (previously some were in an unjoined style)
  • All characters in the Arabic script are now displayed in a neutral Arabic style (previous some were in a Kufi style, and some were in a Naskh style)
  • Added support for the following scripts: Bassa Vah, Bhaiksuki, Caucasian Albanian, Duployan, Elbasan, Elymaic, Grantha, Gunjala Gondi, Hatran, Indic Siyaq Numbers, Khojki, Khudawadi, Linear A, Mahajani, Manichaean, Marchen, Masaram Gondi, Mayan Numerals, Medefaidrin, Meroitic, Miao, Modi, Mro, Multani, Nabataean, Newa, Nüshu, Old Hungarian, Old North Arabian, Old Permic, Old Sogdian, Pahawh Hmong, Palmyrene, Pau Cin Hau, Psalter Pahlavi, Sharada, Siddham, Sogdian, Sora Sompeng, Soyombo, Syriac, Takri, Tirhuta, Wancho, Warang Citi, and Zanabazar Square. PHEW
  • Updated Noto fonts
  • Updated Font Awesome to 6.1.2, with over 7,000 new icons!


Localization

  • Added WIP translations for Korean, Spanish (Spain), and Turkish
  • Updated translations and translator credits for Chinese (Simplified), Croatian, Czech, Dutch, Estonian, Finnish, French, German, Hebrew, Hungarian, Japanese, Polish, Portuguese (Brazil), Romanian, Russian, Slovenian, Swedish, and Ukrainian 🇺🇦 Thank you from the bottom of our hearts to all the volunteer translators! Because of your hard work, people from around the world can enjoy Logic World in their native language 💖


Movement

  • Fixed flying speed being non-configurable (and way too slow) when the setting “Lock Flight Y Axis” is disabled (#370)
  • Fixed the secret setting `MHG.Flying.Secret.AutoEnterNoclipOnStartFlying` not even working, and breaking the game in various ways when set to `true` (#279)
  • Fixed errors in the console when a player is standing on a component decoration (such as a Chair or the clicky part of a Button) and that component gets destroyed
  • Fixed incorrect footstep sounds being played in some situations
  • Fixed new player positions not being applied until all overlay UI is closed


Interactables

  • Added support for outlining Interactables that are not part of components. This is used for the big clicky button in the test world, which is now outlined when you look at it.
  • Interaction-dragging behavior is now consistent between chairs and standing: when the cursor is moved to be looking at a non-interactable, the interaction ends
  • Added secret setting: `MHG.Secret.Interactables.StopInteractionIfLookingAtNonInteractable`
  • You can now interact with the same Switch multiple times during one interaction
  • When interacting with a Chair to sit in it, the interaction will now immediately end, instead of continuing while you sit in the chair. Fixes #103


Music

  • Added a “Never” option to the Music Frequency setting
  • Changing Music Frequency will no longer cause music to stop playing (except when setting it to “Never”)
  • Reloading the settings (i.e. by switching settings profiles) no longer causes the music to stop playing
  • Tweaked the default parameters for the fancy pause menu music effects
  • Music is loaded from disk more reliably; fixed music playback issues on some systems (#422)


Modding

  • Fixed shared mod `.cs` files being in `shared/` instead of `src/shared/` (#341)
  • Fixed mod compilation failing when a mod assembly does not have a path, i.e. when using Harmony mods (#308)
  • Fixed exception when increasing the number of outputs on a component (#457)
  • Fixed `InputPeg.AddPhasicLinkWith` throwing a `NullReferenceException` in many cases


Server

  • Dedicated server binaries are now placed in a sub-folder, to keep the root directory clean
  • Periodic server tasks no longer cause a server death spiral if they take too long. This was often presenting when autosave was enabled on a very large world.
  • If the server fails to broadcast its existence on the local network, it will now disable local network broadcasting instead of just crashing
  • Reduced the minimum time between connections to a server from a single IP from 30 seconds to 3 seconds
  • Messages in the server console announcing player leaves/joins are prettier
  • Fixed the server always saving on close even if the server config value `SaveOnClose` is set to `false`


SUCC and settings files

  • Error messages about parsing SUCC files are much more helpful, and now contain the file path & line number
  • Various SUCC files, such as `settings_master.succ`, will now be automatically reloaded and their changes applied when the file is changed on disk
  • Configurable menu data is now stored in the profiled settings files instead of in a separate file for every menu. This means menu configurations now properly work with the settings profile system.
  • The game now updates `___LastLoadedGameVersion` in `settings_master.succ` with the most recently loaded game version every time the game starts
  • Removed `config_override` files. All server config values are now stored only in `config.succ`
  • There are far fewer disk writes related to game settings, especially on startup, which should improve startup performance


Technical

  • Fixed the game not properly detecting supported network protocols, which was causing various nasty bugs that made the game unplayable in certain network setups or when no external network interfaces are available (#204, #333, #229)
  • Updated Unity version from 2019.4.17f1 to 2019.4.40f1
  • Upgraded server runtime from .NET Core 3.1 to .NET 7.0. For now, .NET 6.0 binaries are also included with the dedicated server.
  • Fixed there being an omega (Ω) in the name of a dll, which prevented the game from working properly in some environments. This also accidentally prevented the game from working if you got it from a particular game pirating service, so uh, you’re welcome, pirates. YAARRRRRR
  • All error messages and APIs are now PG-13
  • Added a system for updating CustomData in saves when the layout for a component’s CustomData changes between versions
  • More kinds of errors in the game loop are now caught and trigger an error screen
  • The `PrintUnityEnvironmentInfo` command now reports much more information, especially about the system hardware and the graphics API. The information is also now formatted much more nicely.
  • Added command: `runtimeinfo`
  • Added command: `input.ExportSystemKeyNames`
  • The Resolution setting is now properly saved as a Vector2Int instead of a string with extraneous data
  • Custom MessagePack formatters now use MessagePack best practices (#259)
  • Fixed the integrated server process not being killed in some cases where it should be (#401)
  • The server now explicitly rejects wire requests between two outputs (previously, it would throw an error if sent one)


Graphics APIs

  • Added OpenGL as an optional graphics API on Windows and MacOS (used with the command-line argument `-force-glcore`)
  • Added Vulkan as an optional graphics API on Windows and Linux (used with the command-line argument `-force-vulkan`). Vulkan still has issues on some systems, but once we work those out it will become the default graphics API on Windows & Linux.


Platforms

  • Linux: fixed mouse button presses sometimes registering as phantom scroll wheel events (#146)
  • Linux: fixed the camera moving when the game window does not have focus and the cursor moves into the game window area (#148)
  • Linux: fixed Action Wheel segments being invisible on Linux OpenGL (#41)
  • MacOS: fixed keybindings in the UI sometimes displaying as empty/blank


Miscellaneous

  • Changed default offline player names from “Citizen [random number]” to “Bobby #[random number]”, and reduced the max size of the random numbers
  • When taking a screenshot, the screen now flashes grey for one frame (this is a necessary temporary limitation and will be removed in a future release)
  • Added secret setting: `MHG.Secret.ScreenshotFlashColor`
  • The FPS counter no longer erroneously reports 60FPS for the first second it is enabled (#350)
  • The Resolution setting is now disabled while the game is running in windowed mode, and in general windowed mode is handled much better
  • The 4D option for barrier shader quality is not displayed anymore because it is too slow; however, it can still be used if you enable the secret setting `LogicSettings.Secret.ShowHiddenDropdownValues`
  • Updated the “Performance Impact” displayed in the settings menu for various graphics settings to be more accurate to the new rendering tech
  • Fixed sometimes not being able to delete sandboxes using the UI (#101)
  • Added a new setting: “Pause on Defocus”. Disabled by default. (#191)
  • Removed intro screen in non-preview versions
  • Added secret setting: `MHG.Secret.PreviewsOnly_SkipIntroScreen`
  • Added Herobrine


Logic World v0.91 coming soon; previews available now

Greetings, gamers!

After many months of very hard work, Logic World's first major update is almost ready. v0.91 has some major performance upgrades, countless bug fixes and stability improvements, a few juicy new features like the Simulation Controls, and many smaller tweaks focused on improving quality-of-life like Chair-only Keys.

We hope you enjoy the update! If you're eager to try it out right away, follow the instructions below to check out the Preview versions. Once we've fixed all the nasty little bugs that the Preview People will surely find, the update will be fully released.

Help us localize the new features


If you speak a non-English language, we'd love your help translating Logic World to that language! All the new translation strings in 0.91 are ready for you to translate. Head over to https://logicworld.net/translate to get started.

Notification of upcoming price increase


Simultaneously with the full release of update 0.91, we're going to raise the price of Logic World from USD$12 to USD$15 (and regional equivalents). It has always been the plan to increase the price throughout Early Access, and this new price point reflects that 0.91 is a more polished and more valuable product. There will be several more price increases before we get to 1.0.

We are currently planning to never have a discount on Logic World, so the current price point is the lowest it will ever be. If you haven't bought Logic World yet, now would be a savvy time to do so :)

Get access to the 0.91 previews


Note: preview versions might be unstable and buggy. Consider waiting for the full release before trying the update.

To get access to the 0.91 previews:

  1. Back up your saves. We're pretty sure there are no giant horrible save-destroying bugs in the previews, but hey we're not omniscient, so be cautious and back up your saves! 0.91 saves are not backwards-compatible with 0.90; upgrading is a one-way process.
  2. In your Steam library, right click Logic World and click "Properties..."
  3. Select the "BETAS" tab, and choose the "public-previews" branch.




Steam will now download the latest preview version. The same instructions work for the dedicated server.

If you find a bug in the previews, please report it on the Logic World Issue Tracker, and specifically mention which preview you discovered it on.

Please leave feedback on the new features and changes in The Big 0.91 Feedback Thread.

Changelog


Here is the full list of changes in the 0.91 previews! This post will be updated every time a new preview is published, and we'll also post a notification in the #news channel of the Logic World Discord server.

[h2]v0.91 Release Candidate 1 (revision 645)[/h2]

  • Slightly improved future-proofing of the save loader & analyzer
  • Fixed the simulation unpausing in singleplayer if you pause the simulation, then open and close the pause menu
  • Edit pass on the 0.91 changelog
  • Added WIP translations for Korean, Spanish (Spain), and Turkish
  • Updated translations and translator credits for Chinese (Simplified), Croatian, Czech, Dutch, Estonian, Finnish, French, German, Hebrew, Hungarian, Japanese, Polish, Portuguese (Brazil), Romanian, Russian, Slovenian, Swedish, and Ukrainian 🇺🇦
  • Removed "preview" designation 🚀


[h2]v0.91 Preview 632[/h2]

  • Music is loaded from disk more reliably; fixed music playback issues on some systems (#422)
  • Added command: `input.ExportSystemKeyNames`
  • Fixed keybindings on MacOS sometimes displaying as empty strings, FOR REAL THIS TIME


[h2]v0.91 Preview 627[/h2]

  • Colliders are now always enabled when the object is visible. This fixes many bugs including #428 and #429.
  • Added secret setting: `MHG.Secret.UnityFixedDeltaTime`. Increasing this value can massively increase the framerate in very large worlds (with a very large number of colliders), but will reduce the accuracy of game physics.
  • Added secret setting: `MHG.Secret.UnityMaximumDeltaTime`
  • Removed secret setting `MHG.Secret.LimitColliderDistance`
  • Fixed occasional error screen when resizing (#453) which also hopefully fixed the errors when cloning (#451)
  • Fixed the Board Drawing mechanic going goblin mode if you try to draw a board bigger than the maximum board size (#453)
  • Setting the Music Frequency setting to "Never" now prevents music from playing on the main menu, as well as during gameplay (#435)
  • Fixed setting descriptions being cut off in the Settings Menu sidebar if the description is sufficiently long (#342)
  • Added a new setting: "Pause on Defocus". Disabled by default. (#191)
  • Linux: fixed the camera moving when the game window does not have focus and the cursor moves into the game window area (#148)
  • (Hopefully) fixed keybindings on MacOS sometimes displaying as empty strings
  • (Probably) fixed the game randomly crashing on startup sometimes (#458)
  • Parsing errors for SUCC files in mods now provide the path to the file instead of a GUID (#443)
  • Removed a profane debug statement that was accidentally left in (#456)
  • Fixed console error spam if you have the Help menu open and you switch game states on two consecutive frames (#395)


[h2]v0.91 Preview 608[/h2]

  • Fixed the game not working if loopback is the only network interface available (#425)
  • Fixed music not playing on first load of main menu
  • Pretty much fixed the music sometimes stuttering during playback (#422)
  • Fancy pause menu music effects are snappier by default
  • Fixed the loading screen not showing up when connecting to a server with the UI
  • Fixed instanced geometry sometimes being invisible when you're more than 1000m away from the world origin. The limit has been expanded to 50000m, which is well outside the playable game area so it should be fine now ¯\_(ツ)_/¯
  • Fixed shared mod `.cs` files being in `shared/` instead of `src/shared/` (#341)
  • Fixed mod compilation failing when a mod assembly does not have a path, i.e. when using Harmony mods (#308)
  • The Resolution setting is now disabled while the game is running in windowed mode, and in general windowed mode is handled much better
  • The Resolution setting is now properly saved as a Vector2Int instead of a string with extraneous data
  • Fixed UI popups not being properly fitted within the screen area
  • Custom MessagePack formatters now use MessagePack best practices (#259)
  • Miscellaneous minor optimizations


[h2]v0.91 Preview 586[/h2]

  • Fixed not being able to clone an object and place it on itself
  • (Hopefully) fixed objects sometimes being invisible and then crashing the game


[h2]v0.91 Preview 582[/h2]

  • Multi-Clone now supports cloning wires that connect the different selected objects (#73)
  • During Grab, Clone, and Resize operations, the placing ghost will now update its circuit states instead of being frozen
  • Added secret setting: `MHG.Secret.Building.PlacingGhostsRecieveCircuitStateUpdates`
  • During a Multi-Select pass, components which are a child or parent of the initially-selected component will no longer be added to the selection. I would love to hear your feedback on this -- is it a good change?
  • Added secret setting: `MHG.Secret.Building.MultiSelector.AllowSelectingChildrenOfFirstComponentInPass`
  • Added secret setting: `MHG.Secret.Building.MultiSelector.AllowSelectingParentsOfFirstComponentInPass`
  • You are now always allowed to proceed with a deleting operation when multiple components are selected (the previous rule was that you had to select all the children of a component)
  • If another player edits the properties of a Flag (i.e. name, color, aspect ratio) while you have the Teleport Menu open, the Teleport Menu will now update to reflect those changes
  • By default, the Edit Flag menu will no longer close immediately when you select a new color
  • Added secret setting: `MHG.Secret.UI.EditFlagMenu.CloseImmediatelyWhenBigColorClicked`
  • Fixed sometimes not being able to rotate Switches, Buttons and Keys without grabbing them first (#206)
  • Fixed sometimes placing from the wrong point of a large object when you grab it
  • Fixed rotations getting out of sync during Multi-Clone if you try to rotate before the first successful placement (#268)
  • Fixed Clone operations not properly copying the circuit states of the original objects, which would often result in flickers and broken feedback loops (#116)
  • Fixed Delayers getting out of sync after being cloned
  • Fixed undoing build actions that deleted wires breaking the undo stack (#399)
  • Fixed error screen if you tried to Redo while the undo history is empty
  • Fixed placing ghosts sometimes being invisible for a few frames after you Grab something
  • Fixed errors in the console when grabbing and resizing Flags
  • Fixed warnings in the console when grabbing multiple Flags
  • Improvements to physics performance
  • Improved performance of Clone operations


[h2]v0.91 Preview 554[/h2]

  • Improved performance of walking the circuit network graph for large clusters. This gives us a significant additional speedup for save loading times and when moving a lot of Sockets. Thank you to GHXX for giving me a tip on how to do this!
  • Multi-Grab and Multi-Clone handle a bunch of edge cases much better, particularly related to circuit boards
  • Various improvements to Multi-Edit, especially with regards to colorable components
  • Added secret setting: `MHG.Secret.UI.EditColorableComponentsMenu.CloseImmediatelyWhenBigColorClicked`
  • Fixed hovered colors in the Quick Color Chooser being persistently applied when the operation is canceled (#71)
  • Fixed not being able to resize short Flags
  • Fixed flip state not always being correctly detected for Grab/Clone operations (#351)
  • Fixed world outlines becoming all fucked up after editing a Chair
  • Fixed selected components not being outlined while in Edit Component menus


[h2]v0.91 Preview 536[/h2]

  • Improved performance and reduced allocations when grabbing or cloning stuff
  • Reduced memory usage in large worlds
  • Improved performance of checking Socket connections
  • Significantly improved the performance of instantiating the circuit network graph when loading a save (#397). This might break things, please check if this breaks things.
  • Upgraded server runtime to .NET 7.0
  • The packet IDs for `DiscoveryRequestPacket` and `DiscoveryResponsePacket` are now hardcoded to the IDs they had in 0.90, so server discovery is now properly backwards-compatible (#424)
  • Fixed sometimes not being able to delete sandboxes using the UI (#101)
  • Fixed the integrated server process not being killed in some cases where it should be (#401)
  • Fixed new player positions not being applied until all overlay UI is closed
  • Added command: `runtimeinfo`


[h2]v0.91 Preview 510[/h2]

  • Linux: fixed crazy issues with SUCC files on that prevented the game from starting up properly (#423)
  • Linux: fixed mouse button presses sometimes registering as phantom scroll wheel events (#146)
  • Linux: fixed Action Wheel segments being invisible on OpenGL (#41)
  • The default graphics API is once again Direct3D 11 on Windows and OpenGL on Linux. Vulkan will be made default on both platforms in a later update when we fix it crashing on some systems. Fixes #436
  • SUCC file auto-reloads are more reliable
  • There are far fewer disk writes related to game settings, especially on startup, which should improve startup performance
  • The game will no longer enforce the Resolution setting when running in windowed mode. If you set a custom resolution for the game window that's different from what the Resolution setting says, that custom resolution should now persist when you re-launch the game.
  • Fixed some issues with UI usability when running the game at extremely wide aspect ratios
  • Fixed the debug console window rendering in front of its hover tags
  • Fixed hover tags sometimes not disappearing when they're supposed to
  • Added command: `UI.Debug.LogObjectsUnderCursor`


[h2]v0.91 Preview 485[/h2]

  • Fixed the instancing shader not working on OpenGL
  • Added OpenGL as a fallback graphics API on Windows and MacOS


[h2]v0.91 Preview 483[/h2]

  • Fixed Gridlands customizations not working
  • Fixed in-game changelog menu being broken
  • Fixed jankiness when using the scroll wheel in the debug console
  • OpenGL can now be used again on Linux with the command line argument `-force-glcore`


[h2]v0.91 Preview 477[/h2]

  • Dramatically improved the client-side performance of updating the color of a large number of objects (i.e. when a large circuit is running) using cool ass compute shaders
  • On Linux, the graphics API has been upgraded to Vulkan, which hopefully fixes everything being broken in some Linux environments (#421)
  • On Windows, the graphics API has been upgraded to Vulkan, but (for now) you can still use Direct3D 11 with the command line argument `-force-d3d11`
  • The `PrintUnityEnvironmentInfo` command now reports much more information, especially about the system hardware and the graphics API. The information is also now formatted much more nicely.
  • Fixed the server always saving on close even if the server config value `SaveOnClose` is set to `false`
  • Fixed error screen in some situations with multi-wire placing
  • Multi-wire placements with only one peg in the first selection now work properly


[h2]v0.91 Preview 461[/h2]

  • Fixed chunks starting out invisible until you go away and come back
  • Fixed server errors when you modify the number of pegs on a Display (#419)
  • More kinds of errors in the game loop are now caught and trigger an error screen
  • Improved client-side loading performance a bit more
  • The screen now flashes grey instead of white when you take a screenshot
  • Added secret setting: `MHG.Secret.ScreenshotFlashColor`
  • Updated the "Performance Impact" displayed in the settings menu for various graphics settings to be more accurate to the new rendering tech


[h2]v0.91 Preview 451[/h2]

Building

  • Multi-wire placement is now treated as a single action in the undo/redo history, instead of one action per wire placed (#318)
  • Wires can be slightly shorter now
  • You can now configure the size of the Action Wheel
  • Added a button in the Action Wheel configuration screen to reset to the default Action Wheel configuration
  • Fixed undo/redo stack breaking and causing errors sometimes (#396, #281)
  • Fixed log spam with "Look viewing rotation vector is zero" during some edge cases with grabbing
  • Fixed a few issues with multi-edit
  • Fixed some issues with components moving around upon completing a multi-resize (among them #266)
  • Fixed board drawing sometimes not properly snapping to a square size when holding shift (#203)
  • Fixed canceling multi-wire placement not removing the outlines of the selected pegs (#233)


Components

  • Added an option to Keys to only allow pressing them while in a Chair
  • Added a "reset" button to the Edit Delayer menu, to reset it to the default delay of 10 ticks
  • If you hold to Mod key while flipping a row of switches, they will all be set to the same state as the first switch flipped (#60)
  • Added secret setting: `MHG.Secret.InvertMultiSwitchInteractionModKeyBehavior`
  • The input pegs on XOR Gates, AND Gates, D-Latches, Oracles, and Relays are now slightly longer
  • Fixed some unintuitive Delayer behavior that could, among other anomalies, allow one-tick pulses to go through a two-tick Delayer (#183)
  • Fixed Chairs sometimes erroneously complaining that they are occupied (#223)
  • Chairs will no longer be outlined if you look at them while they are occupied


Simulation Speed

  • Added Simulation Speed menu. It can be accessed through a new button in the pause menu or with a hotkey, bound by default to `F9`
  • Added a hotkey to pause or resume the simulation, bound by default to `F10`
  • Added a hotkey to step one tick forward through the simulation (when the simulation is paused), bound by default to `Shift+F10`
  • Added secret setting: `MHG.Secret.SimulationSpeedMenu.ShowRemoveFromListButtonsOnHover`
  • Added secret setting: `MHG.Secret.SimulationSpeedMenu.SavedSpeedWiggleData`
  • Added secret setting: `MHG.Secret.SimulationSpeedMenu.AutoResumeSimulationWhenChangingSpeed`
  • Added server config value: `DefaultSimulationTPS`
  • Added server config value: `MaximumSimulationTPS`
  • Removed the server config value `SimulationTPS` as this is now configured per-save in ExtraData
  • Renamed the server command `step` to `simulation.step` for consistency
  • Fixed the simulation unpausing when a new player joins the server even if the players currently on the server have paused it (#347)


Circuitry

  • Outputs that should start on (such as the outputs of newly placed Inverters) now start on in the simulation
  • Fixed component outputs sometimes changing state when the number of inputs is changed
  • Fixed weird simulation glitches (and occasionally server crashes) that would occur when changing the number of pegs on a component that has connected output pegs (#104, #250)


Optimization

  • Significantly improved loading times, especially for large worlds
  • Improved game framerates for most scenarios, particularly for large worlds, and particularly if post-processing or shadow cascades are disabled
  • Component/wire geometry is now rendered with GPU instancing instead of in combined mesh chunks
  • Colliders are instantiated more efficiently
  • The game now logs how long it takes the client to load a save
  • Removed the secret settings `MHG.Graphics.RenderDistance.Secret.IdealFramesBetweenRecalculations` and `MHG.Graphics.RenderDistance.Secret.MaxTimeBetweenRecalculationsSeconds`. Render distance is now recalculated when the player has moved to a new chunk, not on a time interval.
  • Added secret setting: `MHG.Secret.LimitColliderDistance`


Fixy Pointy

  • Component positions are now stored as fixed point rather than floating point
  • Component world positions are now calculated in the reference frame of the stack root component
  • Rounding of component rotations is smarter and more consistent
  • Due to these changes, components now stay perfectly aligned up to an arbitrary nesting depth (#269, #273) and no longer cause tiny erroneous intersections (#123)


Save Files

  • Upgraded to Blotter File Format v6, to store positions in the new way (fixed point rather than floating point)
  • Blotter v6 also has support for multi-root subassemblies, in preparation for some 0.92 features
  • Added save converter from v5 to v6
  • The game no longer considers a save to be "corrupted" if the saved blotter format version doesn't match the current blotter format version
  • Fixed missing translation string for the file corruption state "unknown save type"
  • Fixed sandbox list displaying an empty info box for saves with an outdated format version


UI

  • The in-game changelog is much prettier, and the changelogs for each update can now be individually collapsed and expanded
  • The in-game changelog now automatically generates and displays links for mentioned issues
  • The About menu, Languages menu, and Teleport menu can now be accessed from the Pause menu
  • The markdown renderer does a better job of rendering lists and headers
  • The markdown renderer now supports superscript. This is disabled everywhere by default, but it can be enabled for chat via a new `Superscript` section in the secret setting `MHG.Chat.Secret.ChatMarkdownSettings`
  • Enabled smooth scrolling for the Settings Menu sidebar
  • Fixed some visual issues with the Settings Menu sidebar for settings with names long enough to span multiple lines
  • Fixed some inconsistencies with UI text boxes
  • Fixed the game being unpaused in singleplayer when accessing a sub-menu of the Pause menu
  • Fixed some visual issues with the custom avatar preview (under settings -> multiplayer)
  • Fixed some resizing arrows not being properly disabled on configurable menus that are not supposed to be resizable, such as the Edit Delayer Menu (#377)
  • Fixed the binding prompts in the Action Wheel not updating to show the new bindings if you change them


Thumbnails

  • Thumbnails are now be anti-aliased
  • Thumbnail lighting is now independent of environment lighting, so thumbnails will now always look consistent
  • Thumbnails for single components where the output is supposed to start on, such as Inverters, now properly appear on in the thumbnail
  • Added command: `ExportThumbnailCache`
  • Added command: `RegenerateThumbnailCache`
  • Added secret setting: `MHG.Secret.Thumbnails.ThumbnailAmbientLighting`
  • Added secret setting: `MHG.Secret.Thumbnails.ThumbnailDirectLighting`
  • Added secret setting: `MHG.Secret.Thumbnails.ThumbnailRenderSizeFactor`
  • Added secret setting: `MHG.Secret.Thumbnails.ThumbnailAntiAliasing`
  • Renamed the secret setting `MHG.Secret.ComponentDisplayRotation` to `MHG.Secret.Thumbnails.ThumbnailModelRotation`
  • Renamed the secret setting `MHG.Secret.ComponentDisplayRenderSize` to `MHG.Secret.Thumbnails.ThumbnailRenderResolution` and changed the default value from 256 to 128
  • Due to a limitation of the new rendering tech, new thumbnails will now be blank for a single frame after creation. To avoid this, thumbnails are pre-cached as much as possible.
  • Fixed visual artifacts that appeared wherever geometry intersected the edge of the thumbnail render


Text rendering

  • Added support for emojis (i.e. 🍆😆🐢🥗)
  • Added support for music symbols (i.e. 𝄞𝄿𝅘𝅥𝄇)
  • Added support for additional math symbols (i.e. 𝞉𝞩ϵϕ𝚤)
  • Added Hong Kong style option for CJK characters. Currently only accessible by setting the secret setting `LogicUI.Secret.CjkDefaultFontStyle` to `Hong_Kong`
  • All characters in the Adlam script are now displayed in the joined style (previously some were in an unjoined style)
  • All characters in the Arabic script are now displayed in a neutral arabic style (previous some were in a Kufi style, and some were in a Naskh style)
  • Added support for the following scripts: Bassa Vah, Bhaiksuki, Caucasian Albanian, Duployan, Elbasan, Elymaic, Grantha, Gunjala Gondi, Hatran, Indic Siyaq Numbers, Khojki, Khudawadi, Linear A, Mahajani, Manichaean, Marchen, Masaram Gondi, Mayan Numerals, Medefaidrin, Meroitic, Miao, Modi, Mro, Multani, Nabataean, Newa, Nüshu, Old Hungarian, Old North Arabian, Old Permic, Old Sogdian, Pahawh Hmong, Palmyrene, Pau Cin Hau, Psalter Pahlavi, Sharada, Siddham, Sogdian, Sora Sompeng, Soyombo, Syriac, Takri, Tirhuta, Wancho, Warang Citi, and Zanabazar Square. PHEW
  • Updated Noto fonts
  • Updated Font Awesome to 6.1.2, with over 7,000 new icons!


Movement

  • Fixed the secret setting `MHG.Flying.Secret.AutoEnterNoclipOnStartFlying` not even working, and breaking the game in various ways when set to `true` (#279)
  • Fixed errors in the console when a player is standing on a component decoration (such as a Chair or the clicky part of a Button) and that component gets destroyed
  • Fixed incorrect footstep sounds being played in some situations


Interactables

  • Added support for outlining Interactables that are not part of components. This is used for the big clicky button in the test world, which is now outlined when you look at it
  • Interaction-dragging behavior is now consistent between chairs and standing: when the cursor is moved to be looking at a non-interactable, the interaction ends
  • Added secret setting: `MHG.Secret.Interactables.StopInteractionIfLookingAtNonInteractable`
  • You can now interact with the same Switch multiple times during one interaction
  • When interacting with a Chair to sit in it, the interaction will now immediately end, instead of continuing while you sit in the chair. Fixes #103


Music

  • Added a "Never" option to the Music Frequency setting
  • Changing Music Frequency will no longer cause music to stop playing (except when setting it to "Never")
  • Fixed reloading the settings causing music to stop playing (i.e. by switching settings profiles)
  • The fancy music effects in the pause menu are now a bit more subtle by default


Modding

  • Fixed InputPeg.AddPhasicLinkWith throwing a NullReferenceException in many cases


Server

  • Periodic server tasks can no longer cause a server death spiral if they take too long. This was often presenting when autosave was enabled on a very large world.
  • If the server fails to broadcast its existence on the local network, it will now disable local network broadcasting instead of just crashing
  • Reduced the minimum time between connections to a server from a single IP from 30 seconds to 3 seconds
  • Messages in the server console announcing player leaves/joins are prettier


Technical

  • Fixed the game not properly detecting supported network protocols, which was causing various nasty bugs that made the game unplayable in certain network setups or when no external network interfaces are available (#204, #333, #229)
  • Updated Unity version to 2019.4.40f1
  • Upgraded server runtime from .NET Core 3.1 to .NET 6.0
  • Fixed there being an omega (Ω) in the name of a dll, which prevented the game from working properly in some environments
  • All error messages and APIs are now PG-13
  • The server now explicitly rejects wire requests between two outputs (previously, it would throw an error if sent one)
  • The game now updates `___LastLoadedGameVersion` in `settings_master.succ` with the most recently loaded game version every time the game starts
  • Error messages about parsing SUCC files are much more helpful, and now contain the file path & line number
  • Various SUCC files, such as `settings_master.succ`, will now be automatically reloaded and their changes applied when the file is changed on disk.
  • Configurable menu data is now stored in the profiled settings files instead of in a separate file for every menu. This means menu configurations now properly work with the settings profile system.
  • Removed `config_override` files. All server config values are now stored only in `config.succ`
  • Added a system for updating CustomData in saves when the layout for a component's CustomData changes between versions


Miscellaneous

  • Removed startup screen in non-preview versions
  • Added secret setting: `MHG.Secret.PreviewsOnly_SkipIntroScreen`
  • Changed default offline player names from "Citizen [random number]" to "Bobby #[random number]", and reduced the max size of the random numbers
  • The 4D option for barrier shader quality is not displayed anymore because it is too slow; however, it can still be used if you enable the secret setting `LogicSettings.Secret.ShowHiddenDropdownValues`
  • When taking a screenshot, the screen now flashes white
  • The FPS counter no longer erroneously reports 60FPS for the first second it is enabled (#350)

Logic World Wednesdays: The Even Clickier Edition

Chair-only Keys - Jimmy


I added a much-requested option to Keys that only allows them to be pressed while sitting in a Chair.

[previewyoutube][/previewyoutube]

Even More Configurable Action Wheel - Jimmy


I added a slider to the Action Wheel to change its size, as well as a button to reset the Action Wheel to its default configuration.

[previewyoutube][/previewyoutube]

I'm planning to add even more customization options to the Action Wheel later, like changing the inner radius of the segments and the opacity.

Even Clickier Switches - Jimmy


I added a nifty little feature that lets you quickly set a whole line of switches to a single state.

[previewyoutube][/previewyoutube]

Web Request Tracing - Felipe


As you know from previous LWWs, the logicworld.net website's backend is made up of many individual services, each responsible of a number of tasks. When you make a request to the website, the main web service calls all of the necessary services, which in turn can call other services. This can make it difficult to know what actually happens when a request is made, since there is no way to know how the service calls are related to one another.

To remedy this, there is a thing known as tracing. When implemented in a system such as ours, tracing adds metadata to each call that associates it with the top level call, allowing us to know why and when a service is called. This also makes it easy to identify performance bottlenecks, since we can know what took the longest time.

I've now implemented tracing for all of logicworld.net's services. This will make the web services easier to debug and to optimize.



0.91 previews coming very soon


We are almost done with 0.91, the first major update for Logic World. It is on track to be fully released later this month. Before that, though, we'll be releasing it "in preview". This means you'll be able to opt-in to downloading the update early, but it isn't guaranteed to be 100% stable. The primary purpose of the preview releases is to get more people and systems hunting for bugs, so that the full release can be as bug-free as possible.

If all continues to go well, public 0.91 previews will begin later this week :)


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

To make sure you don't miss the next blog post, 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!

View this post on logicworld.net

More Logic World Wednesdays

Logic World Wednesdays: The Advancedly Queryable Edition

Super Sortable Issues - Felipe


I've been working on improvements to the Logic World issue tracker that make it easier to navigate the growing list of tracked issues. You can now input an advanced query that sorts issues based on their status, type, tags, title, and body contents.



The '|' and '&' characters can be used, respectively, as "or" and "and" operators. When querying issue title and body contents, regex is supported.

This new querying helps us immensely in finding specific issues, viewing issues in a specific category, and determining what issues to work on next. In the future I plan to add a UI for generating these advanced queries, similar to what Github has for issue sorting.

Status Shenanigans - Felipe


I created a new status page at https://status.logicworld.net/. This page monitors for outages in the Logic World services, and provides a place for us to announce any planned downtime.



There's also a feed in the Logic World discord server that automatically posts status updates using webhooks.

As Logic World grows, we will have more services, and more people will rely on them, making it important to have this status page.

Less Forgettable Image Attachments - Felipe


The logicworld.net system for including images in forum posts or tracker issues requires you to first upload an image, then insert that image into the body of the post. However, many users did not immediately understand this flow, and assumed that once they'd uploaded an image, it was already part of the post. The users were confused when they made the post and the image was not included with it.

To help users understand the flow better, I've added a little warning when an image has been uploaded but not included in the post.



Beating Up Bugs like they Owe me Money - Jimmy


In preparation for the release of update 0.91 -- which I think I'm going to christen "The Less Buggy Update" -- I've been hammering away on more bugs and stability fixes. This has been made much easier thanks to Felipe's work on improving the issue tracker, thank you Felipe!

Notably, this week I fixed some nasty simulation glitches that were plagueing Dynamic Components (components with a variable number of input/output pegs, such as AND gates). #104 and #250 are no more (#104 had a pretty interesting cause, click to read my comment about it). And I also fixed the game not properly detecting supported network protocols, which was causing various nasty bugs that made the game unplayable in certain network setups or when no external network interfaces are available (#204, #333, #229, and others). I'm VERY sorry those issues were in the game for so long, I know they've caused a lot of frustration :(

We are on track for a 0.91 release in late September, and I expect we'll start public previews of the update next week.


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

To make sure you don't miss the next blog post, 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!

View this post on logicworld.net

More Logic World Wednesdays