How do you find working with UE4?

I’m working on a game in UE4 and have hit a few hurdles along the way. I’d be very interested to know how everyone else has been finding it. Who knows, maybe i’ll write an article about it. You can PM me or post here, whichever you prefer. Here are some of the things I’d be interested to know about my fellow forum browsers:

  • What is your general experience level with programming, as well as UE4 (are you a professional coder? hobbyist? Used UE4 before?)
  • How easy has it been to find information? How useful is the official documentation? What do you think of AnswerHub vs forum? How much time have you spent reverse engineering the source code to figure things out?
  • Bugs - Have you found any? How does it compare to other software.
  • Updates - have they been a pain due to breaking changes, or generally good due to better features?
  • Productivity - From a coders perspective, do you find you make reasonable progress? Do you find yourself taking longer/shorter to get things done vs other engines?
  • General Pros and Cons - What have you loved or hated? How have you found the experience?

Any other general comments are welcome!

Couldn’t even start using it. No refactoring, online documentation is out-of-date (mostly), forum users are agressive against the newcomers (from any language, not only managed).
Very hard to find reasonable programming documentation (wiki pages are out-of-date or out of sync in different versions each).
Updates seem promising (UDK4 seems to be the best option in the market currently), but they only focus on scripting (and blueprint is slow to ‘write’).
I’m new to using large engines and I started developing on both UDK4 and Unity5 at the same time, just to see what engine I would stick to. In Unity I could make everything and had fun making it but the entire engine seems like a jerry-rig. And they seem to what to take your money every step you make.
In UDK4 I could code some starting stuff and try some of the scripting but I couldn’t go far at all. The feeling is that they are trying to include indie market but forgot that their engine is huge and quite complex (professional). I don’t have a team or resources to hassle with many of the problems I’m having. Can’t buy VAx. VS is way too big. C++ can become a poison. Can’t explore the engine using code suggestion (intelisense is as good as a rock).
I loved the new editor but overall, alone, I just can’t find a way of using UDK4. Its just too big and too complex for me. I can handle C++ (I’m almost finishing my computer science degree, and coded since I was 14) but not at this level without good powerful helping tools. If I could at least use a better IDE… I mean, even code::blocks have generate stubs. Eclipse supports some level of refactoring.
Anyway, just wanted to express that I would LOVE to use UDK4 but I’m having too many problems with it.

Hi , I must admit that my experience has been fairly painful as well - in particular the documentation is very superficial, and your only choice is to reverse-engineer the engine code. Even then though functions like AttachTo and GetOverlappingActors don’t actually do what you would think, so I’ve found I spend most of my time running experiments to try and figure out how things work, rather than just reading documentation. Then you run into all sort of gotchas.

As a programmer I feel like a second class citizen to the blueprints mob (boy I hope things are better on their side!). No-one really seems to be talking about it though, and I’m trying to figure out why. Maybe it’s just me, but it feels like a huge secret people are trying to avoid.

If you love UE4 - tell me why!

sorry for unity guys but i used for 3 years and of course is cool but is a tool, unreal seems for me a better choice. if you ask me, is because blueprints are lots and lots better for game prototype, really blueprints are c++, i recommend you watch all the blueprints tutorials first in the youtube channel, all blueprints inherit from c++ classes even you can right click on whatever node and in some option you can see the code, pretty, in c format.
when unreal was release the general idea was and remainds for common users, this mean you dont need really touch c++ for a single game. and i think is true, BUT is on development yet, some users have betters solutions for some tasks. and of course is c++ you have absolute control about ALL.
My experience with ue is very good i really love, even i promote the use with my co workers jeje
really try blueprints before c++ source code and i promise, you will love it

The below is going to sound very fanboyish, and I understand that compared to some, I seem to have had a very smooth experience. I rarely experience any kind of crash unless its caused by me (But this could also be that I don’t use rely on blueprints, except to prototype), and I find performance to be very good, but then again I am building a game for the next gen of GPU’s.

I have around 15 years experience in programming, am a professional programmer.

I dont tend to use the documentation very much at all, this is not due to it being incomplete or missing or anything, I just find it easier to look through the existing code base to learn how things work. I only really use answerhub with issues I cannot solve myself. I have no qualms with modifying the engine source to resolve any issues I run into.

Of course just like any other piece of software, I have ran into bugs, but not like other pieces of software I have used, I can fix these myself, which I generally end up doing.

4.7 was a bit of a hiccup for me, having a project that I have been running since 4.2. It has been smooth transitions till I hit 4.7 when I had a few fairly sizable issues occur that were also very hard to reproduce to show Epic. 4.8 has mostly solved these for me, and that was a fairly smooth transition.

I have my good days and my bad days, just like anything else. Since I make a lot of engine modifications, I tend to find myself sitting there waiting for compilation to finish. Modify one entry in a header and then wait 20min for the compile to finish. But thats what I get for modifying the engine. Most of my game changes occur pretty quickly. My game is about 90% C++ and 10% blueprints at this point.

I have found the experience great, I have been wishing for a full source engine of this calibre for a long time, using UDK I always found myself hitting limitations that I could not work around. Now all those limitations have fallen down, and I can really do what I need to do. Obviously there are cons to go with this, but a lot of them I end up fixing myself. ie. For loops/Texture arrays in the material editor (Solved). And sometimes I just wish the code base was a little more commented so that I can determine the reasoning behind why they did a specific thing, but all in all, im very happy with the engine.

  • I’m curious what modifications you’ve had to make to the engine, could you describe a few?

Lets just preface this with, my game is based around the concept of modding, so I wanted pretty much every asset (except things like materials, blueprints, etc.) to be interchangeable without having to through any kind of cooking process, or even have the editor involved. So most of the changes were to accommodate loading assets directly from disk. Others were just features that I felt that I could use somewhere along the lines ie. Texture arrays. And finally other changes were mainly to rectify a bug (I usually always look to the master branch first, if there is a commit that may fix the issue, I will cherry pick it into my branch, so even tho i run 4.8p3 at the moment, I have fixes from the master branch merged in).

Some things have been really small changes just to allow a little more flexibility. Like adding a few switches around the rendering that allows me to know from a scene proxy wether or not the current pass being rendered is a shadow/depth or custom depth pass, allowing me to adjust translucent meshes materials to masked, to cast standard shadows (rather than translucent shadows). This currently is broken due to the caching of passes in 4.8. Looking for alternative workarounds.

Portal rendering, which required some significant redesigns of the render path, to allow me to retarget the view and render to a stenciled out area of the buffers. and also perform visibility checks from the new location - Occlusion culling currently doesn’t work on the stenciled locations.

Volume textures (Texture arrays) as actual assets

For loops (with addition and multiplication per iteration - Only useful sometimes) and Texture array sampling for the material editor

Extra output pins for the material editor, to support some custom data that I wanted to pass through to the shaders.

Dynamic loading of meshes from HDD into levels - Without having to go through the content browser import process. They can still have uassets allowing for thumbnail rendering. Working on a custom content browser that will show my meshes without having uassets. and same for textures (DDS straight from the HDD)

My own tag buffer implementation (before I saw the excellent work of Temaran). Very similar in design actually. I have a tag value that is defined per mesh and written to the buffer, and then this value can be used to define specific effects during the post processing stage for specific meshes.

Looking into volumetrics (But may just wait to see what NVIDIA have to offer with their turbulence package). and Custom geometry decals (aka. Cryengine decals). and interactive foliage for any number of actors. These are mostly a nice to have, not actually necessary.

Ah, yea, I would expect engine modifications for those items. Texture Arrays as actual assets was something I was looking into as well. Cheers, was just curious.

I think it is amazing, it has a steep learning curve and the framework sometimes feels constrictive and rigged but if you reached a certain level, the engine is just empowering.

I have to admit that I am using Unreal Engine since the first UDK days (the game framework mostly stayed the same), so I can’t really tell how the engine feels for a real beginner.
When it comes to problems, I find the documentation, forums and AnswerHub useful. If you are looking for code specifically, you might feel left alone at first but it is important to understand that the framework is pretty much the same for Blueprint and C++. So every bit on Blueprint documentation is also useful for C++. It is only a different syntax really.
Of course you have to spend time digging through the source sometimes but that is true for every large framework you are working with.

General Pros and Cons:
Unity5 does a nice job of getting you started. Programming is really easy. Write a script, drag it onto an object -> you are done. Unreals way is bit more restrictive and requires you to follow some steps and use some set framework classes, but that is not a bad thing. Once you climbed that hill that the framework is, you can just do whatever you want. In addition to that, large projects feel a lot easier to maintain and manage compared to Unity. Unity’s approach just does not work well for large projects in my opinion.

and Denny (or anyone else!) - do you think it’s possible to make anything substantial without having to modify the engine code? Ie, what are the odds of writing a game using just the standard binary release?

What is your general experience level with programming, as well as UE4 (are you a professional coder? hobbyist? Used UE4 before?)
C and C++ programmer for over 30 years. First time with UE4 or any Unreal engine. Professional coder, now the lead programmer on this current project.

How easy has it been to find information? How useful is the official documentation? What do you think of AnswerHub vs forum? How much time have you spent reverse engineering the source code to figure things out?
Fairly easy, although there are several C++ functions with little or no documentation. But you can always go and dig through the source. That’s difficult and time consuming, but it gets the job done. I search AnswerHub for almost everything, then try the forums for whatever I can’t find there, then finally resort to starting my own thread.

Bugs - Have you found any? How does it compare to other software.
Not really any true bugs, but I have run into multiple features that aren’t yet implemented.

  • Generic joystick support – I can’t believe such an advanced engine doesn’t support simple PC joysticks. I’ll probably resort to using a plug-in that I found here on the forums.
  • Reflections on transparent materials – Not a really big deal, but it would be nice, and it appears that support is coming for this in 4.8
  • Attached actors do not collide – This is a huge problem for my project, as the entire game is about building things. I lost several days just figuring out why this wouldn’t work, still have no decent workaround, and don’t even know if a future version will address this.

Updates - have they been a pain due to breaking changes, or generally good due to better features?
Updates have been very smooth and have not caused any problems. In fact, I’m hoping that 4.8 happens a.s.a.p.!

Productivity - From a coders perspective, do you find you make reasonable progress? Do you find yourself taking longer/shorter to get things done vs other engines?
Great question, and something I’ve been asking myself very often since switching to UE4. I’ve used Unity, Irrlicht, Ogre3D, and probably a dozen completely custom in-house engines built directly on OpenGL or D3D. I made the jump to UE4 because it simply looks better, in terms of visual effects, than any of those others. Plus, I’m tired of doing the full-custom thing. There’s just no need these days. But what I do miss about those other engines (and Irrlicht really shines here) is that they were distributed as simple libraries. So, for example, in Irrlicht, you add some code in Visual Studio, press “Run” and your game just builds and runs. It makes sense. The way UE4 is completely centered around this editor thing is awkward to me. I barely use any of the editor features, aside from materials and particles. But this strange distinction between playing in the editor and a “packaged” build took some getting used to. And I don’t really like the way that sometimes, I can’t just hit the “compile” button in the editor, I have to close it and rebuild and then re-launch it. And the difference between “cooked” and “uncooked” content is a little cumbersome, as well. I would prefer to just have a material-editor and a particle-editor and a whatever-else-editor as standalone tools that I could just run when I need them.

General Pros and Cons - What have you loved or hated? How have you found the experience?
Well, those gripes above are very minor gripes when you consider the unbelievable overall quality of UE4. I can’t really complain about the price, either. And on top of it being both the best and the cheapest, they give you the source code. So, yeah, I’m pretty sure we’ll be sticking with UE4 for the foreseeable future. And it only continues to improve. The frequency of major updates that Epic makes has amazed me since I first started following them.

Absolutely! I don’t see many reasons to fiddle with the engine source for making a game. Depending on your specific needs there might be a few tasks that require engine source (the rendering pipeline comes to mind), but thats about it. 99% of the projects could be realized without that.
You can do pretty much everything else in your game module.

In addition to that, UE4 plugins are very powerful and once they take off in the marketplace the engine will benefit greatly.

What is your general experience level with programming, as well as UE4 (are you a professional coder? hobbyist? Used UE4 before?)
MSc in computer science, I started working professionally with UE4 two months after using it for the first time.

How easy has it been to find information? How useful is the official documentation? What do you think of AnswerHub vs forum? How much time have you spent reverse engineering the source code to figure things out?
It has been very difficult to find useful information all from one source. At the start I did not know where to look, AnswerHub or forums or the comments below the tutorial vids on YouTube. Right now, I’m just using Google searching for things like “ue4 c++ spawn actor”. Like you said AusPaco reverse engineering plays a big part too. I find though that the ‘commonly used’ C++ classes in the engine (like GameMode, PlayerControler) are well commented so that is great, but of course not so useful for non-coders.

Bugs - Have you found any? How does it compare to other software.
I have encountered several bugs between 4.5-4.7. They were usually fixed the next 4.x version. When posting on the forums there are often people who encountered the same bugs and are very willing to share their own workarounds. I haven’t worked with a recent version of Unity or CryEngine so I can’t really compare.

Updates - have they been a pain due to breaking changes, or generally good due to better features?
So far I haven’t had to change my code much due to updates, only sometimes due to function signature changes. One exception is the foliage system which has receives some restructuring, but the improvements there were worth it.

Productivity - From a coders perspective, do you find you make reasonable progress? Do you find yourself taking longer/shorter to get things done vs other engines?
I have no complaints about my productivity in UE4.

General Pros and Cons - What have you loved or hated? How have you found the experience?
Being a programmer I work mostly in C++ but I love the blueprint system for being a way to make things easy for designers and artists that you work with.
I love the replication tools in UE4, which makes writing multiplayer code so much faster than having to manage your own socket connections and binary streams.
I dislike the unpredictability of blueprints assets sometimes and that the engine can crash sometimes when working on blueprints. Though it happens rarely, an editor crash with unsaved changes can be very dangerous. For example, if you change function names and variable names in blueprint A, blueprints B, C and D that reference blueprint A are updated. But if the editor crashes when you have saved A, but not BCD, then the next time you start there will be errors because BCD are expecting the old naming of blueprint A. This can be annoying to fix sometimes. I now save all blueprints after every small change, but its a shame that its necessary.

What is your general experience level with programming, as well as UE4 (are you a professional coder? hobbyist? Used UE4 before?)
- I started programming like 3-4 years ago with Unity java/C#, around December last year is when I did the move and switched completely to UE4 C++

How easy has it been to find information? How useful is the official documentation? What do you think of AnswerHub vs forum? How much time have you spent reverse engineering the source code to figure things out?
- Pretty hard to be honest, most of the tutorials and such are outdated, the documentation is somewhat cryptic, I barely use the forums/answerhub for my questions, I just prefer to solve them doing reverse engineering and trial and error.

Bugs - Have you found any? How does it compare to other software.
- Plenty, but nothing that detracts from the overall experience, it’s a 2-3 year old software so it’s expected.

Updates - have they been a pain due to breaking changes, or generally good due to better features?
- Some framework changes with each update but it hasn’t been hard moving my games from version to version

Productivity - From a coders perspective, do you find you make reasonable progress? Do you find yourself taking longer/shorter to get things done vs other engines?
- I love the workflow in UE4, I find myself thinking ideas and implementing them quickly in C++, the workflow is way faster than Unity, counting out the fact that Unity didn’t need to compile when doing changes, but the overall workflow is faster and more efficient.

General Pros and Cons - What have you loved or hated? How have you found the experience?
- I love Unreal Engine 4 over any other engine I’ve used before, developing my game has been an awesome experience and I really can’t find any cons to the engine. I’ve used Unity for 3 years and I’m not even thinking about opening the program again.

Seems like the community around Unreal 4 is mostly C++ developers and people with experience. Some new guys are struggling still… I gave up. I’m not using unity 5 (with the amazing new UNET).
I love unreal because it is a power horse, AusPaco. It is relatively light and offers the best in the market, AAA, to indie. I would love if Unreal actually start to care about us really new indie alone with no experience guys. I would read stuff and code more if I didn’t had to digg through the framework. This kind of learning, reading through code, only works well when you have experience, otherwise you’ll find your self reading the entire engine searching blindly for a mecanism or something.
Blueprints seems nice but they also seem slow and some said the can clutter very fast. They don’t seem like real code, even if they map to c++, I mean does it even make sense to make an entire game using only blueprint?