x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

[Closed] Improved Blueprint Function Discoverability

Here's a very common situation new users to a code base will find themselves in:

You want to call a function, you don't know what it's called, but you suspect it exists. How do you find it? Well, in code you start searching synonyms hoping one of them is contained in the function name, or the documentation.

One really good discoverability improvement you guys could make to blueprints is to also search the tooltip provided for a function, and present those options as well.

To ensure order, and prioritization of the most likely candidates you may need to use an algorithm like Term Frequency - Inverse Document Frequency to ensure the most relevant functions show up first, and weight words found in the function name.

Or alternatively provide the functions that contained the word searched in a tooltip, but not the function name in a list of "maybes" below some horizontal divide, to separate out the current list from this new "possibility" list.

alt text

Product Version: Not Selected
Tags:
more ▼

asked Mar 11 '14 at 02:45 AM in Blueprint Scripting

avatar image

ue4-archive ♦♦ STAFF
49.9k 3662 1989 9113

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

The question has been closed Oct 03 '14 at 05:08 PM by Doug E for the following reason:

Beta question


2 answers: sort voted first

Hello,

This is a question from the beta version of the engine. We are marking this answered for tracking purposes. If you are experiencing an issue similar to this please post a new question.

Thank you.

more ▼

answered Oct 03 '14 at 05:08 PM

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

We actually used to filter functions based on their comment as well, but we found this returned a lot of unhelpful functions, that crowded out the ones you actually wanted when you did know what you were looking for. I can see the value when you don't know though. Tricky problem! We are going to allow custom 'keywords' for functions, though, which will let us fix issues like the one in the screenshot above. It will just take time to populate those keywords.

If we fail to find any function names containing the words you type, maybe something like you suggest where we show 'maybe you meant this?'.

more ▼

answered Mar 11 '14 at 02:45 AM

avatar image

ue4-archive ♦♦ STAFF
49.9k 3662 1989 9113

avatar image ue4-archive ♦♦ STAFF Mar 11 '14 at 02:45 AM

I could see it returning a lot of unhelpful functions if you were doing searching in the same manner (substring matching). Did you try using a different matching algorithm with the tooltips? For example, full word match, or "(any word) begins with...", either of those may work a lot better at returning fewer useless options.

Yeah, if you fail to find any definitely showing the separate list of 'maybe you meant this' is a must have. I'm a big fan of having the tool teach the user how to use it.

You may want to begin showing those options once the list of suggestions drops to a non-zero number. Just in case the matching system finds a match that the user doesn't care about, but can't make go away.

Custom keywords is a solution, but I would resist pushing the data problem back onto the user to solve. If you find yourself forced down that path I would recommend augmenting the keyword system with an auto discovered keyword system. An algorithm like TF-IDF could help you auto-discover the 'important words' in a tooltip, and use that as a backup unless the user has provided a custom set. (note: show label with auto picked keywords). Or based on the tooltip, present the TF-IDF/other suggestions as buttons they can just click to add to the list, or type one in custom.

I <3 Tricky Problems :D

avatar image ue4-archive ♦♦ STAFF Mar 11 '14 at 02:45 AM

That's a good point. The search algorithm has a huge impact on the quality of the results. I'm always disappointed with most apps' help-search functionality, which is often substantially worse than just doing a Google search on the same keywords.

avatar image ue4-archive ♦♦ STAFF Mar 11 '14 at 02:45 AM

For now we added the ability to add keywords to functions, which will be matched in the same way as the function name. But I do think your idea of a more 'speculative' match for comments is cool, I'd like to investigate this later!

avatar image ue4-archive ♦♦ STAFF Mar 11 '14 at 02:45 AM

Maybe add in the EventGraph's find field UI a little toggle-o-slider that lets users decide if they want to search all comments, comments matching variables or functions (or whatnot), or no comments.

avatar image ue4-archive ♦♦ STAFF Mar 11 '14 at 02:45 AM

Thats another interesting idea - making it easier to find the function you are looking for is clearly something we will iterate on in the future. Did you have any other examples of functions that were hard to find?

avatar image Macktek Sep 10 '14 at 04:44 PM

It makes sense to simply search the tool tips. Just add these options: [X] search tool tips after [n.n] secs.

Allowing keywords is also fine but then the onus is on someone to keep these active and up to date.

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question