I've gone through the Unreal Engine source code and I found that they use their own container classes, for example an in-house dynamic array. But the C++ STL provides (almost) all the necessary container classes that will be required. So why do they spend time developing the same containers again? Wouldn't it be easier for the developers to use containers such as std::vector to write their code rather than trying to figure out how to do things using the TArray class in the engine?