Misc Suggestions to Lower Barrier to Entry

I’ve only been using UE4 for a couple of weeks, and this list is basically a collection of things that have proven to be stumbling blocks and barriers to entry using UE4. Most of these could be sorted with better documentation, and where I can, I will make suggestions on better wording.

  1. Timers - Timers were a very confusing subject for me starting out. The primary reason is because their is no real explanation for them in the documentation, just an example. Consider adding this blurb (or something similar) at the top of either Using Timers | Unreal Engine Documentation or or both:

“Timers are functions that will call another function at given intervals. A timer may be set directly in an event or as part of a function graph. The Object in the Timer Parameters is the target which the timer will be set on, and the function parameter is what function will be called when the timer fires. The timer does not need to be connected directly too the events that it is firing and will not work if connected that way.”

Note - As of 4.5, Timer Functions MUST use the actual function name, not the reader friendly version. This can be found in the tool-tip when mousing over a function in the My Blueprint window.

  1. Casting - As of 4.51, casting nodes will not show up in the context menu unless you toggle on the Experimental Menuing System (Edit>Editor Preferences>Experimental>Use New Blueprint Menuing System). Note: Toggling on this value will cause Interface Generated Events not to show up in the context menu, so you may need to switch back and forth.

The casting system is confusing as hell to new users, and the explanations in the documentation are even more confusing. Can’t speak for anyone else, but I never see the _C reference anywhere in the context menu, and I still have no clue where that actually comes from. Which brings us to point #3

  1. Context Menus - Aside from the aforementioned issues with the context menus, they are counter-intuitive. When you toggle off the Context checkbox, you LOSE OPTIONS? For the love of all that is holy WHY? Simple intuition: Context Checked = Only see what should be dragged off this pin. Context Unchecked = See every bloody option under the sun whether it fits or not. The current system reminds of the old MUDs where you had to play the “Guess the syntax” game (given a pair of boots in a box: “get boot from box”…no…“get boots from box”…no…“get shoes from box”… “get pair of boots from box”… no… “get workboots from chest”…SUCCESS!! wai…waa…) or old point and click adventures where you had to somehow guess that dropping the inflatable rubber duck tube on the duck tape and then dragging that onto a close hanger and dragging that onto a lever out a second story window would somehow drain the city’s river system(longest journey references). Please use simple logic… Context Checked = Only see what should be dragged off this pin. Context Unchecked = See every bloody option under the sun whether it fits or not.

  2. Litmus Test for documentation: Guys, as someone that has written lots of technical documents and work instructions, you need to learn that all of your documentation needs to pass a very simple litmus test. If you can not give your documentation to a person that has never used your software and them be able to successfully reproduce the process, your documentation is not good enough. Sounds stupid. Sounds like you have to dumb everything down. In short, yes, you do. For the people using your kit, time is money, and wasted time is wasted money. Wasting time trying to figure out what you mean is wasting money. It matters.

Could also add re. timers that if the given time is 0, the bound function won’t be called at all (as opposed to instantly, like you might think).

I’m not seeing the issue with the ‘cast to’ nodes not appearing in 4.5.1, is it possible it’s a bug of some sort?

Yup, it was a bug

The bit about it not showing up was a bug in deed. It still exists in 4.51 and has been verified by staff. I’m sure that will get fixed. Casting was still confusing as hell when I first started.

I would also add these suggestions:

  • Graph Lines:The ability to place ‘pins’ along connection lines to constrain their shape/path in the editor graphs
  • Node Scaling:The ability to resize/scale graph nodes.
  • Variable/Function Organization:The ability to move variables/functions up/down in the variables/functions lists both in the BP Editor and in the Widget Editor like we can inside Structs/Enums.
  • The ability to create API style documentation files from Blueprints. Bonus points: It contains decent formatting and a .png screen grab of the enclosed nodes. Bonus Plus Points: Able to export said documentation to XML/HTML5/PDF. Super Bonus Points: Contains links to all used functions in the graph. Mega Super Bonus Points: Include a dockable ‘Document’ window that contains API information for any node selected in the graph that has documentation created for it.

This already exists. You can add reroute pins to wires.

Those are some interesting ideas. We already generate API reference pages for BP nodes in the engine. And we will have chromium support to potentially show HTML pages in the editor. Combined with the Blueprint snippet feature, it seems like much of what you want could be feasible in the future. :slight_smile: