Logic World Wednesdays: The Friendly Edition

by @MouseHatGamesDeveloper3 years ago

Friends/RPC system - Felipe

One problem of releasing Logic World on multiple platforms is not having a way to easily connect with your friends that have bought the game on a different shop. Thus, I set on to build a friends system, akin to that of steam (although much more barebones). This means that you’ll be able to chat with your friends and join their games, no matter where they got their copy of the game from, be it Steam, Itch.io or Gamejolt!

The system is powered by a gRPC server running on the cloud, to which clients will connect to in order to send and receive messages in real time. This whole system is completely opt-in, meaning that we won’t bother you at all if you choose not to create an account.

Game ownership verification - Felipe

To access the friends system, we must verify that you’ve successfully bought the game, which you can prove through your linked Steam account or by authenticating on itch.io. You only have to do this once, and you’ll be able to add your friends!

Component Flipping - Jimmy

A number of components in Logic World have parts on both sides of circuit boards. This week I’ve added a building mechanic that lets you flip these components upside down, either before or after you place them.

Remote World Downloads - Jimmy

In Logic World, the client and the server use the same code to store their internal physical models of the world, and this model is synchronized between the server and all the clients that are connected to it. Previously, only the server had access to the code that generates save files from this model of the world. I’ve modified the save code to work without the server, only that shared physical model of the world. This means that when you’re connected to a server, you now have the ability to download that server’s world.

Save Options - Jimmy

Logic World has two methods of saving your progress. First, it will save your game to the current save file. Second, it will automatically backup your save file, just in case. This week I’ve been working on making these two systems more configurable, and you now have the following options:

  • automatically save when the game is closed (true/false)
  • enable/disable autosave
  • time interval between autosaves
  • enable/disable auto-backups
  • time interval between auto-backups
  • an option to make a backup every time the game is saved (this would be in addition to auto-backups if you have them enabled)
  • the location on disk which backups are saved to
  • the maximum number of backups to keep per-save before the oldest one is deleted

Image Embeds - Felipe

Currently, if you want to upload an image to a post on the forum you’d have to previously upload it to an image uploading site (we were using Imgur), and then insert the image using Markdown notation. However, now you can directly upload images to logicworld.net and insert them into your post by writing {{!N}}, where N is the index of the image you’re referencing. Here’s how the UI looks like at the moment:

I do want to make it prettier but this works for now, even if it’s not the best UI.

Search Shortcuts - Jimmy

Last week @woox2k left a comment suggesting a keyboard shortcut for the search function in the selection menu, and this week I’ve added it. When you run a search, you can now press enter to add the first search result to the end of your hotbar. It also selects the entire search box so you can immediately begin searching for another item without having to use backspace. There are a few more advanced shortcuts as well:

  • alt+enter will add the item to the beginning of the hotbar instead of the end
  • shift+enter will replace the currently selected hotbar slot with the item
  • ctrl+enter will insert the item into your hotbar right after the currently selected hotbar slot

I’ve found that these become muscle memory quite quickly, and they allow experienced players to edit their hotbar without ever using the mouse.

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

See you next Wednesday!

@Vykori2 years ago (edited2 years ago)

is holding G to move items around still a thing? I feel like that’s not very intuitive, although I love the ability to move things around without having to delete and replace them.

personally I think it would make sense to use the button for placing as the same button for moving. if you’re looking at an item, then you can’t place something there anyway. likewise if you’re looking at an empty space, then there’s nothing to move. So these 2 functions will never interfere with each other.

edit: wait dang I forgot about moving boards around. In that situation, the controls would interfere with each other. Maybe G should just be a move board button?

@JimmyDeveloper2 years ago

Holding G to move items around - grabbing - is indeed still a thing, and it’s one of my favourite mechanics in Logic World. I find it very intuitive, but I have been doing it for 9 months or so at this point, so maybe it actually isn’t. We’ll see how the playtesters feel.

Unfortunately, using the same button for placing can’t work. This is because you can place components on components. So if you’re looking at a mount and you press the place/move button, which thing happens? Do you place a component on the mount or do you grab the mount?

@Vykori2 years ago

my thought process was that placing/removing/interacting with components is done with mouse buttons (at least in TUNG) so I feel like a random keyboard button to move things would be unexpected. especially since click-and-drag mechanics have existed in hundreds of applications for decades.

You’re right about mounts though, I forgot about those. Maybe moving stuff with mouse buttons should only be possible with an empty hand? That makes it more clunky though. So maybe a keyboard button is better even though it seems weird to me

@JimmyDeveloper2 years ago

I did try the thing with an empty hand, but as you predicted I found it quite clunky.

Do let me know what you think of the mechanic once you’ve tried it for yourself :)

@ForLoveOfCats3 years ago

Has there been much testing of this new codebase and Unity version on Linux yet? How is the startup time and memory usage looking?

@JimmyDeveloper3 years ago

So far the only Linux testing has been to make sure it works. Rest assured Linux is a priority for us. Right now we’re focusing on adding features to the game, but we will give Linux all the time and code it needs to be performant and stable.

@Broyojo3 years ago

We need undo and redo in logic world. It would make it much less frustrating. Like when you accidentally delete a peg that has like 100 connections to it and you have to wire it up again.

@JimmyDeveloper3 years ago

I agree. I want to add undo/redo, but I want to finish adding all the building mechanics first, to ensure they’re all part of the undo system.

@ForLoveOfCats3 years ago

What hosting service is the friends system running on?

@pipe01Developer3 years ago (edited3 years ago)

The same one as the website, a Digital Ocean droplet

@ForLoveOfCats3 years ago

BTW the Developer tag is sweet, is that new this week?

@TheWildJarvi3 years ago

Hey guys, I don’t know if this is implemented yet but if you could make entire boards flippable that would be nice. If you’re familiar with world edit in MC, it would be the equivalent of the //flip command.

@JimmyDeveloper3 years ago

So like flipping every component on a board at once?

@TheWildJarvi3 years ago

no, like actually just flipping the whole board. it would flip through the axis the user picks(in MC its done based on the orientation of the player to the build, and the direction the player is facing when they run //flip. Imagine looking at a board thru a mirror(it flips it in the Z axis)

@JimmyDeveloper3 years ago

I’m still not sure exactly what you mean. Are you saying that the board would maintain its position and rotation, and the components on the board would change their positions/rotations so that they are a mirror image of their original positions/rotations?

@TheWildJarvi3 years ago

I guess with the mechanics of the game, when you flip a board, you would have to select the axis to flip on, and it would make a copy of that board that is the mirror of the original board that the player could then place.

@JimmyDeveloper3 years ago

Ah okay, I understand you I think. One of the next things I want to work on is advanced board manipulation tools, so I’ll definitely be looking into this.

Thanks for the suggestion!

@Ry3 years ago

This Looks Cool!I Cant Wait For Summer