Things I wish I knew when I started with Unreal Engine

UE-1

The road to learning Unreal Engine is often a massively enjoyable one. The whole engine is very much geared towards being user friendly and in many ways intuitive, with a path to success for people who do not have a background in coding.

That said, there are some core elements which are not necessarily intuitive and take time to learn. There are also a range of shortcuts to achieving a desired outcome built into the engine itself which can be massively helpful in terms of saving time later on and some common pitfalls to be aware of that can save time bug fixing later on.

I thought it would be a good idea to share some hot tips to people who are just past the beginner stage – that know how to do basic things but are looking to improve the way they work. These tips are designed to help them level up slightly and get off to a better start getting to understand how the engine works.

1. Don’t Overload Your Project [a warning about assets]

UE-2

A very common mistake for people setting out on their first real project is buying assets and then porting them into their project. In some cases this can be totally fine – having a base to start from can be a very empowering feeling, but there are some things to be aware of.

If you are using a blueprint system or plugin, you will need to take some time to learn how it works. Read through the documentation closely and dedicate time early to understanding or you may well use it in a way that isn’t intended (and break the mechanics), cause a bug later and have no idea how to fix it or face problems at build time. Playing around and trying to break it, then making sure it fits the scope of what you are trying to achieve is a good place to start. Until you feel totally comfortable with it, it probably shouldn’t be a core part of your project.

If you are downloading an asset pack, then FOR THE LOVE OF SUPER MARIO don’t just hit ‘add to project’ and add it to your project. I know its tempting. I know there is usually a demo level you can work from. Still – don’t do it! The aim is to improve and understand, not to cut corners.

Instead, create a new project and add the asset pack to that instead. Work out what you need. Draw out your level on paper (or whatever works for you) then migrate the assets you need to make that level you drew out – the most basic version – and get to making that first.

Moving all the assets and bloating your project early on will slow you down significantly. That’s not to say you can’t do more later, but help yourself in the beginning and keep your scope nice and tight and don’t get overwhelmed by how large the project is suddenly.

If you have already done this and have an overwhelming project, then just select the levels you need (and any actors you need if they aren’t already in the level) and then migrate them to a new project. Remember to also take any character animations with you. Tidy project, easy to find things.

Adding new items can also promote concept creep – the ‘oh that’s cool’ effect, where the scope of a project changes based on a new idea. That’s not such a bad thing in small amounts but a large amount of concept creep can massively increase the scope of the project and make it untenable. For new additions, make sure you think about how it changes the game in the broader sense and don’t take on too much!

Additional Notes:

I advise adding all your animations to one skeleton where you can in a global animations folder where possible. This saves time having to track things down when you migrate and can also be very useful when creating child blueprints with montage variables (rather than creating lots of characters and doing them all manually).  

Use Colour! To help find important files I like to colour code my files based on the type of assets – eg. Blue for Blueprints, Light Blue for Static Meshes, Green for materials. Just right click on the folder and choose ‘Set Color’.

2. Use Demo Projects to Learn [Use the learn tab]

UE-3

I’ll be honest. I didn’t do the Unreal Learn tab thing to start off with. I did online courses first and actually made complete demo projects, then googled any gaps in my knowledge. This worked for me.

Later on, I did start using the Unreal Academy and I have to say it isn’t bad – its worth a look if you haven’t. For me though, one of the most important things I discovered was that Unreal provide sample projects to learn from. They cover a range of genres and activities – from complete game loops like the Action RPG and RTS Demo.

View the free learning games here: https://www.unrealengine.com/marketplace/en-US/content-cat/learn/games

The Unreal Online Learning Portal has courses specifically there to support these projects which you can access for FREE, helping to show how they were made. I highly recommend you download the projects, look at them, play them, understand how they work and watch the videos which help show how they were created and what the designers were going for. It will give you ideas and gear you towards what it takes to complete a project to the point of testing.

Unreal Live can also be a great resource for things like procedural generation and examples of how to use features which require some insight and understanding like level actors, unreal plug-ins and advice for porting to different devices. Personally I find Unreal Live can be more difficult but has some really valuable information. As a final note, beware what guides you follow – there are LOTS of poor teachers out there that will teach bad practice – Unreal has Authorised tutors who have to meet certain criteria, I recommend learning courses from them!

