A simple plea. Documentation and feature fixing.

Please note that I’m a bit scattered atm. Lots of honestly stressful things have happened recently and I’m finding it difficult to gather my thoughts. Please forgive any attacks as I truly wasn’t meaning to attack anyone with this message. Additionally I’m sorry about the length of the text. The tl;dr is the title. (That is a joke c: )

Not documenting something pretty much means that until someone stumbles upon it and tells the world the majority of us have no idea that whatever is undocumented exists.

To me as a user new to 3D engines you may as well have written the entire Engine without using comments anywhere at all and saying “lol figure it out.” .-. Some of the documentation is a 6/10 and that’s passing. But I’m used to excellent documentation that answers advanced questions like how the function interacts with other things and odd quirks and whatnot. If Epic’s gameplan is to make money off of user’s success helping us learn faster would certainly improve my experience D:

For instance, this is what ARRAYS look like: Arrays

Not only does a similar page not exist, but 2D arrays aren’t even a built in variable type.

:l Epic, to me at least, is starting to be branded as a company that says “We’ll get to it” and never does. I stumble upon missing, broken, or bugged features all the time and most of the time I’ll find a post on Answerhub from 2014 that says “Added to the bug fixing stack” and it’s never fixed. If it’s fixed it pretty much just happened. And most of the time it’s only half fixed. shrugs Everything’s difficult I’m sure but I see a lot of new features coming out while many of the core features of the engine have been decrepit since apparently beta.

I say all of this because I care and I feel that everyone working at Epic cares too. A lot of Staff respond to threads asking questions and whatnot and get genuinely excited about what their users are doing. I want to see you guys succeed and I definitely want to be part of the reason why. But I spend SO MUCH of my time trying to figure something out only to find out that it’s bugged or broken and has been for years. It’s very disheartening. I’ve looked around several times and none of the other 3D Engines are even half as good as UE4, especially as someone who’s bought into the “Unity leaves out features on purpose to make money on them via store sales” conspiracy theory.

In summary, if I don’t know how to use a feature or if I don’t even know a feature exists I can’t use it or I can’t use it to its fullest potential. Additionally, a broken feature is better than a feature that doesn’t exist. 3/10 + 10/10 = 13 but 10/10 = 10 (yeah I know ignore that 10/10 = 1). I get it. But when there are holes in many of the features I’m using it makes me worry about my end product. Or if I’ll even get there. And to be honest I’m willing to bet that I’ve stuck around longer than many users who’ve tried to face this uphill battle. I’ve been trying for a year now. 6 months of that I was trying without any internet access and I had to drive into town 20 miles away to sit at a McDonalds to download webpages of your documentation + YouTube videos from other users in order to figure things out. Drive will get you a lot of places. There are SO MANY users that have made great games so it’s clear that this isn’t impossible by any means. But please. Epic. Documentation. If we have amazing documentation not nearly as many questions will need to be answered as it’ll be easily known how a specific button or feature is meant to be used.

There are a ridiculous amount of features that are pretty much:

Tooltip: Executes the Flub Flub in a specific way.
Documentation: Executes the Flub Flub in a specifc way.

Googles Flub Flub.
60% of the time I’ll find another user asking the question and getting a half baked answer that is passable at best. Not a how it works but more of a “Use it with this to do this”.
The other % I either don’t find anything at all because it’s a term unique to the engine or I have to REALLY dig. YouTube, guessing what the feature might be called, ect.

//Rant of ages.

I can answer a few of these / give reasons.

2D arrays don’t exist because UE4’s Reflection system doesn’t work with multi-dimensional TArrays. You can however, create a struct which contains another TArray, and make an array of those instead. In C++, you CAN make 2D TArrays and more - but only if you don’t care about reflection or garbage collection. Additionally, it’s often much, much faster to use a 1D array and write a simple accessor function to treat it like a 2D array. You can find examples of that all over stack overflow. There is a page on the TArray here: TArray | Unreal Engine Documentation

I personally wouldn’t expect Epic to tell you what an Array is like the page you have linked - there’s already enough pages on google out there that do that for you, and Unreals Types are not really any different to their regular C++ counterparts - they’re just more intertwined with Unreals’ core.

Epic is always actively working on Documentation and fixing engine bugs - but bear in mind that they have an agenda of their own too, and the engine itself is literally enormous. Some areas of it are up to 15+ years old and was probably never meant to be seen by anything other than insider eyes. Having used this iteration of unreal since ~early 2012 now - I can promise you that lot’s of stability issues and general bugs have definitely been fixed, and the documentation has come much further too! I don’t think there will ever be a position where documentation is done though - and I have been through the same frustrations.

As for not knowing about / being able to find features? Meh it just comes with experience like anything else - there’s no cheat-sheet guide to all the cool features in Unreal I’m afraid. The examples on the Learn tab are a very good place to start, because you can pick apart everything that’s on there. Frankly, I’d download them all and pick them to pieces - that IMO is one of the quickest ways to learn.

In regards to bugs, the quickest way to get them fixed is to submit repro projects. I’ve done that for a handful of serious issues I found and they were fixed within a matter of weeks or months (or days sometimes, if you’re using master branch). Unfortunately nobody ever really does this or understands why you should do it - and a description alone is often not enough to get a bug fixed. Making a repro case is usually half the battle and more when fixing bugs, so it helps to take the burden off of Epic in that regard because otherwise, you’re bug will just be low priority.

