Jump to content
  • entries
    945
  • comments
    5,899
  • views
    930,151

Small behavioral change


Josh

7,344 views

 Share

In the next beta update, the way entity fields work in the script properties will be a little different. Instead of dragging an object from the scene tree onto the field, you will type in the name of the object (or copy and paste the name from the object's name field). This is being done to make the behavior more intuitive. After working with both approaches, I find the new way much easier to use.

 

blogentry-1-0-96881600-1433173830.png

 

This does however mean that an object that is used in this manner must have a unique name, since that is what is used to make the linkage. Additionally, prefab limbs can now have their names changed without breaking the prefab, in order to accommodate this design.

 

Your existing maps will be unaffected until they are resaved in the editor, but if you have multiple target objects with the same name, your map will need to be updated.

 

Alos, the texture list in the material editor is being reverted back to its original design, which was a bit more obvious in its presentation and usage.

 

blogentry-1-0-33029800-1433183272.png

 Share

33 Comments


Recommended Comments



What happens if you do not have a unique name? An error or just the possibility of the wrong object used for the linkage?

Link to comment

Then the object you get will be randomly chosen from all objects with the same name. So it's important to give them a distinct name.

Link to comment

I did find dragging in the object worked fine, the new way sounds fine as well.

How about an autocomplete, that would be great.

 

Also pressing delete while changing the fields would be good, I have sometimes deleted objects by mistake

Link to comment

Would it be possible to somehow alert the user if you have a name entered that matches multiple entities? Maybe highlight the box in red or something. Could be a potential pitfall if someone doesn't know there is an entity with the same name or know this behavior.

  • Upvote 1
Link to comment

Would it be possible to somehow alert the user if you have a name entered that matches multiple entities? Maybe highlight the box in red or something. Could be a potential pitfall if someone doesn't know there is an entity with the same name or know this behavior.

I have considered adding a "Check for errors" tool. I think this might be a little weighty, and your suggestion is better, although I am not sure yet how the implementation would look.

Link to comment

What about just a simple dropdown list of all available entity names in the current scene? I did something similar in LE2 for creating my own properties panel selections.

Link to comment

Cant it do both? on drag do x, on click do y? Now i have to make sure all my entities have unique names and that I know the names. I'm not liking this change. Why are such drastic changes simply just done and never asked about?

Link to comment

Cant it do both? on drag do x, on click do y? Now i have to make sure all my entities have unique names and that I know the names. I'm not liking this change. Why are such drastic changes simply just done and never asked about?

People frequently ask how to use it and my original idea was not the best way. I've also received bug reports that the linkages sometimes break without any obvious cause. This solves the problem.

Link to comment

This fits nicely with what I've always said about all names should forced to be unique anyway to avoid issues. I like mac's idea of a dropdown. Maybe a dropdown that we can type into (I think this control is fairly common) and while you type it filters the list shown.

Link to comment

This fits nicely with what I've always said about all names should forced to be unique anyway to avoid issues. I like mac's idea of a dropdown. Maybe a dropdown that we can type into (I think this control is fairly common) and while you type it filters the list shown.

Completely unique names on all objects would not be possible, since names are loaded from model files.

Link to comment

What about just a simple dropdown list of all available entity names in the current scene? I did something similar in LE2 for creating my own properties panel selections.

I think this idea would start of nice but would quickly become unmanageable. It my current level I have over 200 entities. That's a rather long list. Also Leadwerks doesn't even keep it's own entities unique, aside from imported assets. With this change, If you copy paste a csg it should auto increment its number to the next highest number. Imported assets should have a number appended a number " ###" to the end. They too should auto increment.

Link to comment
Why do you say that?

Because drag and drop is how it is done on 3D engines, even on all windows software.

A move with the mouse is always ten times faster then having to enter a name.

Anyway, in a game it won't be thousand of entities scripts, so it should not ne so bothering. Still this is some workflow regression.

Why not keeping the two options ? drag and drop and enter name

I've also received bug reports that the linkages sometimes break without any obvious cause. This solves the problem.

This is some valid reason then, but i never got any problem on that side.

If it helps LE3 beeing more bug free for majority people , then perhaps it's best that way.

Link to comment

Completely unique names on all objects would not be possible, since names are loaded from model files.

 

That's what an auto incrementing number at the end of the name is for. That's a pretty universal method for giving unique names.

Link to comment

Then we have issues when the model changes and the name has to be updated...was the name change automatically assigned by the editor, or by the user? Things get complex quickly.

Link to comment
Then we have issues when the model changes and the name has to be updated

 

I'm not sure I follow. If I update the model the name stays the same. Save the last incremented number in the mdl file so when you have to update it you pull that value in the original mdl file before updating it. If someone manually deletes the mdl file and then re-adds on adding check for this filename with numbers and find the largest number and give it 1 more.

 

If you store the incrementing number in the mdl file then if it gets renamed it doesn't matter. Just pull that number and increment it.

  • Upvote 1
Link to comment

Because drag and drop is how it is done on 3D engines, even on all windows software.

A move with the mouse is always ten times faster then having to enter a name.

I have found that drag and drop can actually be very unintuitive in many cases, and many of the UI elements in Leadwerks have backed away from this approach. It's hidden functionality that isn't obvious when looking at it.

Link to comment

I think you should do something in the scene tree/name field when 2 entities are sharing a name. A little warning icon or how Hammer does this is by bolding the name if 2 entities share a name. (Although may be less obvious.)

 

I welcome this approach. Yeah, I'm use to typing/copy and pasting names into fields, but I really dislike how the scene tree functions. But that's just me.

Link to comment

 

 

I'm not sure I follow. If I update the model the name stays the same. Save the last incremented number in the mdl file so when you have to update it you pull that value in the original mdl file before updating it. If someone manually deletes the mdl file and then re-adds on adding check for this filename with numbers and find the largest number and give it 1 more.

 

If you store the incrementing number in the mdl file then if it gets renamed it doesn't matter. Just pull that number and increment it.

 

You don't even have to store the number in the mdl file. Then number should be in the map file. You store the relative path the the model and its number in the map file. If the model name changes, the path and the number stays the same. If the model path is no longer valid, then offer the user the opportunity to replace the model with another but keep the same number. Then go find and replace all references of the old model with the new one with the same number so as to not break scripts and flow graphs. Otherwise delete all the old models.

  • Upvote 1
Link to comment

 

I have found that drag and drop can actually be very unintuitive in many cases

 

This sounds like the problem that the MS Office team has, the top requested additions are things that they already implemented. The solution? Make it more obvious. That's how the ribbon was born.

 

For leadwerks put a group box around the target box name it "drag entity here" , CHANGE the mouse cursor to the drag drop cursor (windows has a special cursor just for this). Now its obvious you drop entities there. And if for whatever reason they still click on it, allow them to type the entity in with a autocomplete option.

 

Combine with the auto incrementing numbers you have a complete system that supports everybody.

Link to comment

 

As a general rule, that kind of thought can be trouble:

https://gettingreal.37signals.com/ch04_Make_Opinionated_Software.php

 

That's nice and stuff but wiki doesn't do that anymore. I can check the diffs to se who wrote what and changed what for the entire lifetime of the page. I can check total user contribution to a document. So things change. And who cares about your vision if it possibly detrimental to the people it serves.

 

<insert Godwin's law here> thought his vision was great, and people agreed with him and wars were fought and "everybody" had to be involved.

 

It's one thing to be opinionated and another to be polarizing. Office's ribbon is opinionated, Blender is polarizing. People go out of their way to avoid it, while people dislike office but they still use it.

 

http://onstartups.com/tabid/3339/bid/176/Disagreeing-With-37Signals-2-Opinionated-vs-Stubborn-Software.aspx

Link to comment

Just because something isn't intuitive is no reason to abandon it.

e.g. take blender: When you first use this tool you have absolutely no clue, what to do but once you get used to it, you will see, that it is designed to save loads of time!

 

Another very important example for this is the command-line-editor vim.

Hell, you will curse it a thousand times but if you take the time to actually learn to master it, you can be so much faster than with any other text-editor!

 

I think, that the potential to be extremely fast is more important than intuitivity. But these things can go along with each other. Just have it enter the name automatically into the field, if you drag it and everyone is happy...

Link to comment

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...