3. Understand How the Engine Works [optimisation]

UE-4

C++ is not easy. “The C++ standard is 1151 pages; that includes 430 pages of language definition and 770 pages of standard-library description. The size of the language definition is within 5% of the language descriptions of Java and C# (measured by page count).” – Richard Kenneh

The Unreal Engine is tasked with taking this massively complex language and translating it into something visible and useable. The ways it achieves this are sometimes clear and sometimes – not so much. Not everything is accessible via Blueprint alone so knowing what is possible and understanding what things cause the engine to work very hard is critical to problem solving.

The biggest issue I have found is pinpointing those areas which ask a lot of the engine and working to implement a better and more efficient solution. I should say that I am not a programmer, and that finding efficiencies is the bread and butter of programming. Luckily Epic Games and the game dev community have taken it upon themselves to make sure that even I don’t make giant mistakes in this area.

My core advice is PAY ATTENTION TO TOOLTIPS and learn to use optimisation tools.

There is a solid course on optimisation in the Epic Games Training Online Learning Portal called ‘Unreal Tools for and Processes for Optimisation’ which I recommend you check out as well. Pretty much everything  in the engine has advice on how to use it, and while that’s not always viable depending on the scenario, a little bit of reading into documentation or forums can go a looooong way!

Three big mistakes to avoid:

Using tick for Cast or Loops

A cast is an expensive two way process. A loop is a bundle of tasks grouped together. If you are doing these on a tick then you are asking a lot from your machine. As a project scales from very small to large this problem will also scale if unchecked.

Overusing Render Targets

Render targets can let you draw pretty much anything to a material. They are most often used for animating UI and deformation of ground materials. They are also expensive in terms of resources. Ensure you don’t have complex render targets active in the background!

Unnecessary Lighting

Lighting is a whole topic in itself. Understand how your scene is being lit and why you are using that approach. Some key things to note are that static lighting (ie baked lighting) is less expensive than stationary and moveable lighting and there is a limit to how many times lighting can overlap.

4. Stay Humble [advice about sharing your projects]

UE-5

When people start out with game design they can often be very enthusiastic and join online communities. This can often be a very rewarding and empowering feeling, however as a word of caution I would just say to keep your content short and sweet. Quick videos, questions which YOU HAVE ALREADY GOOGLED AND FOUND NO ANSWER FOR and asking for feedback on the most specific elements you can get to will yield the best results.

If you are showing content that is fully made by you, great – but if you use models, music or systems designed by other people then make sure you name check them and give them the credit they deserve! You will get more respect that way and a community that works together is one that works for everyone. 

RE: Posting content – Trust me when I say that if you ask very basic questions or put out content which isn’t very good, then you can’t expect to get a positive response.

Sometimes content you are really proud of goes unnoticed – don’t be disheartened! Be proud of what you have accomplished and sooner or later you will find your place and get the recognition for your hard work!

The Game Dev community can be brilliant, but in my experience it doesn’t have much patience for hand holding – so keep on working, keep on sharing and stay humble!

5. Stay Focused on Learning [everyday is a school day]

UE-6

My own route through gaming has been primarily to learn. When I am having problems with motivation or the idea of judgement that will come from someone playing my game, I just remember that learning game dev is about having fun through learning to do new things.

This has been a huge motivational force and a guiding principle in deciding if I should grind through a project I’m struggling with or take a break and learn something totally different then return to it with a fresh outlook. I would also recommend reading books, such as Level Up by Scott Rogers and A Theory of Fun by Raph Coster – you are not the first person to design games, learn from their mistakes where you can!

Level Up gives a great insight into tracking what people have done before and the different solutions to problems in all areas of Game Design. A Theory of Fun talks about the decision making process when making a project and deciding what is important to the end product, plus it’s a fun read!

I wish you all the very best on your own journey!! Just remember that Game Development is NOT a sprint, and the faster you go the more corners you will cut. Make something you love totally, don’t compromise and be brave when asking other people to test your game – its only then that you will have an idea about the direction to be going in!

Got a project you need help with? Just add your details and i’ll be in touch!