UE4 is awesome. Epic’s tutorials are good but could be improved to be more competitive with Unity. Here’s how.
In preparation for an upcoming UE4 project, I just completed the 1st series of tutorial videos Epic Games recommends: Blueprint 3rd Person Game. While generally good, these lessons have errors and haven’t been updated in 2 years. Below are my corrections and notes on how to complete some of the lessons. I also wrote my advice for Epic on how to improve their tutorials - using best practices that any software company can easily adapt to deliver a more fun and efficient learning experience.
Any opinion may vary greatly depending on one’s background, so here’s mine:
I was a 3D Graphics Software Engineer on Autodesk Maya in 2001-2003. I did lots of contract Maya API and 3D physics programming in the years that followed, mostly in C++ and OpenGL.
In the past 3 years, I completed a few projects with Unity, e.g. Fortem’s Holographic 3D Op Center. At first, I spent 6 week-ends following Unity Live Training videos, some of which I completed with my then 6 and 8 years old kids to teach them basic programming, e.g. mobile games and platformers. I was very impressed with the accessibility of the Unity tutorials, and I think this is an area where Epic still needs to catch up.
First impression: UE4
I’m impressed with UE4. It feels very powerful, flexible, and the UI makes sense. (I also appreciated that much of the UI feels inspired by Maya so some of my old reflexes still apply.) The UI feels more cluttered than Unity’s but offers a lot more advanced features out-of-the-box.
So far I’ve been most impressed with the Blueprint editor - it’s exceptionally well designed. Much better than Maya’s old hypergraph back in the days, and miles ahead of the dozen visual programming interfaces I’ve dealt with.
First impression: Blueprint 3rd Person game
The author, Wes Bunn, speaks clearly and concisely, with no strong accent. His voice sounds friendly… I’d be happy to listen to more of his presentations.
In general, his explanations contained the right amount of information and technical details for a wide range of learners.
He provided good illustrations of some of the concepts, e.g. state machine:
Areas to improve:
Content should have been ordered to allow learner to try out features as they are being configured. E.g. configure hotkeys but don’t see it in action until ten lessons later. As the hundreds of comments in the Youtube videos attest, this greatly increases the risk that something will have been incorrectly configured and result in later problems that are harder to fix. It also delays gratification drastically, and reduces motivation to continue. I’m sure my kids wouldn’t have the patience to go through this specific video series for that reason alone. (I found the Unity Live training generally faster-paced and more interesting, both for me and my kids… although they quickly got repetitive after 2-3 series. I haven’t yet watched other UE4 tutorial series - hopefully some are more hands-on and faster-paced.)
Many lessons needed fixing for the most recent UE4 version. Still, it wasn’t that bad compared to the Unity tutorials that often required lengthy erratas due to UI that have completely changed. See below for my notes and corrections for this tutorial series.
Some explanations are too long. E.g. 08 - Intro to Animation Blueprints around 5min. In general, I think it’s best practice to only explain the essential quickly, then show how the feature works, and if needed, provide more details afterwards, ideally at the end of the video so it can be skipped by people who already know enough or care about completing the tutorials quickly.
The explanation of 2D blend space wasn’t immediately clear to me – even though I know how the math works for higher-dimensional blend. I’d recommend skipping it.
Lesson 11 - Animation BP EventGraph
In the EventGraph, you need to manually instantiate a “Try Get Pawn Owner” node.
There are a dozen “isValid*” nodes now. You need to pick the last Utility node in the very bottom (the only one with an interrogation mark icon)
I was disappointed it took until this lesson, 7 minutes in, to finally test the game so far. Way too long feedback loop. And of course there were issues due to missing or outdated instructions. At the 7min mark, in particular, no character showed up when I pressed Play - unlike in the video. It turns out you need to click “possess” for the character to appear. The video explains how to fix this at 13m00s. Even after I followed that procedure, I still needed to click “possess” or F8, then click the viewport every time. I guess this is by design but this should have been better covered in the video or in an errata section on that web page.
BTW if you run into more problems, you may want to review the comments in the Youtube video. That lesson alone has 169+ comments – all pointing out things that didn’t work – and things that may not work if you forgot a detail.
Here are more best practices that a professional organization like Epic should follow consistently across all tutorials.
Each tutorial series should:
Provide a total time for the videos in the whole series. Not doing so increases the odds that someone will get discouraged halfway through.
Provide a repository with the completed project, e.g. from github. That project should be updated every major release.
Each lesson should:
Last 10 minutes at most
End with an interactive test that demonstrate every change made so far. Students should never have to go back more than one lesson to fix a problem.
Include a link to a forum post where people can help each other fix their problems associated with that lesson. They shouldn’t depend on Youtube comments, manually googling and creating their own forum posts, etc.
Include in plain text, a list of the steps required to complete the lesson. That way people can easily (and quickly) revise the steps, repeat to get more practice, etc.
This list of step should highlight (e.g. in bold) any change in more recent versions of the video, ideally with screenshots, e.g. of changed blueprints
Doing these steps consistenly would take no more than an hour per lesson, and would collectively save thousands of hours of frustration from the students - preventing them from defecting to your more accessible competitors. It would be well worth it IMHO.