First of all, I’d just like to say that for the most part, I have really enjoyed Unreal. Obviously a lot of time and effort has been put into this fantastic tool and I am eternally grateful that such a thing even exists.
The only two things that come to mind that could use some improving are the following:
- An empty project should mean EMPTY. My experience with this went like this: immediately disappointed that there is a giant landscape in the scene, confusion, asking myself if I ticked the wrong option, wondering if I should try re-creating the project and waste time doing that, delete the landscape, but can’t delete the HLODs, later on discover that the option to do that is presented when you build a level, save my level, go to bed, re-open Unreal only to see the landscape back, question whether I actually saved my scene or not, finally discover that you set the default level in the Project Settings, I also happen to clear out the option to load a specific level upon the game’s start (because I am frustrated at this point and just don’t want anything to load), which then leads to more problems when I can’t figure out why my level1 scene doesn’t have the objects I saved into it every time I load Unreal up, I later realize that it is a good idea to set the default game level to my level1 and the problem is solved.
But that’s not all: Once I get settled in and begin writing lots of C++, I eventually get around to spawning a camera and trying to do some line tracing from the camera to an object that I have set to follow the cursor. Wouldn’t you know that not a single trace worked. I finally realize that because my camera is sitting at FVector(0,0,0) that it just so happens to be sitting right inside an object called DefaultPawn0 that only spawns itself into existence when the game begins. This is intercepting all of my line traces. No wonder they were failing! But now begins the quest to figure out how to delete it or prevent it from spawning, which involves browsing many forum posts about how to properly delete objects in C++ and more importantly how even to get a reference to an object I didn’t spawn myself (all other game objects that I am spawning through my code are carefully stored in arrays and so are managed by me). So once again, this is a problem of an “empty” scene being not so empty.
All of these problems required lengthy solutions that could have been avoided had the scene just been drum roll …empty.
- When I go into full screen with Unreal, any fly-out menu I click absolutely tanks my frame rate to about 1 frame per second (File, Edit, Window, etc. And the Viewport options like Perspective and Lighting). This is not an exaggeration. I struggle to even be able to place my cursor in the right position to even click anything. The solution? Minimizing the window and dragging the corners to the corners of my screen for a pretend full screen effect. Even then, I can tell that my frame rate drops a little when I use the fly-out menus, but it’s a thousand times better now and is usable. Forum posts addressing this issue suggest that NVIDIAs g-sync or any program that potentially overlays anything onto the screen are the culprit. I spent a long time trying to track down any overlay settings in my AMD software, but it’s all turned off. And I can’t find any other program that potentially overlays that is installed on my system.
Both of these things impact new users the most. I think the new user experience is one of the most important to focus on because if it feels like an uphill battle right off the bat, a lot of people will just flat out give up. I am lucky to have previous experience with Unity, so I know what to look for, but this will definitely kill off some potential Unity converts that just don’t have the patience to deal with stuff like this.
- The forum’s white text on black is really hard on my eyes.
Thanks for listening to my feedback.