State of the Logic World: December 2023

by @JimmyDeveloper2 months ago (edited2 months ago)

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.

Beginning in January, a number of things began falling apart in my life. Throughout this year I’ve suffered a host of physical health problems, mental health problems, and other personal issues. I wanted desperately to be working on this game that means so much to me, but I just wasn’t capable of it. I felt embarrassed and ashamed of that, so I just disappeared from our community. (One of many things I’ve learned about myself this year is that I have avoidant tendencies. I’m working on it.)

The good news is that, since June, I have been laser-focused on fixing my life, and I’ve been extremely successful. May 2023 was perhaps the worst month of my life. November 2023 was the best so far.

I’m able to work again, and to love working, so I’ve been working a lot. Much has been happening recently and the future of Logic World has never looked so bright.

It’s good to be back. Let me tell you a bit about what’s been happening, and what’s next.

A New Team

For the first year of this project’s history, I was the only programmer working on Logic World. Felipe, an exemplary modder of the early prototypes I had released, joined the team in 2018. For the following years up through the Early Access launch of Logic World in 2021, Felipe and I developed the game together as a tight two-person team.

I’m pleased to announce that, for the first time in five years, we’ve gained another programmer. And another. And another. The core Logic World development team is now five coders strong: joining myself and Felipe are Zoey, Ecconia, and GHXX.

I LOVE working in this new expanded team. Everyone is so passionate and so capable. The skillsets and perspectives that each team member brings are diverse and complementary; we bring out strengths in each other, and truly I believe we are greater than the sum of our parts. The development velocity is amazing – stuff gets done way faster than it ever did when we were less than half this size.

It has been an intimidating challenge to step into my new leadership role, overseeing so many people and moving parts, but I’m learning fast and I think I’m really growing into it. Managing people is hard, much harder than I thought it would be, but it’s also profoundly rewarding. I’m thrilled and honored to be at the helm of this metaphorical ship.

You’ll see the new developers around in devblogs, youtube videos, and hanging around in community spaces like our discord. I’ll take a moment now to introduce our three new team members, and give them each a space to say hello in their own words.

Please give a warm welcome to:

Zoey

Zoey is maybe the smartest person I’ve ever met. It’s quite a common occurrence that we’ll be discussing architecture & design for some incredibly complex system, and with a sinking feeling of dread, I’ll realize that there’s a terribly hard problem with it, the kind of problem that takes me days of thinking and researching before I start to feel like I might be approaching a good solution. I’ll vocalize this problem to Zoey and ask her thoughts on it. “Oh, that’s easy. We don’t need to worry about that,” she’ll say, and then she’ll describe a brilliant, perfect, ingenious solution that not only solves the problem I brought up but also five others I hadn’t yet realized were there.

Zoey sees computers and code with a clarity of thought I’ve never encountered before. The experience and expertise she brings to the team is invaluable.

Hello! I’m Zoey, a self taught software engineer from England.

So what’s my story? Well, let’s start at the beginning.

13.8 billion years ago there was nothing, and then, there wasn’t. A short while later, I was born. Ever since then I’ve had a fascination for technology, an unquenchable thirst for knowledge, and a passion to create. As a result, I have worked on hundreds of random personal projects over the years, from terrain generators and physics engines to robots and computer vision.

The full list of projects would be too much to put here, and frankly, I doubt I could remember them all, but here are a couple of my favourites:

Sparse Voxel Octree Ray Tracer (SVORT).
Voxels are fun, and ray tracing is fun, so why not combine the two? Standard voxels use too much ram, and are slow to traverse, so let’s use a Sparse Voxel Octree, and write it all in CUDA! To create my SVORT I began by designing a custom SVO data format, allowing for a compact data representation and efficient traversal. After that, I needed something to actually render, so I wrote a 3D model to SVO converter, allowing me to convert textured 3D models to my custom SVO format. Once all of that was done, it was time for the ray tracer itself. The most complex part of the ray tracer was figuring out a way to efficiently traverse the SVO on a GPU, but in the end I got everything working smoothly, and was able to render scenes at a scale of 4096^3 voxels with 24 bit colour (192GB without compression) in real time on a card with 8GB of VRAM.

