1. Logic World
  2. News

Logic World News

Logic World Wednesdays: The Thursday Edition II


Sorry for the late post. Programming is hard!

D-Latches - Jimmy


By popular and passionate request, I’ve added D-Latches to the game!

https://www.youtube.com/watch?v=3yc_-BV-tc0

The D-Latch is the first of many new logic components we will be adding to Logic World. Stay tuned :)

Board Saving Menu - Jimmy


Last week I showed off Board Saving, but it didn’t have a menu yet. I’ve been working on the user interface for that feature.

https://www.youtube.com/watch?v=_1xZnSnmKTo

This is the most complicated user interface I’ve ever programmed. It was definitely worth my effort, though: I expect many people will have hundreds of saved boards, and they need to have a good way of organizing them.

Form validation - Felipe


If there’s something that’s annoying to both users and web developers, it’s form validation. Most if not all user input needs to be checked, for example to make sure a user’s email is a valid email address.

Every form in our website corresponds to a class in the server, for example the login page gets transformed into an object with two fields: string Username and string Password (this will be relevant later). In this case there’s not much to verify, other than that neither fields are empty, but in more complex forms like the register form you may have to verify the email format, the username length, the password complexity, etc. These requirements have to be verified with the same criteria on the front end (for a smooth and instant response), and on the back end (in case the client fails to verify the data).

As you may or may not already know, the website is made of different technologies for the front and back side, each with their respective languages (C# and Typescript in this case). This means that validation criteria have to be defined on both the back and the front end and in ways appropriate to each language.

ASP.NET Core (the technology used in the back-end) has support for decorating the members of the aforementioned data class with attributes, which makes for a smooth and clear indication of the requirements of the form’s inputs. For example, this is how a register form could look like:



The problem is that in order to enforce these same rules on the client, you’d have to manually check the username’s length, use a regex for the email, etc. Ideally these same rules would be transferred to the client and automatically applied, so that you’d only have to specify the requirements once. This is exactly what my new library vue-aspvalidate does! It allows you to validate inputs on the client and the server while only writing the requirements a single time on the server class.

This will save you a lot of time since you won’t be writing duplicate code, while also making it less buggy and, perhaps most importantly, making sure that the server and client agree on their requirements. It’s also very extensible, letting you define your own rules with client and server logic.

Board Save Format - Jimmy


Last week when I showed off Board Saving, saved boards and saved worlds used a different file format. This week I’ve unified the systems so that boards and worlds are saved with the same logic. This means less code, which is always a good thing!

There is also now a debug option to save boards as text data instead of binary data, in case you need to edit the files manually.

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

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.

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

Logic World Wednesdays: The logicworld.net Store

The logicworld.net Store - Felipe


We’ve decided we want to sell Logic World on our own store in addition to third party stores like Itch. When you buy through logicworld.net, you’ll be able to download the game completely DRM-free and straight from our website. Additionally, 100% of your money will go to us. We are planning to support payments through PayPal, Stripe, and PaySafeCard. In the future we might also sell physical merchandise on our store.

We’ve updated our Terms of Service and Privacy Policy to reflect this new way of purchasing Logic World.

Saving Boards - Jimmy


I’ve been working on a system to save circuit boards you’ve built stuff on. Often in Logic World you need to use a circuit many different times, so now you can save your circuits and load them again whenever you need them.

https://www.youtube.com/watch?v=Hw8QMKr0C9k

In the future you’ll be able to upload and share your saved boards on logicworld.net.

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

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.

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

Logic World Wednesdays: The Detailed Edition

Website Update - Felipe


This week I’ve improved a few details on the website. First of all, I fixed the annoying newline formatting, now you can insert more newlines after a paragraph using
tags. Also, now you can see each post’s score when browsing a forum, along with the existing comment count. I’ve also fixed a couple of issues involving comment deletion, as well as added the possibility to edit comments!

Here’s a picture showing the forum details:



Configurable Displays - Jimmy


The main output component in Logic World is the Display. Displays change color based on the state of their inputs. Previously, these colors were predefined, but this week I’ve added the ability to change them.

https://www.youtube.com/watch?v=jqNI9Nek8AA

This feature was suggested by @TheWildJarvi. Thanks, Jarvi!

Details


Every week we’re adding small details and polish to Logic World. Individually, these are too small to get mentioned on Wednesdays, but from now on we’ll be doing compilation videos that show them off.

https://www.youtube.com/watch?v=u5TI6OQoU8Q

The difference between a game that’s pretty good and a game that’s fantastic is the attention to detail. We want every single part of Logic World to be a smooth and polished experience.

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

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.

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

Logic World Wednesdays: The Even More Colorful Edition

Color Picker v2 - Jimmy


Last week I showed you an early version of the Color Picker menu. I’ve spent a lot of time this week polishing and improving the color picker and it’s now my favourite piece of UI in the game.

https://www.youtube.com/watch?v=WpFBcw5cb3A

The color picker now has:

  • an HSV wheel
  • a hex code input
  • sliders for red-green-blue and hue-saturation-value
    • these can be toggled on and off individually
    • the slider colors update to reflect what changes they would cause
    • each slider has a field to manually enter a value
  • a list of saved colors
  • keyboard shortcuts


Profile Pages - Felipe


I’ve 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 won’t need to), so go ahead and try it! In the future we will be adding more badges that you’ll 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!)