I mostly agree with the OP. I know maintaining such an engine and userbase is a grand task, but when Epic decided to step up their game (from UE3/UDK to UE4) it feels that the documentation/support and completeness just didn’t make it

I don’t think he needs to know what 2D arrays are. it was just an example of a good documentation page

Try months and years with repro steps and full bare projects. that’s the experience for me.
most of the time I find it more useful to bring the bugged topics up in the forums so that people will look and reply at my answerhub post, which triggers more ‘community interest’, making my issues worth of some attention :eek:

I agree with the last sentiment, I too tend to have better luck posting on the forums than answerhub.

To be clear I’m not trying to say that Epic needs to have pages for Arrays or anything relatively simple such as that. I don’t think that anyone getting into games should start with a 3D engine and I’d go as far to say that UE4 would be a poor place to start for a vast number of reasons.

But there are tons of features that exist in the engine which I wish had REALLY solid documentation. I’ve downloaded all of the projects in the learn tab and have long since torn them apart and taken solid notes on it all with tagging and whatnot. I’ve done this with projects I’ve found uploaded to YouTube and whatnot as well.

An additional request would be offline documentation. I realize that it would have problems but it can’t be worse than no documentation. Where I was living there simply weren’t any providers (an edge case I realize) and not having any access to documentation was pretty bad. To be frank if I wasn’t so broke there’d be no reason for me not to have had a data phone plan. I don’t know if this is even “important” ; I just know that I used it extensively for GameMaker to learn unique math functions to create scripts of my own. Quite simply I’d maxed out the GM Engine and was creating my own systems and “functions” in order to better support the game I was making. In order to do that I did have to find out if certain base systems existed in order for me to make those.

For instance, one such creation was a health bar (moved with player/boss) that had particles which simulated bubbling, poisoned health. In order to do this I needed to learn that I could use something called “Surfaces” (like a new canvas) to create a mask which I could specifically resize such that all particles drawn would instead be drawn to that Surface, cut off, and then that surface drawn to where the health bar would be. Without knowing exactly how surfaces work I couldn’t have figured out that I could use them in that way. And from there I realized they could fuel a gameplay component. Rather than chains for a morningstar I could use a “Red Lightning Soul Tether” to better express the theming of the boss.

Innovation, even if it’s not “new” is something I greatly enjoy. I love when the software I’m working with has depth. UE4 definitely has depth but often times I stumble upon it. I don’t seem to be able to just LOOK for features on my off time and think “OH!!! THIS SOLVES A PROBLEM I DIDN’T REALIZE I HAD!” ; At least not as easily. I can still do this but it’s just not as effective if the documentation isn’t thorough.

What’s even better is when FlubFlub doesn’t have a tool tip, not even in the doc.

A similar page does exist and I think I know why Epic tried to avoid too many built in types but there are alternatives to 2D arrays like DataTables for eg. Ive only ever messed with resizable arrays as more of a fun thing, most designs I do tends to end up as some sort of ordered list rather than array but thats just more my experience. I find it faster if you prioritize lookups and things like that (insertion sort) and pushing data into a dynamic table would be alot slower than a fixed size table, even though the fixed size occupies memory Im typically more than happy to reserve that memory for the task :cool:

Not gonna lie, finally got started in C++ after partially solving (see: workaround) a bug that was preventing me from using C++ in UE4 and finding a solid video tutorial on PluralSight (Sololearn was okay but just wasn’t answering my questions) and I have come across better documentation in C++ than in Blueprints. To be frank, the more that I learn about C++ the more I understand why UE4 is “weird” compared to an engine written in Delphi.

Well thats good to hear :slight_smile: Ive been dabbling with C++ for years but Ive never committed 100% to it, I was just never happy even back with Quake 2 and Half-life when they moved from QuakeC. I kinda went to Python after that and I have toyed with Lazarus more recently but Im still not a fan of the IDE, VS2015 is heaps faster in my experience but I still prefer to work within the engine, especially now I have an option to cook to CPP :slight_smile: Those same concepts are accessible from CPP, you have TMap I think it is :cool:

C++ Is going to be my first language actually. I’m liking it and the more I learn about it the more I learn about Unreal. With Blueprints I learned about Unreal’s API and a bit about C++ as well. So all in all not diving into C++ from the start like I initially tried to do probably saved my 3D career. Or whatever you want to call it. Because at the time Unity had disappointed me so much that I wrote it off entirely. There was a lot of disconnect between how I thought things should work and how they actually worked. Processes seemed poor. Core stuff still isn’t there.

So I decided to try one more tutorial. And I got super lucky. “Twin Stick Shooter” had JUST been released THAT DAY and it was that tutorial that finally connected the dots for me c: And ever since then I’ve been picking up breadcrumbs here and there and trying to get used to the plethora of 3D tools one needs to learn in order to make the game in the first place.

I have worked with other big programs (though not as big as UE) where the community did a lot of the documentation, using a WIKI, which worked very well. I know UE has a wiki, but that seems more like a collection of random tutorials to me.
What would be helpful at least is if the api documentation and the blueprint node reference would be linked to a wiki. For example, i’ve figured out some stuff from the source code on some specific unreal C++ functions and blueprint nodes that nobody was able to tell me, and it would be nice if I could add this new knowledge to a specific function or blueprint documentation easily. I did post the answer to my own question on the answerhub, but it sort of gets buried in all the conversations there, and if you don’t google the right terms you won’t find them easily. It would be easier if people looked up this function in the official API doc / reference and would find my comments on the exact behavior of that function/node there…
Wonder what other people think of this idea… or is this already possible and I just don’t know it?