1. Logic World
  2. News

Logic World News

Logic World Wednesdays: The Cloudy Edition

Hello and welcome back to Logic World Wednesdays! In case you missed it, this week we announced Logic World’s release date: March 13, 2020.



We’ve got a big Wednesday for you today, so let’s get started!

[h2]As We Change - Markku[/h2]
Hello again, everyone! Thank you for your comments on my piece Endless Curiosity. I really appreciate the feedback. Today I'm happy to share another sample from the soundtrack. This one is from As We Change, a piece about the ebb and flow of learning new things. I look forward to sharing more of the soundtrack in future Wednesdays, and I look forward to chatting with you on Discord!

[previewyoutube][/previewyoutube]

[h2]Actual Clouds - Jimmy[/h2]
This week I have been giving some love to the skies of Logic World.



This is still very much a work in progress. You’ll be seeing more gorgeous skies in future Wednesdays :)

[h2]Fake Internet Clouds - Felipe[/h2]
This week I’ve been working on setting up an automated CI service. This service will automatically build (and optionally publish) the game in the cloud, which is super easy and convenient for us.

This is a picture of a successful build:



We are using SemaphoreCI as our CI provider. As you can see, we are currently building for Linux and Windows, with MacOS coming soon.

This is an overview of the stuff that happens during a build for a single platform:
  1. Dependencies are built (LogicAPI projects, as well as Lidgren, our networking library).
  2. The Linux version of Unity is installed, as well as the Windows playback engine
  3. Unity is launched, which runs the build itself for the corresponding platform.
  4. The GameData folder -- which contains the base game data like components, languages, etc -- is copied over to the build result.
  5. The integrated server is also built and copied to be bundled with the game.
  6. The resulting build is compressed and optionally uploaded.

(Note: steps 4 and 5 are not yet implemented)

We’re going to start beta testing very very soon, and during beta testing we’ll be building and deploying the game several times per day. So it’s 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 Felipe’s excellent work on the integrated server (you can read more here), this week I’ve 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, I’ve added loading screens and an error screen -- though neither is particularly pretty right now, so I’ll show those off when they are :)

I’ve also added the ability for you to run commands on an integrated server. Everything is now seamless; we’ve 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][/previewyoutube]

With these hotkeys, I’m opening the selection menu less than half as much as I used to when I play the game. Once you get used to them, they’re 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/

Logic World release date announced: March 13, 2020

We have a release date! Logic World will be in your hands on Friday, March 13, 2020.

It's been an incredible journey to get to this point, and we are absolutely pumped to polish off this game and get it into your hands. Thank you, so much, for following and supporting us along the way.



For more details, and for information on pricing, see our blog post here: https://logicworld.net/Post/113

https://store.steampowered.com/app/1054340/Logic_World/

Logic World Wednesdays: The ‘We Will Announce The Release Date Tomorrow’ Edition

[h2]Relays - Jimmy[/h2]
This week I’ve added a very cool new component, called the Relay!
[previewyoutube][/previewyoutube]
Huge thanks to @TheWildJarvi for suggesting Relays. I can’t wait to see the builds they are used for.

[h2]Store Pages - Felipe[/h2]
As you may know, we’re going to sell Logic World directly from our website in addition to our third party stores like Steam. This week I’ve been working on the store page design.



[h2]Settings Menu Generation - Jimmy[/h2]
Last week and The week before, I was working on the design part of the settings menu. This week, I’ve given the menu functionality; the settings you tweak will now affect things in the game, and their values will be saved between sessions. Additionally, the settings menu now dynamically generates from values you set in the code.
[previewyoutube][/previewyoutube]
Getting the menu to dynamically generate, with all the different kinds of settings there are and all the different properties a setting type can have, was extraordinarily difficult. But the system works beautifully, and I am very proud of it.

I plan to open source this library - LogicSettings - sometime after Logic World launches.

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

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/

Logic World Wednesdays: The Shiny Edition

Welcome back to another Logic World Wednesday! This week, in The Shiny Edition, we’re polishing up the game and getting it prepared for release.

Before we begin, we have a very special announcement. Logic World is going to have a full original soundtrack, and we’ve found the perfect person to write it. It is our pleasure to introduce Markku Wainman, composer for Logic World!

[h2]Soundtrack - Markku[/h2]
Hello, everyone! I am happy to have a chance to talk about the music I am writing and producing for Logic World with you today. Myself and the creators wanted the music to compliment the beauty of circuits doing math while helping the player to focus on and engage in the gameplay. We also concluded that the addition of live musical sources would breathe life into the synthesized instruments that are sonically emblematic of computers. I want these carefully selected instruments to help the melodies and musical textures stick with you after playing the game to remind you of Logic World and the beauty that is created in a computer. Working on creating an effective score has been a challenging and rewarding process that I feel very lucky to be a part of. I hope you enjoy my music!

Markku

[previewyoutube][/previewyoutube]

[h2]Completed Integrated Server - Felipe[/h2]
This week I’ve been working on reimplementing the integrated server. Previously the server was being compiled targeting .NET 4.6 in order to be loaded by the Mono runtime Unity uses. However, this was less than ideal, because the server couldn’t benefit from the performance upgrades .NET Core 3 brings.

