Name | Logic World | ||
Developer | Mouse Hat Games | ||
Publisher | Mouse Hat Games | ||
Tags | |||
Release | 2021-10-22 | ||
Steam | € £ $ / % | ||
News | |||
Controls | Keyboard Mouse | ||
Players online |  n/a  | ||
Steam Rating | Very Positive | ||
Steam store | |||
Public Linux depots | Logic World - Linux [1.75 G] |
Hello gamers. It is time for another radical new Logic World update! Version 0.91.3 is out now, and you can get it right here on Steam.
Building
Undo/Redo
UI
Modding
Error Screen
Logging
Server
Save Files
Teleporting
Command Line Arguments
Localization
Miscellaneous
|
Hello! As we discussed last week, were working on a new game update, and it will be out in a few days. In the meantime, heres a little blogging from Ecconia on one of the changes coming soon our new logging system. |
Hey everyone! Weve been hard at work on Logic World, and we thought it was about time we gave you an update on how things are going. |
Salutations, gamers!
Building
Server
Save Files
UI
Localization
Modding
Miscellaneous
|
Hello, it's me, Jimmy from Mouse Hat Games. If you're reading this, you've probably been following Logic World for some time, and you've probably noticed that for the past year, there's been very little official communication about Logic World. I'm truly sorry for the silence. It ends now. Hello! I'm Zoey, a self taught software engineer from England. [h2]Ecconia[/h2] Ecconia is the biggest superfan of Logic World there ever was. For years he's been building incredible machines in the game, creating dozens of spectacular, joyful mods (not to mention creating modding tools and frameworks), hosting servers, helping newbies get on their feet, and one time even re-coding the whole game from scratch in Java. The years-long dedication he's had to Logic World is awe-inspiring, and it's only natural that he now joins the dev team to drive the game's success in the most direct way possible. Ecconia understands deeply what makes Logic World good, where exactly it's lacking, and just what needs to happen for it to fulfill its potential and be the best it can be. Heya, I am Ecconia. [h2]GHXX[/h2] GHXX is a brilliant engineer, both within Logic World and beyond it, who pushes the boundaries of this game like nobody else. He has an incredible amount of skill and knowledge across technical domains, and he applies it to this project with invigorating fervor. In-game, he creates intricate yet expansive machines that I adore -- so much so that I used screenshots of them in the 0.91 release blog. GHXX's excellence and passion are constantly pushing me to be a better developer, and shaping Logic World into a better game. Hi, I'm GHXX, a self-taught programmer, with around 10 years of experience in C# (the language that Logic World is primarily written in) and a varying, but smaller amount of experience in a plethora of other languages. I also like to reverse-engineer code, even on the assembly level and, of course, play modded games. I love this freaking team. What an amazing group of humans. A New Update We've been cooking up a new game update for you! Logic World v0.91.2 will be dropping next Wednesday, December 20 on Steam and Itch.io. This is a jolly little update containing large performance improvements, some better building mechanics, tons of bug fixes, and a whole bunch of other miscellaneous goodies. It's the first update that all five of us in the new core dev team have worked on. As usual, the full detailed changelog for v0.91.2 will be posted here on this blog when the update comes out. To make sure you don't miss it, sign up for our fabulous newsletter. A New Engine Unity just kind of sucks in general and it keeps getting worse and we all hate working with it and recent events have made it clear that as an organization Unity cannot be counted on to not do terrible awful horrible crap that completely screws us over. We want Logic World to be built on a tech stack that we love and have confidence in; we want the future of our game to be secure and within our control; maybe most importantly, we want our experience of working on our game to be as pleasant as possible, so that we feel joy when we open the project, rather than dread as we are forced to wait for ten minutes for Unity's goddamn progress bar to do god-knows-what. With all this in mind: update 0.91.2, coming next week, will be the last version of Logic World built on the Unity engine (unless we need to push a hotfix). Once 0.91.2 is out, we'll be devoting ourselves to porting Logic World from Unity to Godot: an open-source, community-driven game engine with a bright and gleaming future. We evaluated many options for the new engine before settling on this one. There are a lot of reasons I love Godot, and we'll probably do a full development blog dedicated to the upsides of this engine, but in short, Godot is:
The work to port things will not be fast or easy, but it's the best move for our long-term future. I've been looking for years for an opportunity to get away from Unity, and now is finally the right time. --------------------------------------- I love Logic World so much. I'm excited every single day to wake up and work on it. We'll see you next week for update 0.91.2. We'll see you in 2024 for many exciting development blogs and huge new game updates on our glorious new game engine. We are Mouse Hat Games, we are stronger than we've ever been, and we are going to build the greatest circuit simulation video game ever made. Thanks for reading. It's the privilege of a lifetime to make this thing for you. Jimmy Cushnie Creator of Logic World |
What's up gamers,
Components
Servers and Multiplayer
Music
Localization
OBJ Export
Authentication
Miscellaneous
|
Greetings, gamers!
Components
Simulation
Circuitry
Optimization
Fixy Pointy
Save Files
UI
Thumbnails
Text rendering
Localization
Movement
Interactables
Music
Modding
Server
SUCC and settings files
Technical
Graphics APIs
Platforms
Miscellaneous
|
Greetings, gamers! 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. Known issues This is a list of problems with the previews that we're aware of, and which we will fix before the full 0.91 release.
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 Preview 461[/h2]
[h2]v0.91 Preview 451[/h2] Building
Components
Simulation Speed
Circuitry
Optimization
Fixy Pointy
Save Files
UI
Thumbnails
Text rendering
Movement
Interactables
Music
Modding
Server
Technical
Miscellaneous
|
Chair-only Keys - Jimmy |
Super Sortable Issues - Felipe |
Greetings Gamers, |
GREETINGS! It's been another fairly unexciting week for me, but I've continued to plug away at miscellaneous maintenance tasks. Although continues to out-Hofstadter's Law me, lots of work is getting done on Logic World and I am super excited about how development is going. |
Hello Logicians! I've had a fairly pedestrian week of development, working on miscellaneous maintenance tasks. For example, I polished off last week's work on fixed point positions by updating the save format version: position data is now saved and loaded as fixed-point instead of floating-point, matching the new data structures that are used internally. I also added a save converter to the new format so that you can use all your 0.90 saves in 0.91, and I updated the sandbox list UI to notify the user of which saves are using the old format and need to be converted.
Also: while I was mucking around in the shader code, I found a way to make it run a little bit faster! So that's nice. It's such a small, subtle change, but it took hours and hours of banging my head against the code to make it happen. I'm still very new to graphics programming; I'm learning quickly, but this stuff is still taking me 10x longer than it would for someone experienced. However, it's all done now. Thumbnail lighting is independent of environment lighting, my shader is faster and more capable, and the shader code is much more organized & reusable. I'm happy with the graphics work I've done this week. I've got a few more small maintenance tasks on my list -- none of them nearly as daunting as shader work, thankfully. After those are taken care of, I'll spend most of the next two weeks on bugfixing. Thank you to everyone who's reported a bug in 0.90 (especially Ecconia <3), I will be going through them very soon. After that, I'll add a couple cool new building mechanics, and then Logic World's first major update will be ready for release! Thanks for reading. See you next Wednesday. -Jimmy |
Im back, baby!
If the world is small, the depth pass doesn't have to run as much. If the world is large, the advantages of instanced rendering overtake the depth disadvantages. And if post-processing or shadow cascades are reduced, the depth texture doesn't need to be used so much. I think this small performance hit is acceptable for now, since it only applies to a situation where most folks aren't struggling with framerate anyway, and the gains in other situations are so significant. In the future, we'll implement custom culling for instanced rendering, meaning that on a given frame the game will not try to draw any instances that are hidden (i.e. behind other instances). This will make everything faster across the board, but also it should fix the issues with slow depth textures. Furthermore, I'm optimistic that the engine upgrade in 0.92 will do a lot to help with this issue. The newer versions of Unity and its Universal Render Pipeline have a lot of optimizations to shadows, post-processing, and depth textures themselves. [h3]Colliders being little bastards[/h3] Colliders are the system that allow for collision with components. They prevent the player from walking straight through walls, and they allow us to detect which object the player is looking at. As I've talked about on this blog before, colliders are a big reason for performance problems in Logic World, especially for the slow loading times. I've spent a lot of time trying to implement a "virtual colliders" system, where colliders only exist for objects nearby the player. Unfortunately, I just have to give up on this idea. Logic World sandboxes are too collider-dense, and Unity colliders just have too much overhead; they can't be moved around quickly enough for this application. For now, I've done a lot of research and testing, and I'm dealing with collider setup about as efficiently as it's possible to. Note the loading time improvement in the table above; the gains were mostly due to improved collider efficiency. But still, about 8 seconds of loading time are taken up on JUST colliders, and that number gets ever worse with bigger worlds. Not to mention the appalling RAM usage... In the future, we're going to totally replace the Unity collider system with an all-custom collider system hyper-optimized for Logic World's use case. This system should take approximately zero seconds of loading time, no matter how big your world is. Unfortunately, that is really hard to code, so it'll be a while before it gets implemented. Glorious Glyphs I've done a pass on Logic World's text rendering capabilities! Most notably, text can now display mathematics symbols (like ), music notation symbols (like ), and EMOJIS!!!!!!! I freakin love emojis and I'm so happy that Logic World can now display them. Eventually, I want to display colored emojis with Twemoji. However, I need to wait for TextMeshPro (Unity's advanced text rendering system) to properly support colored glyphs. In the meantime, Google's Noto project has released a . TMP has no problem rendering them, since they're just regular uncolored glyphs, and in my opinion they look pretty good, so we're now using them in Logic World. In addition:
Most video games will give you tofu () if you try to type esoteric characters. I'm proud that, to an ever-increasing extent, if it's supported by Unicode, it's supported by Logic World. Fixing Bugs by Fixing Points If you've built a large complex structure in Logic World, you've probably run into this issue: past a certain depth of parent-child component relationships, positions and rotations start to get screwy. Even before things entirely break down into nonsense, the components aren't perfectly lined up, which causes all sorts of issues while building. This issue has plagued many a Logic Worlder, and this week I FIXED IT!!! [previewyoutube=WdTXgrcSnqE;full][/previewyoutube] Here's how I did it. Turns out it actually takes a lot of work to make a video game work in the way you would intuitively expect it to. [h3]Switching to fixed points for positions[/h3] The imprecision issues are caused by the inherent imprecision of [floating point numbers], also known as "floats". As you continue to manipulate floats, the tiny imprecisions compound on each other until they've built up to noticeable levels. I've switched component positions to using fixed points, which have a specific and constant level of precision (in this case, one millimeter). You can manipulate fixed point numbers as much as you like, and they will never lose precision -- unless you have to round them... [h3]Smart and consistent rounding for rotations[/h3] Positions in 3D space are pretty straightforward, and it was relatively simple to switch them to fixed points. However, rotations in 3D space are really bloody complicated. I am not nearly smart enough to use fixed points in a rotation matrix. Thankfully, it doesn't seem to be necessary here. The game now rounds component rotations (to the nearest 0.1 degrees along each 3D axis) at two points: when assigning a new local rotation relative to the parent component, and after calculating the cumulative rotation from the whole stack. As you can see in the video, this rounding keeps the rotations nicely aligned. [h3]Root reference frames[/h3] With the previous two changes implemented, I was still noticing a very very slight imprecision that built over time and nesting depth. However, this only occurred when the root component of a stack was not aligned with the world axes (i.e. placed on a Grasslands ground). The disadvantage of fixed point positions is that you have to round them to their precision level (in this case, one millimeter). You can't have a component at 420.69mm along the X axis; that number must be rounded to 421mm. This usually isn't noticeable, since every component in Logic World has dimensions in a whole number of millimeters, and almost every connection between components is at a right angle, so all components stay precisely aligned with the millimeter-scale grid. However, when components are rotated at non-right angles, they get pushed off of the millimeter grid. Their fixed-point positions, then, needed to be rounded, and these rounding imprecisions very slowly accumulated. I've fixed this issue by making components track their position and rotation not relative to the objective reference frame, but within the reference frame *of their root component*. Since component connections are almost always right angles, a component's position within the root reference frame will stay aligned with the millimeter grid and not accumulate imprecisions due to rounding errors. After calculating its position/rotation within the root reference frame, the rotation of that frame can then be applied to find a position/rotation within the objective reference frame. Shout out to PseudoGoose, who suggested this solution to me when we were discussing the problem some months ago :) --------------------------------------------- Thanks for being here. Thanks for caring about my crazy little video game that I love so much. It's good to be back. I'll see you next Wednesday. More Logic World Wednesdays |
Framerate go brrrrr - Jimmy |
It's been sixteen wednesdays exactly since the previous LWW, and we're very excited to be back! Logic World update 0.91 development is underway, and we've got lots to talk about this week.
This change won't affect most players, but if you're a modder or tinkerer it will probably improve your life at some point. When you accidentally screw up your SUCC formatting, the new error messages will tell you exactly where to go and what to fix. If you're a big nerd and want to look at these changes in more detail, you can check out the pull request here. Optimization work - Jimmy I've started working on some serious optimizations for Logic World. These will drastically improve loading times for large worlds, and significantly improve framerates while playing in large worlds. This work is in the early stages and I don't have anything to show for it just yet, but things look very promising, and I expect to have more concrete news soon. Stay tuned :) --------------------------------------------- That's all for this week, but we'll be back next Wednesday with another juicy blog post. To make sure you don't miss it, you can sign up for our newsletter. Consider also joining 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/ |
You've played the game, you've loved the music. You've wished you could keep listening to the music even when you're not playing the game. Well, today that wish comes true: the Logic World Original Soundtrack is now available on all your favorite internet music websites!
If you like DRM-free video games like Logic World, you'll probably like DRM-free music. While most of the above platforms are streaming-only, you can purchase a DRM-free, ultra-high-quality download of the soundtrack at Bandcamp. It's the best way to directly support Markku and his work! Wow that album art is beautiful! Tell me more about it! The gorgeous artwork you see on the album cover was specially commissioned for this soundtrack. It was created by the insanely talented Michael Yoshimura. You should definitely check out michael's website, and follow him on instagram @yoshimura_mike. And if you need some art made, commission him! You can get the album art in ultra high quality here, and you can get a clean version without the foreground text here. Wait, I thought you said this would happen next Friday, on the 11th? That we did, discerning one! But in the immortal words of the great Alanis Morissette, life has a funny way of sneaking up on you. Why did this happen a week early? We don't know! We're just reacting to it. Enjoy the early release! Ok music is cool and all but when are we getting news about game updates Our development blog, Logic World Wednesdays, will return next Wednesday, February 9th! --------------------------------------------------- Enjoy the soundtrack! Stream it, add it to your playlists, tell all your friends about it. We're very proud of this music, and we're so happy to be sharing it with you today. |
Last week we released version 0.90.2 with lots of updates and fixes. Unfortunately, that version inadvertently introduced some new bugs, so today were releasing version 0.90.3 to squish them.
|
Logic World released in Early Access four weeks ago today. In those four weeks, more than THREE THOUSAND people have bought and played the game. Thank you all so much, words can't express our gratitude for your enthusiasm and support.
Components
Modding
Worlds
User Interface
OBJ export You can now export your builds to the .obj file format. If you use Blender, use the plugin https://github.com/Red-3D/ObjFix to make your exports look correct.
Audio
Music
Localization
Servers and Multiplayer
Misc. Settings
Miscellaneous
What's Next Unless any major critical bugs are discovered with 0.90.2, this will be the last 0.90.x version. After the insanity of launch, we badly need a rest. We're going to take a vacation now, but we'll be back in about a month to work on update 0.91, which should be out in January. That update will include many highly-requested features, like the ability to save subassemblies and load them in other worlds. This next year is going to be fantastic for Logic World. Throughout 2022 we'll be releasing several major and awesome updates, a whole lot of Logic World Wednesdays blog posts, and one or two very cool surprises. If you like Logic World today, then Logic World this time next year is going to blow your freakin' mind. Thanks again for playing and for caring about our game. It really means the world to us. Until next time! -Jimmy & Felipe |
It's been one week since Logic World came out, and what a week! As of this morning we've sold two thousand copies of Logic World - literally double our optimistic, best-case-scenario prediction for week one. Thank you so much to everybody who's supported us and bought a copy. You are making our dreams come true.
Tweaks
Buffers
Modding
Localization Added work-in-progress translations for the following languages:
Bugz
What's Next We'll be releasing 0.90.2 sometime next week, and then we are finally taking a damn vacation. 0.90.2 will be the last update for a while. Let us know in the comments of this post what fixes and tweaks you'd most like to see in that update. Happy Halloween! |
Hey hey hey! Logic World came out today and it is just delightful and wondrous to see you all playing it. Thank you from the bottom of my heart to everybody who has bought the game and talked about it and shared their creations and left a review. It has been a crazy day but I am so lucky to be here right now. |
Logic World comes out in two days! TWOOOOOOOO DAAAAAAAAAYYYYYYSSSSSSSSSSSS!!!!!!!!!!!!! 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? 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 |
Yes, you read that title correctly. After literally thousands of years in development, Logic World is releasing publicly on the 22nd of this month. |
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!!! |
Howdy hey hello, |
Logicworld.net Rises to Glory - Felipe 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/ |
My Color Picker grows Ever Stronger - Jimmy |
Undo and redo - Jimmy |
Debug Displays - Jimmy
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/ |
Multiplayer Menu and Networking Upgrades - Jimmy 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 :) 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][/previewyoutube] 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][/previewyoutube] 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
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/ More Logic World Wednesdays |
Performant Building - Jimmy
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
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/ |
Optimizations - Jimmy
--------------------------------------------- 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 or join the official Discord, and of course you can wishlist and follow the game right here on Steam. View this post on logicworld.net More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Moar Awesome Character Movement - Jimmy
--------------------------------------------- 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 or join the official Discord, and of course you can wishlist and follow the game right here on Steam. View this post on logicworld.net More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ More Logic World Wednesdays |
Arbitrary World Gravity - Jimmy
--------------------------------------------- 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 or join the official Discord, and of course you can wishlist and follow the game right here on Steam. View this post on logicworld.net More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Yet More Chat Upgrades - Jimmy
--------------------------------------------- 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 or join the official Discord, and of course you can wishlist and follow the game right here on Steam. View this post on logicworld.net More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
It's been a bit of a lighter week for us, but regardless we continue to polish up Logic World.
--------------------------------------------- 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 or join the official Discord, and of course you can wishlist and follow the game right here on Steam. View this post on logicworld.net More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Multiplayer Text Chat - Jimmy
--------------------------------------------- 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 or join the official Discord, and of course you can wishlist and follow the game right here on Steam. View this post on logicworld.net More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Its been a bit of a lighter week for us, with Jimmys second-favorite holiday and some very stressful world events. But regardless, weve continued to plug away at Logic World, and weve got some juicy tidbits to share with you on this fine Wednesday.
--------------------------------------------- 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 or join the official Discord, and of course you can wishlist and follow the game right here on Steam. View this post on logicworld.net More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Smooth Scrollin - Jimmy
This stuff is really f****** complicated and so I wasnt able to finish it for this week. But look out next week for a video showing off the new controller, featuring some of that custom gravity I mentioned :) Color Picker Refresh - Jimmy I added dark outlines to all parts of the Color Picker UI, to bring it inline with the new Logic World UI style. Im really surprised by how much better this looks. I was originally planning to not even mention it in this blog, but it looks so good that I cant help but show it off. I also took the opportunity to finally add anti-aliasing to the Color Picker Triangle, fixing its ugly jagged edges. Nobody has ever pointed them out, and I might be the only one who even noticed; but regardless, its all nice and smooth now :D Bugs Fixed This Week
Happy Halloween from Mouse Hat Games! Happy Halloween, friends! May your haunts be spookish and your candies multitudinous. Please enjoy this SHINY BOBBY pumpkin, from the incredible mind and workshop of Jimmys Dad. --------------------------------------------- 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 or join the official Discord, and of course you can wishlist and follow the game right here on Steam. View this post on logicworld.net More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Welcome back to Logic World Wednesday! Were hard at work on your game, and this week weve been focused on optimization.
Yet More Web Fun coming soon! Im having a great time working on the site, and I look forward to making it ever more awesome. Cubic Chunks - Jimmy All objects in Logic World are divided into chunks. A chunk is a single, solid, giant chunk of geometry in the shape of many smaller objects. You stupid, gullible players are tricked into thinking there are thousands of objects in a world, but in reality there are only a few dozen. Chunking is the major reason why were able to have thousands of components and wires in a world without lag; GPUs are much better at rendering a small number of complex objects than a large number of simple objects. Before this week, chunks were assigned along a 2D axis. Picture a checkerboard grid on a plane within the 3D world. Each chunk existed as a column: finite along two axes, but expanding infinitely into space along the Y axis. But this week Ive overhauled the system to work properly in 3D: a 3D system for a 3D world. This is an important step for optimization, and its already sped up performance somewhat by allowing for better frustrum culling in some situations. Its also absolutely necessary to properly support world types that have a non-standard floor shape -- such as a spherical planet, or the inside of a giant cylinder -- which is something I really want to do. Ive also added a debug mode that colors all objects in a chunk with a random color, so you can visualize where the cunk boundaries are. I think it looks quite pretty :) In the process of adding 3D chunks, I did a particularly satisfying refactor of our WorldRenderer class, which had grown very bloated and nasty in the ~1.5 years since it had been created. WorldRenderer used to be about 600 lines and do several different things; now its been split into four smaller, more focused classes, each 100-200 lines. Packet Compression - Jimmy This week Ive implemented LZ4 compression on many of the network packets sent between the Logic World server and the client. LZ4 is an extremely efficient compression library: it makes data way smaller in exchange for a very small performance impact. However, the performance impact is not zero: its around 10% slower to serialize or deserialize a packet when using compression. So compression should only be used in the specific situations where the increased serialization time is outweighed by the decreased packet size. I spent about a day trying to build a system that would automatically detect whether compression should be used for every single packet. However, this ended up being insanely convoluted and not worth the effort at all. Instead, were now using a simple system where some packet types are always compressed, and some packet types are never compressed. My original code for this was kinda trash ngl, but as he often does, Felipe swooped in and made my code way cleaner and better organized. In the process, he also allowed mods to specify that their packet types should be sent compressed. Thanks Felipe! Because of packet compression, it is now about 75% faster to download world updates from the server and to upload your world changes to the server. Hotbar Customization - Jimmy Ive started adding some customization options for your hotbar! The hotbar is some of the most used and most important user interface in Logic World, and its important that everyone is able to set it up exactly how they want it. This is all part of my endeavor to refactor the hotbar code. The hotbar code is some of the oldest and worst code in Logic World, written at a time when I knew a lot less about coding and a lot less about coding user interface. It desperately needs to be cleaned up if Im to add features to it. Bugs Fixed This 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 or join the official Discord, and of course you can wishlist and follow the game right here on Steam. View this post on logicworld.net More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Reorderable Lists - Jimmy
So, I got to work on the new site with plain old HTML and a Go backend. As time went on though, I found development on the site to be really slow, and the HTML templates were getting as complicated as they were in the very first C# version of the site. The user experience also wasnt very good, with the page reloading for every action you wanted to take. This brought me to reconsider the reasons I decided to go for the HTML solution. [h2]The Vuening: The True Final Form of Logicworld.net[/h2] After much consideration, I finally arrived at the following conclusions:
For these reasons, I decided to rewrite the site into an SPA using the new Vue 3 and GraphQL as the main libraries. To be clear though, this is only a rewrite of the *website* part of the whole system. Absolutely none of the other services (such as the forum database backend or the user account authentication service) had a line of code changed, which is a big part of the reason I was able to perform this rewrite so quickly. I wrote the new site *in less than a week* (I started shortly after publishing last weeks LWW). I was able to write the boilerplate code in a day and after that, progress was silky smooth, I had a functioning forum in a couple days. This is a huge deal, as it means we are now able to iterate on and improve the site very quickly, fixing issues in a much shorter time than before. The new SPA does have some additional advantages, for example quicker navigation between pages and the future possibility of having new comments and posts appear in real time. Additionally, since we are now using a GraphQL API, third-party applications are now able to utilise it in case you *really* dont like JS (keep in mind we wont support them though). We want logicworld.net to be a central hub for community discussions, with more depth and persistence than is possible with the real-time chat of Discord. We want it to be the best place to share your creations and mods with others. Im feeling excited and confident that this new website architecture will allow us to achieve this vision. Check out our shiny new website -- it really is quite awesome. Bugs Fixed This 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 or join the official Discord, and of course you can wishlist and follow the game right here on Steam. View this post on logicworld.net More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Multiplayer Settings - Jimmy
--------------------------------------------- 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 or join the official Discord, and of course you can wishlist and follow the game right here on Steam. More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Wednesday is a state of mind.
A proper backups system has been on my todo list for literally over a year, so Im very glad to finally get it done. I know my code isnt perfect, and its just a matter of time before it corrupts somebodys hard work. When that happens, the auto-backups will be there to save the day. Still alive - Felipe Hey guys, just checking to let you know Im still here. I started school last week so I havent had as much time or energy for LW lately. Regardless, Ive been working on improving the networking of the game (yet again), and Ive also been thinking about the modding tutorials, which well be starting on soon. Unfortunately I dont have anything to show off to you this week, but Ill be back soon with fun stuff! Bugs Fixed This 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 or join the official Discord, and of course you can wishlist and follow the game right here on Steam. More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Hello, its me, Jimmy! I forgot to get Felipes section before he went to bed, and it took me the entire #$@& day to make a script for mass-exporting flag SVGs to PNG which left me no time to finish the two other features I wanted to talk about in this blog post. Well be back with a full-sized post next Wednesday, but today we have just the one lil section on Flag improvements. Hope you enjoy!
--------------------------------------------- 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 or join the official Discord, and of course you can wishlist and follow the game right here on Steam. More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Super Sexy Sandbox Selector - Jimmy
--------------------------------------------- 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 or join the official Discord, and of course you can wishlist and follow the game right here on Steam. More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Hello Logicians! We are back from our break, and so are our Wednesdays. Were more excited than ever to be making your game, and were hard at work on the remaining features and polish needed to get it into your hands.
So now that thats done with, I can add that feature I was talking about in paragraph one. Ill also be able to do a number of save-related things that have been on my wishlist for a while -- check back next week for those things :) --------------------------------------------- See you next Wednesday! More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Quick and Easy Multiplayer - Felipe
Upcoming Hiatus Hi, Jimmy here. Theres some changes happening in my life that will have a big effect on Logic Worlds development. I wont be working on this game for the next few weeks, and as such, Logic World Wednesdays will be taking a hiatus. It will hopefully return in late August. Logic Worlds release is also delayed, again. I dont know when to. Im sorry that this is happening, and Im sorry that I cant tell you more right now. I will fill you in and give a full update on Logic Worlds future when things are stable and I know whats happening. Rest assured that all three of us remain very committed to Logic World, and it WILL be released. This weeks edition is, I suppose, a season finale for Logic World Wednesdays. Thank you for all your support and love over the past two and a half years. Ill catch you on the flippity flip. --------------------------------------------- More Logic World Wednesdays |
Editable Controls - Jimmy
--------------------------------------------- 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 or join the official Discord, and of course you can wishlist and follow the game right here on Steam. More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Workshop - Felipe
--------------------------------------------- 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 or join the official Discord, and of course you can wishlist and follow the game right here on Steam. View this post on logicworld.net. More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Keybindings Menu WIP - Jimmy
--------------------------------------------- Thanks for reading, friends! Happy Canada day. 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 or join the official Discord, and of course you can wishlist and follow the game right here on Steam. View this post on logicworld.net. More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
The Logic World Community Translation Project So this week, Jimmy built a new server for us. And if youre gonna build a server, why not make a vlog about building a server :) [previewyoutube=sPnkxg4gOeo;full][/previewyoutube] But building the hardware is only half the battle. Were still working on the software part: weve got the operating system installed, weve got all the networking configured, and weve successfully activated a Unity Plus license on the server (something we were never able to do on a machine we couldnt physically access). The next step is to set up all of Felipes fancy build software on Bob. Once thats complete, well finally be able to build Logic World quickly, reliably and cheaply. Any disasters notwithstanding, youll be hearing about the completion of this project next week :) Bugs Fixed This Week
Wait a second, did I read that last bug correctly? Yes you did! This is one of the most interesting bugs weve ever had in Logic World. Can you guess what caused it? We sure couldnt for several hours! Pause reading here if you want to think about it and try to solve the puzzle yourself :) We were going absolutely mad trying to figure out this bug. We each did the same thing, but got different results. Who could have guessed that the difference in our digital setups was the physical location? It turns out the culprit was different regions using a different character for the decimal indicator! The resizable menus save their size to a SUCC file. In North America, the menus were saving their size as something like 205.872. But in Europe, they were saving their size as something like 205,872. You can probably see where this is going: the numbers were saved using the local culture, but they were loaded as a global culture. So all of the values were being blown up by 3+ orders of magnitude! , and the bug was fixed. Sometimes, bugfixing can be delightful. When the symptoms are bewildering and random, but the cause (and fix!) turns out to be simple and logical thats one of the finest feelings in programming. Regular Logic World Streams! The lovely , a beta tester for Logic World, is now doing regular streams of the game! So far on-stream hes built a ), a binary adder, a tic-tac-toe machine and more; right now hes working on a playable game of ). In our biased opinion, Daniels streams are always tons of fun, and you should check them out! Follow him on Twitch and Twitter to be notified when he goes live. --------------------------------------------- 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 or join the official Discord, and of course you can wishlist and follow the game right here on Steam. View this post on logicworld.net. More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Grabbing Rotations - Jimmy
PLUSHIE BOBBY The amazing -- whom some of you might know as NITRO -- has made a gosh darn plushie of Bobby, Logic Worlds beloved protagonist and mascot. Click here for another photo! This is pretty much the best thing ever and it has absolutely made our 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 or join the official Discord, and of course you can wishlist and follow the game right here on Steam. View this post on logicworld.net. More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Devilish Details #2 - Jimmy
Bugs with building
Bugs with the player controller
Bugs with the user interface
Other bugs
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 or join the official Discord, and of course you can wishlist and follow the game right here on Steam. View this post on logicworld.net. More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Time and Science - Markku |
Logic Worlds Release Delayed again. |
And So We Danced - Markku |
Background Blur - Jimmy |
Socket Shenanigans - Jimmy |
This blog was originally posted last week, but I forgot to post it here on Steam. This week's Logic World Wednesday will be coming tomorrow, on Thursday. |
This week we have made the unfortunate decision to postpone the release of Logic World again. The new, and with any luck final, launch day is June 12. Read more in the official announcement. |
The Socket - Jimmy
But after many many hours of programming, all of those worries and more are solved, and our popups system is robust and reliable. Popups are a necessary prerequisite for some very important menus I have planned. Youll be seeing those menus next week. Quick Colors - Jimmy This week Ive had something of a shift in philosophy with regards to how players choose colors. If youve been following Logic World for a while, you know that Ive spent a lot of time and energy making the color picker a powerful tool. Indeed, Ive succeeded in that; Logic Worlds color picker is the most fleshed-out of any video game I know of. But my pride in my color picker has made me lose focus on how people will actually be using it. When you go to change the color of something, you almost never want to bother with a huge complex interface for choosing from 16 million different colors. Usually youll just want to choose between the same 5-10 colors that you use everywhere else -- your builds aren't a hodgepodge rainbow of random colors, they use a specific and limited palette. With this in mind, Ive designed a massively streamlined color picker UI. It lets you choose colors in the way I described above, but it still gives you powerful control over the colors for the occasions when you need it. For the first time since I started working on the color picker, ten months ago I am 100% satisfied with how you change the color of things in Logic World. [previewyoutube=tgFdTIwcF4s;full][/previewyoutube] New Build Pipeline - Felipe Ive also been working on remaking our build pipeline. Previously we were using Semaphore for building and uploading the game, but we were running into issues with Unity license activation, since each build was performed on a different machine. This is the main reason we switched to hosting our own build server, since this way we could install and activate Unity with a GUI, making things much easier. The server is currently hosted on DigitalOcean, and its running a Jenkins instance. The new system should be finished and deploying builds within a day or two. Hopefully, this is the end of our build pipeline woes. One Year of Logic World As of last Saturday, its been one year since we announced Logic World. Its been a crazy and amazing year making this game for you. We both feel extremely lucky to be doing this, and to have a community as supportive and passionate as you. Thank you. Heres to many more years of Logic World :) Not coincidentally, it has also been one year since Bobby entered the world and our hearts. finished their amazing animation in celebration. Please enjoy this incredibly high-effort Logic World fan video! [previewyoutube=zxtcLOU4lqA;full][/previewyoutube] --------------------------------------------- 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 or join the official Discord, and of course you can wishlist and follow the game right here on Steam. See you next Wednesday! View this post on logicworld.net. More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
A New Pursuit - Markku |
New Horizons - Jimmy |
Instrument Sounds - Jimmy |
The world flounders, but a beacon of stability shines brightly through the fog of panic and pandemic. That beacon is Logic World Wednesdays: ever on time, ever organized, ever punctilious. We are here for you when you need something dependable in your life. This is on top of the UDP message reliability features built into Lidgren, our networking library. Thanks to this new protocol, all the bugs with connection are fixed. You can connect to a server with other players in it, you can connect to a server with a huge world loaded, you can connect while someone else is disconnecting -- it all works as it should, and I am a very satisfied developer. --------------------------------------------- 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 or join the official Discord, and of course you can wishlist and follow the game right here on Steam. See you next Wednesday! View this post on logicworld.net. More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Welcome back to another Logic World Wednesday! Its been a busy week for Mouse Hat Games and weve got a lot to talk about. |
In case you havent already heard, this week we made the difficult decision to postpone Logic Worlds release.
The next nice fix was to Mount resizing. When I added the checkmark to the resizing UI, it only worked properly for Horizontal Resizing. Mounts use Vertical Resizing, and their checkmark was broken. I quite like the tiny new checkmark. Its cute Tracker - Felipe If you didnt already know, the closed beta for LW has begun. The beta is a period for reporting issues about the game, and so far this has been done in a plain Discord channel, but this has proven to be insufficient; for example, we dont have a way of marking issues as solved. For this reason I have been working on a ticket system similar to GitHubs issue system that allows our beta testers (and you too, in the future!) to report any bugs, feature requests or other feedback, which we can later resolve. Server Docker Image - Felipe Docker is a platform for running applications in containers, which are like virtual machines, meaning that each application gets run in its own little fake OS, isolated from the rest of the machine. These applications come in the form of images, from which containers are created. This week Ive been working on making the LW server into an image, allowing users to spin up a server with a single command, provided they have a Docker installation: Screenshots - Jimmy This week I made a major upgrade to our screenshot tech. Previously, we were simply capturing what was currently being displayed on the screen and saving it to a file. But I wanted something more powerful than that. Now, the game can render screenshots at any resolution. This is exciting because it means you can take very high-quality screenshots even when youre running the game in low quality. Heres an 8k screenshot I took while playing at 1080p (click for full resolution): The build in that image is a binary multiplier made by :D I also added 360 panoramic screenshots, which I think is pretty cool. You can see one below; click on it to view an interactable version in Google Photos. Finally, I added the option to save your screenshots as jpg instead of png. This can massively reduce the size of the images even without sacrificing quality. --------------------------------------------- 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 or join the official Discord, and of course you can wishlist and follow the game right here on Steam. See you next Wednesday! View this post on logicworld.net. More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
On Monday of this week, we started beta testing! |
Audio Overhaul - Jimmy |
Hello and welcome back to Logic World Wednesdays! In case you missed it, this week we announced Logic Worlds release date: March 13, 2020. (Note: steps 4 and 5 are not yet implemented) Were going to start beta testing very very soon, and during beta testing well be building and deploying the game several times per day. So its important that this complex task is automated for us. [h2]Website Error Handling - Felipe[/h2] Our website, logicworld.net, has had some issues in the past, like comments being duplicated and posts not working. More often than not the hardest part about solving these problems was identifying what parts of the site were causing the problem, which required digging into the logs to find out the exact message and stack trace. This is the main reason I decided to implement an error logging system, which will gracefully detect and notify the user about any failed requests that have been executed, as well as helping us identify the errored request through the use of a request ID. [h2]Game Flow - Jimmy[/h2] Thanks to Felipes excellent work on the integrated server (you can read more here), this week Ive been tightening up the flow of the game between macrostates. We can now connect to an external server, then disconnect, then connect to a local server (singleplayer game). Furthermore, Ive added loading screens and an error screen -- though neither is particularly pretty right now, so Ill show those off when they are :) Ive also added the ability for you to run commands on an integrated server. Everything is now seamless; weve fully merged the client and server software into one smooth and sexy game. Of course, the standalone server software will still be available for those who want to run dedicated servers. [h2]Hotbar Shortcuts - Jimmy[/h2] I added some hotkeys for managing your hotbar! [previewyoutube=75ORqV2vvuw;full][/previewyoutube] With these hotkeys, Im opening the selection menu less than half as much as I used to when I play the game. Once you get used to them, theyre a real time saver. --------------------------------------------- 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 or join the official Discord, and of course you can wishlist and follow the game right here on Steam. See you next Wednesday! View this post on logicworld.net. More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
We have a release date! Logic World will be in your hands on Friday, March 13, 2020. |
[h2]Relays - Jimmy[/h2] |
Welcome back to another Logic World Wednesday! This week, in The Shiny Edition, were polishing up the game and getting it prepared for release.
The menu isnt quite done yet - Im still working on getting it to generate from code - but Im extremely happy with how its coming along. [h2]Lighting & Graphics - Jimmy[/h2] This week Ive been polishing the lighting setup for the game. In particular, Ive done my best to normalize the difference between light and dark; I dont want fully lit objects to be overwhelmingly bright, and I dont want objects in shadow to be so dark its hard to see them. Before: After: Click here for high-res images to compare: before 1, before 2, after 1, after 2. (Please excuse the wires in the after screenshots that are black when they should be red - it's a bug I forgot to fix before taking them :P) Lighting is really finnicky and difficult, especially in a game where the same lighting has to work for every situation: I don't know what you're going to build, but I need to have a lighting setup that works for the things you build. The results you see took many hours of tweaking and experimenting, but I'm feeling pretty happy with them. --------------------------------------------- We'll be announcing Logic World's release date very soon, so stay tuned. To do so, you can sign up for our newsletter or join the official Discord, and of course you can wishlist and follow the game right here on Steam. See you next Wednesday! View this post on logicworld.net. More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
[h2]Pick Up Component - Jimmy[/h2] |
[h2]Resizable Components Polish - Jimmy[/h2] |
Welcome back to another Logic World Wednesday! Were back from the holidays, and the push for release is underway.
Initially these services were written in C# just like the web application is, however, when migrating to Traefik I realised that every single application we were using in the server was written in Go. Go is a language thats widely used in reliable and widely used software like Traefik, Caddy and Docker. This sparked an interest in Go inside of me, so I spent a few hours learning this new language and rewriting the logger service. This service is the simplest, all it does is receive messages from all the services and log them to the database, so I thought it would be the perfect opportunity to dip my toes in Go. When I was done writing this I noticed that the service was using just a fraction of the memory that the C# service was while being a lot more CPU efficient. To sum up, 5 out of the 7 services we currently have are written in Go. Dont get me wrong, I still love C#, however its become clear to me that Go is much more tuned towards web server-side software development. [h2]Refined Building Mechanics - Jimmy[/h2] Ive done a pass of our basic building mechanics to ensure they are consistent, intuitive, and easy to use. Most notably, Ive removed the Rotation Lock mechanic; the lock is now always on. Rotation Lock was sort of an awkward and unintuitive mechanic. It was sort of a holdover from when I was trying to copy Minecrafts building mechanics, back in 2017. But Logic World has grown up a lot since then. To help communicate the new objective nature of rotation, Ive added a little compass rose to the UI with a pointer for the object placement rotation direction. Notice the pointer above the hotbar on the left. As the inverter being placed rotates, so does the pointer. --------------------------------------------- If youd like to receive an email each time we post one of these blogs, you can sign up for our newsletter. Be sure also to join the official Discord and follow @LogicWorldGame on twitter. See you next Wednesday! View this post on logicworld.net. More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
(this blog was originally posted 2019-12-18) |
(this blog was originally posted 2019-12-12)
Ive also been working on an updated About page for the site. This new page tells you a bit about us, and it lets your see our faces (to be revealed). Unfortunately I havent been able to deploy these changes for this LWW (LWT?), but you can expect to see them shortly. [h2]Unexciting Code Work - Jimmy[/h2] I spent most of this week laying the architectural groundwork for two very cool features. I was really hoping to show at least one of them off today, but they just didnt get finished in time. These two features are the final building mechanics for Logic World, and theyll complete the set of tools you have to manipulate the world. --------------------------------------------- If youd like to receive an email each time we post one of these blogs, you can sign up for our newsletter. Be sure also to join the official Discord and follow @LogicWorldGame on twitter. See you next Wednesday! View this post on logicworld.net. More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Logic Maker - Felipe |
Oh yeah, its all coming together. Since even before we announced Logic World, make a menu to edit component [x] has always been somewhere on my todo list. And now theyre all done.[/size] Integrated Server - Felipe The Logic World game client doesnt have any logic at all, its all handled by the server, which means that the client by itself cant really do much. This server is a standalone .NET Core 3.0 project, which means that it compiles into its own executable. Logic Worlds singleplayer mode is based on an integrated server, like Minecraft, which boots up every time you want to load a world. This week Ive finished the work of integrating the server with the client. The client can now spin up instances of the server and connect to them. This is an important milestone towards shipping the game - now, you can actually play it without starting up a separate server program in the background. Sandbox Menu - Jimmy Now that the integrated server is working, Ive been working on menus for using it in singleplayer. The Sandbox Menu uses the same code as the Save Board and Load Board menus, so each world can have a title, a description, and a series of tags for sorting it. The list of saved games can also be searched. This menu is still a WIP, youll see a video with it next week![/size] Intro animation - Jimmy Ive made a fancy animation with our logos that plays when the game starts up.[/size] [previewyoutube=https://www.youtube.com/watch?6bu1QbN0y64;full][/previewyoutube] --------------------------------------------- If youd like to receive an email each time we post one of these blogs, you can sign up for our newsletter. Be sure also to join the official Discord and follow @LogicWorldGame on twitter. See you next Wednesday! View this post on logicworld.net. More Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Welcome back to another Logic World Wednesday! Logic World grows closer to completion every day. This week, we've got a preview of the Logic World Theme, a look at the Main Menu and Languages Menu, and a story about the Bug from Hell. |
(this blog was originally posted 2019-11-13) |
Welcome back to another Logic World Wednesday. After a three week hiatus, we are back!
The mod as a whole is comprised of two parts: the server and the client. As their names suggest, the server.dll will only be loaded on the server startup and the client.dll will be loaded on the client startup, while the shared.dll will be loaded on both and can be used to share code between them. Its worth mentioning that all of these DLLs are regular .NET Standard 2.0 libraries generated by Visual Studio projects. A mod can have any combination of these 3 DLL files, thats to say, a mod can have a server.dll, a client.dll or both, in which case it can also optionally have a shared.dll. The assets folder contains different assets that the client-side mod will be able to load at runtime. Right now the supported types are .png, .obj (.mtl will probably come too) and .assetbundle, and Id also like to add support for audio files. The asset bundle files must be generated using the same Unity version as the game, which will be made known when the game is released. These asset bundles can contain any complex assets that you may need, like Unity scenes or prefabs. The data folder currently only contains the SUCC file defining the components that your mod has, whose format you may already have seen in previous LWWs. The lib folder can contain any external libraries your mod uses, and the manifest.json file defines the mods properties, like its name, author, and unique ID used to identify the mod in-game. Finally, the mod as a whole can be stored in one of two ways: in a .lwmod file (which is just a renamed .zip file), or in a plain folder. The former is how mods downloaded from logicworld.net will be stored, while the latter is especially useful when developing mods as you can just copy the files over without any worries. You will be able to upload and share mods on logicworld.net, but you must upload its source code, which will get compiled for you. This is in order to enforce open source code and transparency. It protects against mods with malicious code, and it helps people learning to make mods, since they can see the sources of existing ones. An Early Phriday For the past few weeks, weve been holding biweekly off-topic discussions on the Logic World Discord. This has been a lot of fun and weve had some very interesting talks. Some people have lamented that these discussions are not at a good time for them, so were experimenting with different times. This weeks Philosophy Phriday willl be 2 hours earlier than usual, at . --------------------------------------------- If youd like to receive an email each time we post one of these blogs, you can sign up for our newsletter. Be sure also to join the official Discord and follow @LogicWorldGame on twitter. See you next Wednesday! View this post on logicworld.net. Read previous Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Welcome back to another Logic World Wednesday! |
More Resizables and More Displays - Jimmy |
(this blog was originally posted 2019-09-11)
Best of all, the player controller is super moddable. You can change the way my code works, or even replace it entirely with your own code. You can see the new controller in action in the Multiplayer video above. Dynamic Components - Jimmy Each component in Logic World has what we call a prefab, information which defines how the component looks. This includes the number of blocks, the shape of those blocks, the number and positions of its inputs and outputs, and several other things. Previously, component prefabs were static. Each instance of a component would look exactly the same. But this week Ive been overhauling the way the game handles prefabs so that a component can change its appearance. Among other things, this means we can make many more components resizable in the same way boards are. I had really hoped to show this off today, but it was much harder than I expected and the system isnt done yet. Next week you can expect to see Dynamic Components in action - theres a lot of cool stuff I plan to do with them. --------------------------------------------- If youd like to receive an email each time we post one of these blogs, you can sign up for our newsletter. Be sure also to join the official Discord and follow @LogicWorldGame on twitter. See you next Wednesday! View this post on logicworld.net. Read previous Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Advanced Console Functionality - Felipe
In addition to being far more personally configurable, the new input system has several advantages over the old one:
Unfortunately I didnt have time this week to make the in-game menu for editing the controls, but you can expect to see that next week. In the meantime, you can check out the bindings file - all 79 of our configurable controls. --------------------------------------------- If youd like to receive an email each time we post one of these blogs, you can sign up for our newsletter. Be sure also to join the official Discord and follow @LogicWorldGame on twitter. See you next Wednesday! View this post on logicworld.net. Read previous Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Welcome back to another Logic World Wednesday! This week Logic World passed 4,000 wishlists on Steam. Thank you to everyone who has wishlisted, that number is just crazy!!!
The searching code is really easy to reuse now, so all future menus that are a list of things (like your list of multiplayer servers) will have searching :D Sound Effect Randomization - Jimmy Ive updated our system for playing sound effects so that there is a slight random variation in pitch and volume each time a sound is played. This helps the sound effects to feel more natural, since its not exactly the same sound every time. https://www.youtube.com/watch?v=iqPydtVdccA Monospaced Labels - Jimmy For all the Master Hackers out there, Ive added an option to labels for making their text monospaced. Miscellaneous Website Tweaks - Felipe This week Ive made various tweaks to the website, however theyre too small to warrant their own section:
--------------------------------------------- If youd like to receive an email each time we post one of these blogs, you can sign up for our newsletter. Be sure also to join the official Discord and follow @LogicWorldGame on twitter. See you next Wednesday! View this post on logicworld.net. Read previous Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Drums - Jimmy |
(this blog was originally posted 2019-08-14) |
(this blog was originally posted 2018-08-06)
This feature was suggested last week by . Moddable Instruments Singers (and now Drums) have access to a number of instruments. Each instrument is a set of rules for how to generate sounds. Previously, instruments were hardcoded into the game, but now theyre loaded from the game data folder and so mods can add instruments. Presently we support SFZ, Frequency Modulation, as well as the aforementioned mathematical waves. In the future Id also like to support Sound Font. Better Instrument Selection Previously the list of instruments was all in one giant scroll view. Now - much like the Selection Menu for components - the instruments are divided into several scroll views, and further divided into categories within those. Its much easier to find the kind of sound youre looking for now. Instrument Ranges Previously the Piano menu for selecting the note of a Singer was static, ranging from C2 to C6. Now, the piano menu will dynamically resize to reflect the range of the selected instrument. The range of a violin is higher than the range of a cello, for instance. 3D Sound Previously, a Singer would sing to you equally wherever you are in the world. Now they have proper 3D sound: as you get farther away, they get quieter, and they play more in the left or right speaker depending on where they are relative to you. Singer sound is significantly less 3D than other sounds in the game, though, so you can still build large, spread-out music contraptions that sound good. --------------------------------------------- If youd like to receive an email each time we post one of these blogs, you can sign up for our newsletter. Be sure also to join the official Discord and follow @LogicWorldGame on twitter. See you next Wednesday! View this post on logicworld.net. Read previous Logic World Wednesdays https://store.steampowered.com/app/1054340/Logic_World/ |
Welcome to another Logic World Wednesday! This week, logicworld.net passed 10,000 unique page views. Woohoo!!! |
|
Label UI - Jimmy |
|
Website Update - Felipe |
Color Picker v2 - Jimmy
Profile Pages - Felipe Ive done quite a bit of work this week on the logicworld.net user profile pages, which were quite lackluster before. The first thing I did was to add a badge system, which are shown in the bottom part of the sidebar in your profile page. Right now the only earnable badge is the Verified email one, which you can of course earn by verifying your email address (if you signed up using a Google account you wont need to), so go ahead and try it! In the future we will be adding more badges that youll be able to earn by for example purchasing the game in stores, winning contests or participating in events. I have also added a customizable bio to your profile, which is a short paragraph of text in which you can talk a little about yourself or link to your social media (remember, Markdown is supported!) Heres a picture showing these two features: You may also have noticed that theres a number indicating the total amount of likes your posts have gotten. In the future you'll be able to like comments as well, and those likes will contribute to your total. In the right side of the page youll now also see a feed of the users activity, i.e. posts and comments, which you can filter and sort! Configurable Menus - Jimmy Ive been working on a system that lets you adjust menus to your liking. https://www.youtube.com/watch?v=m2T1fEJ_8aM All Configurable Menus allow you to adjust their size, shape, and position on the screen. In the future, some menus will have additional control panel options that are specific to them. I want Logic Worlds interface to be as customizable as possible, so everyone can have the menus set up how they want or need. --------------------------------------------- If youd like to receive an email each time we post one of these blogs, you can sign up for our newsletter. Be sure also to join the official Discord and follow @LogicWorldGame on twitter. See you next Wednesday! View this post on logicworld.net. https://store.steampowered.com/app/1054340/Logic_World/ |
Welcome back to another Logic World Wednesday! Before we begin, wed like to share that this week Logic World surpassed 2,000 wishlists on Steam. Thanks everybody!
It was a lot of work to move everything over to the new system, but Im glad I did it. Ambient Lighting Ive added omnipresent soft lighting to the world, so you can see what youre doing even in shadow. In the future, the amount of ambient lighting will most likely be configurable. New Outline Tech In Logic World we use outlines to highlight objects in 3D. This is most often used to show which object youre looking at or which object you have selected. Our old outline system doesnt work with LWRP, so I took this opportunity to upgrade it. Not only do the new outlines look better, but they can also be any color now. The previous system was limited to only three colors. Now that that restriction has been lifted, we have much more freedom, and can communicate the meaning of an outline with more flexibility. Video Ive made a short video that shows off our new rendering setup and what each layer of the rendering stack adds. https://www.youtube.com/watch?v=Z2qQ596gM7s Web notifications - Felipe Now theres a bell in the top right side of the navbar in logicworld.net. It will light up whenever you get a notification! Youll also be able to see the details of each notification if you click on it! This bell will only be visible when youre logged in. Currently you only get notifications when someone replies to your post or comment, but in the future youll get a notification when someone you in a comment or post, and youll be able to subscribe to a thread and get a notification when a new comment is posted! Better notification settings - Felipe Previously, youd get an email whenever someone replied to your post or comment. This is great except for the fact that you cant choose whether or not to receive them, thats why now theres another column in the Account Settings page that allows you to enable and disable web and email notifications for each type of notification (currently only replies). Big Component Rotation - Jimmy Ive made rotating big components more fluid and intuitive. Previously they would always be rotated around their corners, but now they are rotated around whichever point youre looking at. This is kind of hard to describe with words, so heres a video: https://www.youtube.com/watch?v=D1MocWQzV4s Friends List- Felipe Ive finally added a friends list to the game, which will show you the name of every one of your friends, as well as their profile picture and their current status! Heres what it looks like currently: Keep in mind this is really WIP as of now (as can be seen by the white profile picture). This menu will be used for various things related to multiplayer games, like inviting people to your singleplayer game and playing challenge packs with friends. --------------------------------------------- If youd like to receive an email each time we post one of these blogs, you can sign up for our newsletter. Be sure also to join the official Discord and follow @LogicWorldGame on twitter. See you next Wednesday! View this post on logicworld.net. https://store.steampowered.com/app/1054340/Logic_World/ |
Friends/RPC system - Felipe
Image Embeds - Felipe Currently, if you want to upload an image to a post on the forum youd have to previously upload it to an image uploading site (we were using Imgur), and then insert the image using Markdown notation. However, now you can directly upload images to logicworld.net and insert them into your post by writing {{!N}}, where N is the index of the image youre referencing. Heres how the UI looks like at the moment: I do want to make it prettier but this works for now, even if its not the best UI. Search Shortcuts - Jimmy Last week left a comment suggesting a keyboard shortcut for the search function in the selection menu, and this week Ive added it. When you run a search, you can now press enter to add the first search result to the end of your hotbar. It also selects the entire search box so you can immediately begin searching for another item without having to use backspace. There are a few more advanced shortcuts as well:
Ive found that these become muscle memory quite quickly, and they allow experienced players to edit their hotbar without ever using the mouse. --------------------------------------------- If youd like to receive an email each time we post one of these blogs, you can sign up for our newsletter. Be sure also to join the official Discord and follow @LogicWorldGame on twitter. See you next Wednesday! View this post on logicworld.net. https://store.steampowered.com/app/1054340/Logic_World/ |
If youd like to receive an email each time we post one of these blogs, you can sign up for our newsletter. Be sure also to join the official Discord and follow @LogicWorldGame on twitter. See you next Wednesday! View this post on logicworld.net. https://store.steampowered.com/app/1054340/Logic_World/ |
Jimmy |
Welcome back to Logic World Wednesdays! Before we begin, wed like to share an exciting milestone with you: a few days ago, Logic World passed 1,000 wishlists on Steam. Thank you - all 1,000+ of you - so much for your support!
And heres a video showcasing those improvements: https://www.youtube.com/watch?v=Iq5nftvaYTM Next, Ive started work on a set of advanced text rendering assets for the game. If youre not a native English speaker, youve probably at some point typed a character from your language into a game and seen it replaced by a square because the game doesnt know what that character looks like. I want that to never happen with Logic World, so Ive started a project called EveryGlyph which aims to render, well, every glyph. EveryGlyph uses Google's Noto project for glyph geometry. Noto is a set of fonts for every language that are all consistently styled with each other. Its a really cool project and Im quite grateful that Google lets everyone use it for free. To actually render those fonts, EG uses Signed Distance Field - or SDF - Text Rendering. This is a technique developed at Valve for Team Fortress 2. SDF makes the glyphs look smooth no matter what size they are. EveryGlyph will be used in Logic World to render text on labels, in the games menus, and in the game chat, which will let you send messages to other players on the same server. No matter what language you speak - or what unconventional emoticons you like to use - all your characters will display properly. Next week Im going to add emoji support to EveryGlyph. An inside source told me that kids these days like emojis, and this is my plan to make Logic World appealing to them. Felipe (aka pipe01) As you may remember from the first LWW, mods are divided in client and server side parts. This means that some code is running on the server while some other code runs on the client. RPC (Remote Procedure Call) is a form of Inter-Process Communication that allows the server to call a method on the client, and vice versa. This is accomplished in LW by using my ClassImpl library, allowing the component on the client to not even know what RPC is and still be able to communicate with the component on the server. This week Ive been working on greatly optimising the performance of the creating of RPC client/server instances. Ive managed to improve times by a factor of 10! This is really important because every component which contains custom data uses an RPC instance. By drastically improving the performance of creating those instances, I've also drastically improved the loading times for large worlds. -------- If youd like to receive an email each time we post one of these blogs, you can sign up for our newsletter. Be sure also to join the official Discord and follow @LogicWorldGame on twitter. See you next Wednesday! View this post on logicworld.net. |
|
Welcome to the very first Logic World Wednesday! Each week, we will be sharing our progress on Logic World. This blog is going to be a mix of technical and non-technical discussion. |