A response to Nik's TUNG feedback

by @JimmyDeveloper3 years ago (edited2 years ago)

A while ago, @Nik made a long series of messages on Discord about his experiences with TUNG, the prototype precursor of Logic World. I’m finally responding to it, and since the text of this post is so long, I feel it makes more sense to post my response here on the forums.

Regarding TUNG with the Steam Controller:

Things that worked out well: 1. your fingers never leave the most common functions (fly up/down, rotate left/right, mouse left/right click, player movement, mouse, delete, and pick component) 2. The component menu touch-interface works well 3. holding A activates a detail mode where it zooms in, and uses gyro aiming, so you can point at some tiny thing to rotate/delete it without pointing at the wrong thing 4. I was able to move all of TUNG’s weird and rarely-used controls into 1 concise touch-menu. Rotation lock toggle, placing ghost toggle, fly toggle, flight mode toggle, noclip toggle, and others.

Glad to hear these things work well. I will do similar things when designing the controller setup for Logic World.

Things I don’t like: 1. I had to do some janky techniques here and there to get things to work, mostly due to odities with TUNG’s controls… So there’s some inconsistencies with how I implimented the touch menus and etc. So some touch menus will give weird double-vibrations, and others won’t.

Thanks to Logic World’s extremely powerful controls customization system (details in this post) janky hacks shouldn’t be necessary.

  1. In order to get the UI working decently for scrolling through PiTUNG items, I decided to put the scroll wheel on the analog stick. Which then means you can’t use the stick for player movement.
  2. The component picker menu touch-interface doesn’t have enough buttons to access all the items (like labels and through-pegs) so you have to resort to the scroll wheel (analog stick) for some of the more rarely-used items.

Since Logic World’s selection menu works completely differently from TUNG’s, these won’t be a concern.

  1. And the big one…When you pick New Board and you get the interface to choose the size of your board, the controls are horribly suited for this, so I wanted to make an alternate action set with dedicated controls for this interface. But I couldn’t figure out any automatic way to transition to a different action set, so you just have to press Y to switch over manually. And even if you do that, it’s easy to get things to desync and you end up in the wrong action set. I hope LW uses the steam input API so that it can automatically swap between action sets and it can never desync, but I don’t know if this is even possible with unity tho?

TUNG’s interface for creating a new board is godawful. It’s quite possibly the worst user interface I have ever programmed. It’s WAY better in LW, and I am still refining it to be even better.

As for events/callbacks when the game changes state, LW’s mod API already has these so it will definitely be possible. I haven’t looked into the Steam API at all yet, though I’d definitely like to include stuff like this.

All these bindings shenanigans made me feel like the controls in TUNG could be highly improved for LW.

I completely agree. They have already been highly improved and they will continue to be higherly improved!

TUNG has so many weird bindings that would make way more sense as a GUI interface.


Like putting all those weird flight toggles in the pause menu, which also gives you a side-benefit that you can now view the state of the toggle without having to test the functionality.

Oh damn that’s a fantastic idea, doing this right now brb

Of course users should be able to bind them to keyboard keys if they prefer, but new players will be using these so infrequently that they’ll forget what’s bound to what. Better to leave those unbound by default, I’d think. And even if they are bound to keyboard keys, there should be some kind of visual indication, because TUNG is completely silent when you toggle something.

Yes, we absolutely need some kind of in-game notifications system.

Since LW has the new method of resizing boards after you place them, I think it should just skip the stupid intermediate-screen where you have to choose the size of your new board. Just have it 1x1 by default, place it on something, then you can resize the board afterwards to make it bigger in exactly the way you need, without having to use extra bindings, or lock the player from moving around. This also means that you don’t have to use the scroll wheel to offset the board into the perfect position, since you can just resize it afterwards in the correct direction, and it’d be much less fumbly overall. But you’d still have to use the scroll wheel if you’re moving a big board into a new position, I can’t think of a nicer system for that.

Hmm, this is an interesting idea. My main worry with it is that it could be confusing to new players, who won’t immediately grasp that there’s an expected second step for them to take when creating a new board. Perhaps this could be an option.

Again, I’m still refining the interface for creating a new board. What you’ve seen in videos so far is not its final form.

When building logic gates quickly in TUNG, it’s easy to get confused if you rotated your placement-ghost before you placed the component, or if you placed the component with an incorrect initial orientation, and rotated it afterwards. Then you realize your ghost isn’t rotated in the correct direction, because when you rotated the component, the ghost stayed in it’s original orientation. So for that reason, I think the ghost should get synced together every time you rotate a component, to make building quickly less fumbly/confusing. Or just have an option for this functionality, because I’d use it!

That’s a really clever idea. Thanks for the feedback, I’m going to experiment with this.

and omg, rotating boards is the fumbliest thing ever. In TUNG, it’s hard to even tell which direction you just rotated your board sometimes. I think rotating anything should be a quick animation, instead of instantly teleporting in a new orientation. I mean this isn’t minecraft, we have the power of floating-point precision, let’s use it!

Duuude animations on board rotations is an AMAZING idea!! Why didn’t I think of that! Thank you VERY much, this is absolutely going in the game.

And hopefully the controls could be redone somehow…

I agree the controls for board rotation are rough, but I still haven’t figured out a good keyboard solution. The ways in which boards can rotate are just too complex. However, one of my near-term tasks is to create a GUI representation of how the board is rotated. I am hopeful that this will make board rotations significantly less confusing.

…jesus I typed more than I thought I did

It was long indeed, and I encourage you to use these forums in the future :) but thank you very much for the detailed feedback. There was a lot of very helpful stuff in there.

And I apologize once again for taking so long to get back to you on this. I’ve just been extremely busy! I will make an effort to be more timely going forward.

@JimmyDeveloper3 years ago

I haven’t laughed this hard in days oh my lord

@Vykori3 years ago

lmao. Well I’m actually super happy that I had several ideas in here that you liked or thought were interesting! Very glad I could help