Logic World Wednesdays: The Shiny Edition

by @MouseHatGames 2020-01-30

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!

Soundtrack - Markku

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

Completed Integrated Server - Felipe

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.

SHINY BOBBY - Jimmy

SHINY BOBBY SHINY BOBBY SHINY BOBBY SHINY BOBBY

SHINY BOBBY.jpg

SHINY BOBBY SHINY BOBBY SHINY BOBBY

Character Customization - Jimmy

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.

custom bobbies.jpg

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.

Settings Menu - Jimmy

I’ve made a ton of progress on the settings menu this week!

settings.jpg

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.

Lighting & Graphics - Jimmy

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:

before.jpg

After:

after.jpg

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, join the official Discord, and follow or wishlist Logic World on Steam.

See you next Wednesday!

More Logic World Wednesdays


13 comments
@Nerd 2020-01-30

How about adding the ability to change Bobby’s face?

@woox2k 2020-01-31

Just allowing us to draw the texture on BLANK BOBBY™ would be awesome. It would take the character customization to whole another level without making things too complex or take us too far from the intended 1.0 simplicity.

@Frain_Breeze 2020-01-30

It’s amazing to hear just how much feelings can be conveyed with music. I really get the feeling of wanting to slap inverters together to create intricate and overengineered systems. It matches the game just as well as I’d hoped. but, of course, not everything can be conveyed just by sound. that’s why Jimmy’s new “see before you change” in the settings is super welcome! A feature I’d wish every game had. Then at last (but not least) we have things that can be conveyed with neither sound nor visuals. Server performance! Though it might not sound all that important, I definetely think this will be a great boost in performance, especially for lower-end systems. Oh boy, I haven’t been so hyped for a game in ages.

@Jimmy 2020-01-30

I’m so happy you enjoyed this Wednesday!

Oh boy, I haven’t been so hyped for a game in ages.

What an unbelievably gratifying comment to receive. Thank you ❤

@Stenodyon 2020-01-30

The music is absolutely incredible!!

@Nik 2020-01-30

I have lots of little things to comment on, from things mentioned in the settings section:

  • setting preview/explanation is SO APPRECIATED. You have no idea. It is amazing.
  • the example shown in the screenshot in particular reminded me of a setting some games have: internal down-scaling. It’d be cool to have in LW! This way you can always have the size of the game window be your native monitor resolution, but the game can render at a lower resolution without making the menus look blurry and shitty.
  • Graphics settings profiles are an awesome addition for a game like this. You can prototype stuff on profile 1, build huge laggy contraptions with profile 2, record videos with profile 3, etc!
  • I freaked out when I read I programmed my own drop-downs and toggles because this usually causes issues. Mobile app developers will often do this, for example with zoom in / zoom out. And they don’t implement some of the features that the default system has always had, like double-tap-and-hold, then drag up and down, to zoom in and out (try it, it works in google’s apps but it doesn’t always work elsewhere). Or something is programmed slightly differently, and it feels weird/different. Or key combinations that normally work will break for JUST THIS ONE APP and it can be very frustrating when devs do this for seemingly no reason. So I really hope that Unity’s dropdowns and toggles really were just that bad, and yours are better. Because custom code isn’t necessarily good, deviating from standards can be a jarring change for some players.
  • I noticed the toggles have a little black outline, but the sliders do not have a black outline. pls fix 😛
  • good lord that’s a lot of settings for reflections 😍😍 idk if most people will know what they’re looking at though lol. Like I don’t even know what time splicing is, in this context. Is it like interpolation of some kind?
  • those shadows look very nicely normalized. I like it! I feel like this is what the outdoor brightness levels look like to most people who don’t have sensitive eyes like I do.
  • can you change the angle of the sun? I’d love this ability.
@Jimmy 2020-01-30

setting preview/explanation is SO APPRECIATED. You have no idea. It is amazing.

Cheers! I always appreciate it when a game has this, so I wanted to make sure we do.

the example shown in the screenshot in particular reminded me of a setting some games have: internal down-scaling. It’d be cool to have in LW! This way you can always have the size of the game window be your native monitor resolution, but the game can render at a lower resolution without making the menus look blurry and shitty.