The server is now launched as a separate process from the game, allowing us to use the .NET Core 3.1 build. In order to communicate between the game and the server instance we redirect the stdin and stdout streams, allowing the user to send commands to the server and read its output as if it were a regular server.

Doing things this way is more complicated and difficult, but this upgrade ensures that you’ll always have the best possible performance while playing Logic World.

[h2]SHINY BOBBY - Jimmy[/h2]
SHINY BOBBY SHINY BOBBY SHINY BOBBY SHINY BOBBY



SHINY BOBBY SHINY BOBBY SHINY BOBBY

[h2]Character Customization - Jimmy[/h2]
In all seriousness, this week I’ve added some options for customizing your Bobby. You can now choose bobby’s colors, and if you so desire, you can enable SHINY BOBBY.



We’ve previously talked about including full custom multiplayer avatars. Unfortunately, there isn’t time to include this for 1.0. That feature will be coming in 1.1. Until then, everybody is Bobby.

[h2]Settings Menu - Jimmy[/h2]
I’ve made a ton of progress on the settings menu this week!



Let’s take a look at all the new things:
  • When you mouse over a setting, you can see a written description of what the setting does, a visual preview of it, and how performance-intensive the setting is.
  • There are now multiple profiles for settings (bottom right). When you edit the settings on one profile, all the other profiles are unaffected.
  • I ran into several issues using the built-in Unity dropdowns and toggles, so I programmed my own. Every single thing you see in that screenshot is now running custom code.
  • Many parts of the visual design have been tweaked and polished since last week

The menu isn’t quite done yet - I’m still working on getting it to generate from code - but I’m extremely happy with how it’s coming along.

[h2]Lighting & Graphics - Jimmy[/h2]
This week I’ve been polishing the lighting setup for the game. In particular, I’ve done my best to normalize the difference between light and dark; I don’t want fully lit objects to be overwhelmingly bright, and I don’t want objects in shadow to be so dark it’s 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/

Logic World Wednesdays: The Rise of Bobbybot

[h2]Pick Up Component - Jimmy[/h2]
Pick Up Component is a new building mechanic I’ve added to Logic World this week. It lets you pick up a full component, including any data you’ve edited on it.

[previewyoutube][/previewyoutube]

Pick Up Component is the second last building mechanic planned for Logic World 1.0. Just one more to program, and then the building is done!

[h2]Settings Menu - Jimmy[/h2]
I’ve been working on Logic World’s settings menu. I think I’ve got a pretty good design for it.



Let us know in the comments what settings *you’d* like to see in Logic World.

[h2]Sexy Notifications - Felipe[/h2]
The notifications system on logicworld.net has been very unstable since I put it together, as I didn’t put much thought into it. This has now changed. I’ve rebuilt the system altogether and now it’s much more robust and pretty.



If you’re logged in, you can check out the new notifications page at https://logicworld.net/Notifications. Make sure to leave lots of replies to each other today so you can properly experience it ;)

[h2]Open Source Shenanigans - Jimmy[/h2]

This week I’ve been working on a few of the open source libraries we’re developing for Logic World. These are chunks of code that we’re releasing for free, for anybody to study or use or even contribute to.

Firstly, I've made a number of improvements to SUCC, the tool Logic World uses to save and load data in configuration files. SUCC can now save and load null - that is, no object - and it’s better at figuring out what value to load if it doesn’t find that data in a file.[/size]

Next, I developed an extension for SUCC called InterSUCC. InterSUCC allows you to treat SUCC data files as objects with properties, rather than requiring you to input text to use as data keys. InterSUCC also contains a nifty feature called ConfigWithOverride. ConfigWithOverride allows you to have a master config file, but have some parts of that file overridden by a particular additional file. In Logic World, we use this to give you per-world settings. For instance, the game has a global setting for simulation speed, but you can change the speed for just one world by editing that world’s config_override.succ.[/size]

Finally, I updated Jimmy’s Unity Utilities with all the goodies we’ve added to it in Logic World’s JUU copy. It now has extended support for color names (used in Logic World’s color picker), tools for saving and loading images to disk (used for saved board thumbnails and for the flags in LW’s languages menu), a precise timing class (used to animate Logic World’s intro), a utility for setting the contents of the system clipboard (used in Logic World to copy console messages), and more.[/size]

While I was at it, I also made a small library called PersistentData. PersistentData isn’t something that will be used in LW, but I’ve been meaning to make it for a while and I’ll definitely be using it in other future projects.[/size]

[h2]BobbyBot - Felipe[/h2]
This week I’ve written a bot for the Logic World Discord Server. His name is Bobby Bot, and he posts updates from logicworld.net to the discord. Right now, he sends a message for each new post in the forum. When Logic World releases, Bobby will send a message for each new WorkItem you upload to logicworld.net: boards, worlds, mods, ect.



Bobby will also help us out by posting our biweekly discussion topics: Philosophy Phridays and Miscellaneous Mondays. Never again will these be late! Look out for our first Bobby-posted topic this Phriday at 18:00 UTC.

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

If you’d 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/