Here’s a picture showing these two features:



You may also have noticed that there’s 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 you’ll now also see a feed of the user’s activity, i.e. posts and comments, which you can filter and sort!



Configurable Menus - Jimmy


I’ve 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 World’s interface to be as customizable as possible, so everyone can have the menus set up how they want or need.

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

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.

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

Logic World Wednesdays: The Colorful Edition

Welcome back to another Logic World Wednesday! Before we begin, we’d like to share that this week Logic World surpassed 2,000 wishlists on Steam. Thanks everybody!

Colors! - Jimmy


This week I’ve been working on a menu that lets you choose colors! It will be a sub-menu in many different higher-level menus. Currently you can use it to change the color of circuit boards, buttons, and switches. Check it out:

https://www.youtube.com/watch?v=aYP0pURAjFs

Graphics Improvements - Jimmy


This week I’ve been making improvements to Logic World’s graphics. The game now not only looks better, but it runs faster as well.

Lightweight Render Pipeline

Logic World is a 3D game, but its 3D world is displayed on your 2D screen. A “Render Pipeline” is a library of code which takes that 3D data about the world and converts it to a 2D image to be displayed on your screen.


Previously, Logic World was using Unity’s built-in render pipeline, but this week I’ve ported it to a new pipeline called the Lightweight Render Pipeline or LWRP. I did this for two reasons:

  • Performance. LWRP is built to be as fast as possible. It’s missing some advanced features - such as realtime global illumination and detail maps - but Logic World is not a realistic looking game so we don’t need realistic rendering.
  • Modernity. Unity is moving away from its old built-in render pipeline and will eventually deprecate it entirely. By using one of the modern render pipelines, we ensure that we’ll always have access to the newest and fanciest rendering tech.


It was a lot of work to move everything over to the new system, but I’m glad I did it.

Ambient Lighting

I’ve added omnipresent soft lighting to the world, so you can see what you’re 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 you’re looking at or which object you have selected. Our old outline system doesn’t 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

I’ve 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 there’s a bell in the top right side of the navbar in logicworld.net. It will light up whenever you get a notification! You’ll also be able to see the details of each notification if you click on it! This bell will only be visible when you’re logged in.

Currently you only get notifications when someone replies to your post or comment, but in the future you’ll get a notification when someone @mentions you in a comment or post, and you’ll be able to subscribe to a thread and get a notification when a new comment is posted!

Better notification settings - Felipe


Previously, you’d get an email whenever someone replied to your post or comment. This is great except for the fact that you can’t choose whether or not to receive them, that’s why now there’s 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


I’ve 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 you’re looking at. This is kind of hard to describe with words, so here’s a video:

https://www.youtube.com/watch?v=D1MocWQzV4s

Friends List- Felipe


I’ve 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!

Here’s 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 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.

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