Block rotation

Azirahael

Well-Known Member
Jan 8, 2015
2,080
1,260
570
120
Based on stuff i've overheard, the new and annoying block rotation issues seem to be based on the optimization.
which suggests it would be difficult to keep the gains, but get the old functionality back.

I suggest 3 rotation keys. We already have 2, so no big change there.

When you pick up a block, it keeps the same rotation as the last block you picked up.

the "F" key rotates the block on the X axis.
The "G" key rotates it on the Y axis.
the "H" key rotates it on the Z axis.

It will mean sligtly less 'instant click' but it will mean that you can get ANY alignment with just a few key strokes.

Later on we can get some shiny mouse interface involving dragging or something, but for now, let's have this.
 

GameSpender

Well-Known Member
Dec 21, 2014
127
51
425
17
*thumbs up* thus I would like that block go on a spot you are looking at not one somewhere else.
 
  • Like
Reactions: Coder

Azirahael

Well-Known Member
Jan 8, 2015
2,080
1,260
570
120
*thumbs up* thus I would like that block go on a spot you are looking at not one somewhere else.
Yeah.

I built a Huge, and i mean HUGE base.
It's 128x128x64.

And i ended up using Geo cubes instead of Big Blocks for the wall. because each big block required precise placement and 34 RMB clicks/wheel clicks to get it the right way around.

moving 4 cubes and not turning them was waaaaay faster than one block.
 

reaperx1

Crazed Builder
Feb 25, 2015
4,565
3,616
670
39
Yeah.

I built a Huge, and i mean HUGE base.
It's 128x128x64.

And i ended up using Geo cubes instead of Big Blocks for the wall. because each big block required precise placement and 34 RMB clicks/wheel clicks to get it the right way around.

moving 4 cubes and not turning them was waaaaay faster than one block.
How did you build that big? I get stopped at 64x64x64.
 

GameSpender

Well-Known Member
Dec 21, 2014
127
51
425
17
nope.

Well, yes. from 32x32x32 to 64 etc.

But there are a few tricks you can do to get around some of the limits :p

Like building a 128 high tower :p
ok
I didn't read news cuz I didn't know where to find them (now I know)
 

GameSpender

Well-Known Member
Dec 21, 2014
127
51
425
17
Yeah.

I built a Huge, and i mean HUGE base.
It's 128x128x64.

And i ended up using Geo cubes instead of Big Blocks for the wall. because each big block required precise placement and 34 RMB clicks/wheel clicks to get it the right way around.

moving 4 cubes and not turning them was waaaaay faster than one block.
One question.. Where did you build your base? in a survival or R&D? (just mesing with this)
 

reaperx1

Crazed Builder
Feb 25, 2015
4,565
3,616
670
39
nope.

Well, yes. from 32x32x32 to 64 etc.

But there are a few tricks you can do to get around some of the limits :p

Like building a 128 high tower :p
Would you care to fill the rest of us in on the tricks?

I like workarounds when it makes things awesome.

Can you even use that tech that is 128x128x64 in the game or does it just get cut down to the limited size when brought into the main game?

Have a good one
 
  • Like
Reactions: Coder

tomo_cjt

Well-Known Member
Aug 14, 2014
401
362
475
It should cut it down and may cause issues...
I'd also like to know this trick.
 
  • Like
Reactions: Coder

tomo_cjt

Well-Known Member
Aug 14, 2014
401
362
475
I suggest 3 rotation keys.

<Snip>

the "F" key rotates the block on the X axis.
The "G" key rotates it on the Y axis.
the "H" key rotates it on the Z axis.
The issue with this is that many orientations aren't useful or can't be used in that case (blocked, no attachment points etc) - now if we ignore these, you can't possibly get to some of the valid locations. Conversely, if we let you go to those you'd have to press more times to get to the correct one.

We might look at this down the line, but sorting the ordering so it's more like the old version is more likely to come first.
 

Azirahael

Well-Known Member
Jan 8, 2015
2,080
1,260
570
120
The issue with this is that many orientations aren't useful or can't be used in that case (blocked, no attachment points etc) - now if we ignore these, you can't possibly get to some of the valid locations. Conversely, if we let you go to those you'd have to press more times to get to the correct one.