Custom CPU Design.
Another subject that I enjoy is custom CPU design. Whether it is in Minecraft or a logic simulator, I have always found this area fascinating. The project I took the furthest started with designing my own Instruction Set Architecture. Though next, rather than stepping into a logic simulator, this time I wrote an emulator with an output terminal, along with some initial bytecode for testing. Once I had verified that it was working, I proceeded to write an assembler to ease the process of writing code for the CPU. That was all well and good, but for this one I decided to take it one step further. Buying a cheap FPGA development kit, I decided to bring my CPU into the real world. Writing the implementation for the CPU out in Verilog, along with an interface for the UART transceiver, I managed to get my custom CPU running and communicating with a terminal on my computer, bringing the project to a satisfying conclusion.

Throughout all that I’ve worked on, computer science has always held a special place in my heart, and when I came across Logic World, I knew I had found something I just had to be a part of.

As part of the Logic World team, my primary contributions will be improving performance and efficiency, and the occasional fancy algorithm to add a new feature.

Ecconia

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.

I live in Germany, studying Computer Science. My primary hobby is ice skating. I like to write big messages.

I started doing boolean logic circuits as a young boy on the playground, drawing a Full Adder circuit into the sand. Eventually that led me to Redstone, but I never felt happy there. There were many inconsistencies and weird unintentional behaviors.

But being active in such a community brought my attention to Logic World: a boolean logic simulator, which did not give me nightmares. Being fascinated with the game and waiting for the Early Access release, I consumed all information about the game there is – reading all LWW posts, watching all related videos – which gave me a lot of insight.

During the long time of waiting, I started the OpenTUNG project, which basically is a rewrite of LW’s alpha version without the bugs. But now that LW is released, we’re all using LW, so I’m no longer working on OpenTUNG.

Being a programmer and gamer/modder, after some time I got annoyed by a certain bug in Logic World: it was not possible to automatically noclip when flying without freezing the game. I wrote a mod which fixed this bug, making it possible for me to enjoy LW more. If you’ve ever done game modding, you know it’s a dangerous rabbithole. Once you start … there is no going back.

At first I made simple mods like DisableCollision, but I soon moved onto really ambitious mods like CustomWirePlacer – a mod that fully replaces the vanilla wire drawing to add 2D wire placement support and much more. In my eagerness to explore all the possibilities and features of modding I got to know all core code of the game.

Btw, my ultimate goal in LW is to build a computer which I can write programs for from inside the game. Starting with a capable typewriter to input assembly code…

As part of the Logic World developer team I am going to squish bugs and enhance the moddability of the game. I am excited to be part of the team and to discuss and develop things together, to make solutions even better. Let me be a gateway for modders to suggest API features. Happy :)

GHXX

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.

Over the course of this timespan I have written many mods/tools for several games (Rimworld, KTaNE, Cookie Clicker, Garrys Mod, Factorio, Logic World and others), and even some modloaders/tools that make modding a whole lot easier for some games.

My most intensive reverse-engineering project to date is my modding interface for a very nice chess-spinoff game called 5D Chess With Multiverse Time Travel. My interface adds a bunch of features to that game and enables easy modding of it, with zero modifications to game files, by patching the code at runtime – and it’s even quite stable. I’m proud of this project but it came at the cost of spending well over one hundred hours digging through compiled C++ code.

I have also created a few Logic World mods and personal dll patches back in the day for 0.90.3 which addressed a few problems when playing on pretty large worlds. In fact, all of those mods/patches, with the exception of my TCP Bridge mod (which I should probably update at some point as it is currently sitting on 0.90.3, despite likely working for 0.91.1 anyway), were actually just created so that a dear friend of mine, known as 00asdf, and I could continue extending our gigantic world, containing just under 2 million components, which we have been building ever since we purchased Logic World on Steam.

Generally, what would happen is that we would play, then face some kind of performance roadblock, at which point I would leave the server and investigate and mod around the issue, so that we could continue expanding. The ability to add fixes directly to the game, rather than having to cook up a modified dll or a harmony mod is the main thing that got me interested in helping out with Logic World.

I am very grateful to be part of the dev team, as the collaboration between all of us will hopefully lead to a much much more performant version which enables everyone, including myself, to create ever bigger and more ambitious builds.

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:

  • fun to work with,
  • NOT UNITY, and
  • free and open source software, so once we’ve moved our game to Godot we will truly own it and have control over it.

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


RSS icon
0 comments