I haven’t heard from Felipe all day, so it’s just me this LWW. Assuming he’s not dead, you will hear about what Felipe worked on this week in next week’s LWW.
I’ve added the ability to zoom in your view by holding down a key.
As a compliment to Panel Displays, I’ve added Standing Displays with 2, 3, and 4 input pegs.
Panel Displays are meant for being formal outputs for your circuits; screens, control panels and the like. On the other hand, Standing Displays are meant to be used in the circuits themselves, as status indicators and debug utilities.
When you write code, you write it as human-readable text, and then the computer turns that into machine-readable ones and zeroes. This process is known as compiling. After writing some code, you have to wait for it to compile before you can test it.
Logic World’s compile time has been steadily growing as the project has gotten more complex, and this week I’ve buckled down to improve it. Often when you’re testing complex functions, you’ll need to compile 40-50 times before you get it right. By speeding up the compiling process, we not only save time, we make development much more pleasant.
The main way in which I’ve been reducing compile times is splitting up the massive codebase into many smaller assemblies. An assembly is essentially a collection of code which is contained within the larger codebase. An assembly’s code can be used by code in other assemblies. But the most important thing: when code inside an assembly changes, we only need to recompile that assembly and any assemblies which use its code. Other assemblies can use the binary from the last time they were compiled.
The Logic World client is now split up into 33 separate assemblies. In addition to speeding up compile time, this has forced me to restructure the project into many decoupled sections with clear dependencies, which makes for neater code overall. The process of organizing this was much more difficult and time-consuming that I expected it to be. But I’m really glad I did it, as all work on Logic World will be much smoother going forwards.
On my machine, compile time has dropped from 12 seconds to 4 seconds. I’m quite pleased with this; working on the game is so much faster now. I think I might be able to shave off another second or two with better organization of assemblies.
Logic World has attracted a community full of intelligent and interesting people, most of it over on our Discord, which has over 200 members now. We think it would be fun to leverage this awesome community for group discussions. Starting this week, Philosophy Phridays and Miscellaneous Mondays will be joining Logic World Wednesdays in our weekly lineup. These will be scheduled discussions of fun topics like consciousness, existentialism, aliens and superpowers.
See you next Wednesday!