What you’re describing sounds like up-scaling; down-scaling (aka downsampling) is when you render the game at a higher resolution that it’s displayed at, for higher quality anti-aliasing. I plan to add downsampling to Logic World, but my understanding is that upscaling is something that has to be done through your GPU driver.

It’s possible I’m misinformed, if you have a link where I can read more (or examples of games that do this) it would be much appreciated :)

Graphics settings profiles are an awesome addition for a game like this.

Glad you like them!

I freaked out when I read I programmed my own drop-downs and toggles because this usually causes issues. […] I really hope that Unity’s dropdowns and toggles really were just that bad, and yours are better. Because custom code isn’t necessarily good, deviating from standards can be a jarring change for some players.

Rest assured that I’ve taken great care with both the dropdowns and the toggles to make sure that they are a pleasure to use. There are literally over a hundred commits that are just me tweaking their behavior. I have pretty high standards for UI usability, and both new components meet them now.

I noticed the toggles have a little black outline, but the sliders do not have a black outline. pls fix 😛

Good eye, thanks for catching this! Will do.

good lord that’s a lot of settings for reflections 😍😍 idk if most people will know what they’re looking at though lol.

That’s why we have the sidebar with the written description and example pictures :)

Like I don’t even know what time splicing is, in this context. Is it like interpolation of some kind?

Time splicing is a way of splitting reflection cubemap updates over multiple frames, improving performance. The options are:

  • no time splicing - do a full cubemap update all within one frame
  • all faces at once - split the cubemap update operation into nine frames
  • individual faces - split the cubemap update operation into fourteen frames

If you’re curious, you can read more about it in the Unity manual.

those shadows look very nicely normalized. I like it!

Thank you!

I feel like this is what the outdoor brightness levels look like to most people who don’t have sensitive eyes like I do.

Good thing you won’t ever be going outside again once Logic World comes out :)

can you change the angle of the sun? I’d love this ability.

I’m hoping to get to something like this for next week. Stay tuned!


As usual, thanks for all the great feedback :)

@Nik 2020-01-30

It’s possible I’m misinformed, if you have a link where I can read more (or examples of games that do this) it would be much appreciated :)

Doom 2016 (aka Doom 4, also aka just DOOM) has a resolution scale setting, which has what I’m describing!

I have pretty high standards for UI usability

amazing improvement from like 2 years ago, lol

Good thing you won’t ever be going outside again once Logic World comes out :)

True that.

Stay tuned!

Always <3

EDIT: Here’s a good video showing non-adjustable dynamic resolution in a console game. This technique is pretty common for console games for some reason, and not so often for PC https://www.youtube.com/watch?v=0cukClU246w

@Jimmy 2020-01-30

Doom 2016 (aka Doom 4, also aka just DOOM) has a resolution scale setting, which has what I’m describing!

Aha, an excuse to not work for an hour and play DOOM! Thanks, I’ll check it out :)

amazing improvement from like 2 years ago, lol

If you’re referring to TUNG… I hated those menus when I made them just as much as I hate them today. The difference is that back then, I barely knew how to program; just getting any menu at all to work was a major accomplishment. Not to be modest or anything, but today I’m quite a skilled programmer, and when I don’t like something I always know how to fix it.

@Nik 2020-01-30

Hey @jimmy how involved was the process for adding the shiny bobby? are the reflections from constantly updated cubemaps or something? Was this built into unity? :o

I wanted to ask here on the forums first, because I wanted your answer to be archived alongside the post itself. I definitely didn’t have another person recommend I post here. And that person definitely wasn’t jimmy.

@Jimmy 2020-01-30

Adding SHINY BOBBY (please do try to spell it correctly) was pretty difficult, it took maybe 4 or 5 hours in total. They are indeed real-time updated cubemaps. The hard part of this is built into Unity, but I made a few extensions to it to suit my specific purposes.

Realtime reflections are by far the most graphically performance-intensive feature in the game (they’re off by default), so there are a number of settings you can use to tweak their quality and update frequency. You can see these in the screenshot of the settings menu a little later in the post.

@Batman 2020-01-30

the music is perfect

@Jimmy 2020-01-30

I’m not gonna lie, adding SHINY BOBBY is the most fun I’ve ever had working on this game