Logic World Wednesdays: Beam Me Up, Bobby

by @MouseHatGamesDeveloper2 years ago

This week we have made the unfortunate decision to postpone the release of Logic World… again. The new, and with any luck final, launch day is June 12. Read more in the official announcement.

Player Positions - Jimmy

This week I finally added a big missing feature to Logic World: when you exit a world and then enter it again, you will now be in the same location you were when you left. This also extends to other player position values like the direction you’re looking in, whether you’re crouching, and whether you’re flying. Each player now has their own file within a world folder where their data is saved. This opens the door to persisting more player values, such as which items you have on your hotbar.

I also added save-dependent world spawn points, which is the location a player will be in the first time they join a world.

Finally, I added commands for teleporting players to different positions. I couldn’t resist the opportunity to do something fun with that…

I’ve open sourced one of the tools I used to make the teleport effect.

Build pipeline - Felipe

This week I’ve been working on finally finishing the build pipeline, it can now successfully build the Unity game and publish it to Steam!

build shit.png

Fun Spinny Triangle - Jimmy

By popular request last week, I added a setting to choose the open state of the Quick Color Chooser. This new setting was all by itself in the “Color Choosing” settings heading, and I decided it needed a friend.

Enter Fun Spinny Triangle, the best setting ever added to Logic World.

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. Be sure also to wishlist Logic World on Steam and join the official Discord.

See you next Wednesday!

More Logic World Wednesdays

@Ecconia2 years ago

I heard teleporter teleporter, but wouldn’t it be nicer to have a sever-command-component? Which issues a command when certain permissions present? An explicit teleporter component would well not allow this feature.

However always consider that either of the two components is a bad idea when connected to a rapid clock. I see bad boi potential. There should be a ways for the client to ALWAYS refuse teleporter component teleports. (one issue with server command components).

Also any action the user is currently making whatever it is, should not be interrupted by an external server teleport. (Dragging stuff :O, Currently resizing, maybe). Maybe add an undo function to the client, once he got teleporter externally. For seamless continuing of his/her work.

@JimmyDeveloper2 years ago

If a server is abusing their ability to teleport players, then maybe you shouldn’t play on that server? I don’t see the need to give clients and servers tools with which to fight each other. If a server doesn’t like what a player is doing, it can ban that player; if a player doesn’t like what a server is doing, they can leave that server.

We almost definitely will not have a command block component in vanilla. Commands are not intended to be part of the machines you build. However, this would be a very easy mod to make.

@Ecconia2 years ago

I am totally fine with not issuing commands from the logic-physics level. Makes a lot of things easier - its a complex thing to add - as in to add it properly. I agree on this being a mod.

However I don’t quite agree with your fighting statement. It is correct that normally you should not teleport someone randomly. But that will always happen, and there is enough chance for that teleported user to just drag something. You should consider this. The most easiest fix is to just abort that users action.

I agree that a teleport undo might not be the best solution, rather the one I just suggested (if its not already a thing). But yes, every action should properly react to a teleport - regardless of intentional or unintentional harm.

But however sometimes you want to drag a component AND teleport with that component! Idk? I didn’t have the chance to play the game yet, but might be possible no? Or is the distance too great for that? Is there even a maximum limit for wire length? Dragging a wire with teleports -> tasty

@Ecconia2 years ago (edited2 years ago)

EPIC effect!

Looking on the long term view of LW I assume there has to be done a lot of backend/API work to support adding server/client permissions to commands and basically any action.

Hmm, but tricky topic in our not-anymore favorite game MC, vanilla commands cannot be removed from the game if, you don’t remove them from Sourcecode. Further they fully bypass the API (I hope what ALL LW commands can do, is possible via the API!). It should be possible to remove whole commands or fully make them invisible and or just replace them.

Give the users all the official freedom they need. Don’t let the modders introduce frameworks -> provide them. (Although you basically already denied a region framework. [For servers]). Maybe ask your future modding community of what they expect from the game :) [Low level frameworks or at least support for them is always nice]

More commends regards this topic, once I have the game. It’s difficult to gather information about it.

@JimmyDeveloper2 years ago

Currently permissions work like this:

  • You can always run commands on your game client
  • You can run commands on the server only if you are an admin on the server

And yes, as far as I know every command in the game has corresponding functionality in the modding API.

Why do you think mods should be able to remove commands?

@Ecconia2 years ago

or fully make them invisible

Imagine joining on a server and trying commands, resulting in only 3 work. Why not give the client the possibility to know which commands are available? Handy with completions! Afaik there is some help command which prints all commands. A good place to color commands weather they are available or not.

-> Can be fully solved with permissions. Removing commands would just be a last resort hacky solution, if the permission system is not doing a good job.

[Keep in mind this is all post-release thoughts - won’t expect anything related to this for V1, same for my other comment before.]

@JimmyDeveloper2 years ago

Right, okay. For 1.0 we’re mostly targeting small servers between friends, where such a rigid permissions system isn’t necessary. But this is definitely the kind of thing I want to do in the future.

@JimmyDeveloper2 years ago (edited2 years ago)

Okay, at y’all’s request I have added several variations to the teleport command. Each of these has a command on the client that lets you teleport yourself, and a command on the server that lets you teleport a specific player.

Command Arguments Description
tp <x> <y> <z> Set absolute player position
tp <playerName> Set player position to the position of another player
tpr <x> <y> <z> Set relative player position
SetAllPositionData <positionX> <positionY> <positionZ> [headHorizontalRotation] [headVerticalRotation] [playerScale] [flying] [teleport] Set every aspect of the player’s position data

cc @Broyojo @cmoa

@woox2k2 years ago

I hope you remembered to offset player to player teleport. You wouldn’t want to teleport inside someone. Also you should be facing the target player so you wouldn’t need to look for them.

@Vykori2 years ago

well LW now has the ultimate color chooser of any program.

Also the ultimate teleporting effect of any game.

These devs don’t just add features to their game, they add masterpieces. lmao

@JimmyDeveloper2 years ago

Aww thank you 😄

@Broyojo2 years ago

can you teleport to other players?

@JimmyDeveloper2 years ago

Oooh I totally forgot about that – thank you, I’ll add this!

@cmoa2 years ago

and can you teleport other players (to you) ? relative position and camera angles would be cool as well thx (waiting for someone to make a cinematic mod out of that)

@JimmyDeveloper2 years ago

and can you teleport other players (to you) ?

So, there are two teleport commands: a client command for teleporting yourself, and a server command for teleporting other players (that’s what you see in the video). If you’re an admin in a server, you can run server commands from your client. So an admin could teleport another player to themselves.

relative position and camera angles would be cool as well thx

I’ll add an advanced version of the teleport command that also sets looking direction, player scale and flying state :)