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.
- 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 https://docs.unrealengine.com/latest/INT/Gameplay/HowTo/UseTimers/Blueprints/index.html 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.
- 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
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.
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.