We might look at this down the line, but sorting the ordering so it's more like the old version is more likely to come first.
Um, i'm confused?
I'm not sure what you're telling me.
(Don't be afraid to be technical :))

At the moment, many attachments aren't useful. they just don't show.

And you can't get to some of the valid locations now, but the block still snaps to them. example: snapping a geocube to the inside of a tech, through a 1 block wide hole.

i would imagine, in the hypothetical system that i suggested, if the particular orientation would not fit in a particular place, the attach points just would not show. as they do now, if your block won't fit there.

what i'm suggesting is a little different from what we have now. I think that's where the disconnect is.

What i'm proposing is this:
No auto-orientation snap at all.
bricks held, always maintain their orientation.
if they don't fit that way, they don't fit.
the three keys rotate the block in the air.
then you move it to the unit, and it snaps into place, like now. the orientation does not change. you move it around to the right place, and let go.
Then next brick selected keeps the current orientation.

this way there would be a maximum of 6 keystrokes for the most awkward possible orientation, 2 or three for most, and none for any repeat placements.
As a side effect, it would cut down on AP calculations, because the system only has to calculate for the current orientation.

And it would solve all those issues where you just can't get a block in a tight space, and facing the right way.
 

reaperx1

Crazed Builder
Feb 25, 2015
4,565
3,616
670
39
Sounds like a good idea and would probably solve some issues, but would it have to be rotated in the air or could it just be the way it is now where it clings to the block beside it and then rotated with your method?

I like being able to see the part in place as I choose what way to attach it.

Have a good one
 

tomo_cjt

Well-Known Member
Aug 14, 2014
401
362
475
Um, i'm confused?
Okay I'll try again.

At the moment, many attachments aren't useful. they just don't show.
Yup, if it can't be attached that orientation isn't shown.

And you can't get to some of the valid locations now, but the block still snaps to them. example: snapping a geocube to the inside of a tech, through a 1 block wide hole.
Right, I didn't mean you couldn't physically put the block there - we want the above currently. (continued after quote)

i would imagine, in the hypothetical system that i suggested, if the particular orientation would not fit in a particular place, the attach points just would not show. as they do now, if your block won't fit there.
What I meant is - if we remove the placements where a block can't possibly fit (like we do now), then rotating about one axis will prevent you from getting the block into a rotation that you want. I'll do some diagrams with a die later, but basically say a block flips 180 around y because it has doesn't have attach points at it's sides. Now assume one of the other rotations also isn't possible. This implicitly makes it impossible to hit some rotations with the 3 key system.

Also, remember that not all blocks are square cuboids.

Your proposed system means you have to rotate in the air, and one of the nice things we currently have is you can change it on the tech (as reaper points out).

We also currently rotate the block for the chosen attach point - you're suggesting a very different method where you rotate the block and then try and stick it to the attach points. Our code doesn't work like that and placing things in 3D is tricky for users. However using a pointing device (mouse) you can easily go put this there.

Anyways, improvements will come but not at the cost of ease of use.
 
  • Like
Reactions: reaperx1 and Coder

Azuratte

Well-Known Member
Feb 11, 2015
585
368
275
40
Umm, how about a modified idea. Say, you hold a button that give some sort mouse control to where you want a snap point.... So, you hold the button, move your mouse around till the snap point you want to use lights up. Then you use FGH (with modifer for reverse rotation) to rotate on that snap point. If the part snaps to the position you want and is not compatible then it shows red, if it is compatible it shows green.

I wouldn't suggest dropping the snap program they have now, 90% of the time it works wonders. But a more advanced snap option would be awesome for more advanced users and blocks with 64 points of attachment.

Say, you drag a block and everything snaps as it does now, but once you hold the key to the advanced snap that block is bound to the advanced snapping until dropped.
 

Azirahael

Well-Known Member
Jan 8, 2015
2,080
1,260
570
120
Okay I'll try again.



Yup, if it can't be attached that orientation isn't shown.



Right, I didn't mean you couldn't physically put the block there - we want the above currently. (continued after quote)



What I meant is - if we remove the placements where a block can't possibly fit (like we do now), then rotating about one axis will prevent you from getting the block into a rotation that you want. I'll do some diagrams with a die later, but basically say a block flips 180 around y because it has doesn't have attach points at it's sides. Now assume one of the other rotations also isn't possible. This implicitly makes it impossible to hit some rotations with the 3 key system.

Also, remember that not all blocks are square cuboids.

Your proposed system means you have to rotate in the air, and one of the nice things we currently have is you can change it on the tech (as reaper points out).

We also currently rotate the block for the chosen attach point - you're suggesting a very different method where you rotate the block and then try and stick it to the attach points. Our code doesn't work like that and placing things in 3D is tricky for users. However using a pointing device (mouse) you can easily go put this there.

Anyways, improvements will come but not at the cost of ease of use.

Yeah, i'm still not getting what you are driving at.

Oh, wait, i think i might.

let me see if i understand you.

currently, you attach a block, then rotate it through all possible combinations of orientations that will fit in that location, skipping any that won't fit in that location.

What you are saying, if i read you correctly, is that in the proposed system, you could get the following scenario, and it's a problem:

if a particular orientation that you want requires, you to rotate the block to an orientation that won't fit, and then rotate around another axis to get what you want, you cannot get there, because it won't go into the non-fitting rotation, for you to then rotate it on the correct axis to get what you want.

and for it to work properly, the XYZ rotation would have to take place in the air (yep), and THEN be attached to the unit in the position you want.

and that this is bad, because you can't just stick it on the tech, and then rotate it.
Which presumably is bad, because people want to see which way a thing is facing, in place.

Is this right?
(Note: people who are NOT @tomo_cjt, don't put your oar in. i want to make sure i get what he's saying right, not your interpretation of what he said.)

Now if this is impossible to code/way too damn hard, then fine.
But if the argument is that it's unintuitive compared to the current system, or more difficult to manage in 3d, then i will have to disagree, and demonstrate why.

If you rotate the block in the air, i would argue that most people would have no trouble working out which way around it should go.
I would also argue that the 'stick it on and then turn' model is counter intuitive. as in real life, you orientate the lego, then you stick it on. it doesn't work the other way.
and once you have the orientation that you need, it becomes much much easier to put more in place the same way.

As it is now, you have to reacquire the chosen orientation for each and every block you put in place. which in the case of big blocks, can be hundreds of clicks.

and moving a fixed orientation block in 3d is no harder than moving a current block.

This solution i have proposed gives complete control with an absolute maximum of 6 clicks (plus one to pick up the block) if there's a back and forth control for each axis, 12 if there's only one direction per axis).


We also currently rotate the block for the chosen attach point - you're suggesting a very different method where you rotate the block and then try and stick it to the attach points. Our code doesn't work like that and placing things in 3D is tricky for users. However using a pointing device (mouse) you can easily go put this there.
I would argue that the proposed system is simpler. far less choices and clicks, far more control, more intuitive, and way less annoying. and moving the block in 3d is no different one way or another.

And the current system is much harder and more frustrating for new users. some things are almost impossible, as the block snaps, not the the point you want, but to another. and even when you do get it to the right place, often after disassembling everything in order to open up the right sort of shape for the system to decide 'oh, *that* AP?', then you have to click it a ton of times.

Now if my suggestion is impossible to code, if what we have now is the best that can be done, ok.
but please actually explore this.
I think you'll find it will work well, if you can code it.
 
  • Like
Reactions: Coder

Azuratte

Well-Known Member
Feb 11, 2015
585
368
275
40
What about not rotating in air but clicking the part to attach then its connecting point, then clicking the attachment point on the part. The part snaps to the selected point the best it can, then you'd rotate the part/shift the part in the xyz. I say rotate/shift as many blocks have more than one point on a given axis in a given plane.


In the event the snap is no good, a ghosted snap model would appear signifying the connection will fail if the configuration is accepted.

But again, this would be nice but only as a secondary option.
 

reaperx1

Crazed Builder
Feb 25, 2015
4,565
3,616
670
39
It should cut it down and may cause issues...
I'd also like to know this trick.
I don't think he is going to tell us.

I just don't get how its possible without modifying the game somehow. I always get stopped at the limits.

Have a good one
 
  • Like
Reactions: Coder

tomo_cjt

Well-Known Member
Aug 14, 2014
401
362
475
Is this right?
Yep.

and that this is bad, because you can't just stick it on the tech, and then rotate it.
Which presumably is bad, because people want to see which way a thing is facing, in place.
Aye.

What about <snip> clicking the part to attach then its connecting point, then clicking the attachment point on the part.
These are like toys, and attaching should be tactile. The fact you're actually attaching this to the tech is something we like and want.

But if the argument is that it's unintuitive compared to the current system, or more difficult to manage in 3d, then i will have to disagree, and demonstrate why.
I don't mean to be rude but a wall of text doesn't demonstrate.
Lego Worlds has about 10 different button presses to solve the issues of attaching objects in 3D space with a 2 dimensional input system. Lock to XZ, Lock to YX etc.
It's a hard thing to get right. Really.

We might do rotating in the air, heck, we've discussed this internally before and will probably be looking into it at some point.
However, with physical Lego you don't move in a 2D plane you directly move to where you want to place it.
We're using a mouse cursor (with gamepad controls, this works differently because that's a steering device and not a pointer) and can't do this, so what happens when you brush it over places it can go - it doesn't snap, and you're not sure why (This makes it less accessible, and we don't want that do we).

We might also have default orientations, and maybe go back to where it used to show distinct rotations after each other (this was removed to fix a slowdown).

A big thing to think about with control schemes is they can be great in your head but actually fairly meh when implemented. There are a lot of edge cases and a big part of it is feel.

We will be improving this system, but probably a bit down the line.
Hope that clears some stuff up :)
 
  • Like
Reactions: Coder