Ugh, I Guess I Want To Move From Unity To Unreal (Dot Com)

Argh, something bad probably happened and now you're here. This sucks! Let's get you started on the right foot though.

I'm Joe Wintergreen, I'm an Unreal Engine generalist. If you want you can look at all my stuff.
Here is a bunch of helpful information for people new to Unreal whose experience is in Unity.

"Where do I start?" 

Read the documentation on the Gameplay Framework. All of it!

Unreal has a Gameplay Framework. Read the docs and get to grips with it. It's the right choice for every type of game. Don't skim it. Keep it on hand to read it again.

Get in a community of helpful folks. This will quadruple your Learn Speed.

There's Alex Rose's Discord For Former Unity Devs and there's also my discord, which you are welcome in if you don't be a jerk.

Hit up the Epic Online Learning Library. 


Here it is. Focus on the ones by Epic Games.

Download the latest Unreal Engine through the Epic Games Launcher.

Right now it's 5.3. In general, you always want to start a project on the newest version. There's also no reason to use UE4 anymore - UE5 is better and has everything from UE4.

Check out Epic's "Unreal Engine for Unity Developers" doc.

It's a pretty good initial "oh god what am I looking at". Here it is.

Read this whole page.

I know there's a lot of text here, but don't skim it! This stuff is important! There's a lot of bad info about Unreal on the internet, but not here. This is all gold.

"Just give me tips!"

Alright fine! Here's 20 minutes of rapid fire tips and a video about the Class Viewer (turn on the Class Viewer). And Chris Murphy's Video about Features You Probably Don't Know About.

I suggest watching these through immediately, even though it's a bit overwhelming, just to get a sense of what sorts of things are there, and then coming back and looking again later when you're more equipped to directly utilise the scoops.




"I have so many questions!"

Here are answers to some questions that are asked frequently.

I'm worried about this whole situation!

What's conceptually different about Unreal?

I heard a rumour!

Isn't Epic going to end up screwing me over in some way?

You should never trust a big corporation, but probably not. Epic's EULA stipulates that if the EULA changes, you don't have to agree to the new terms; as long as you stay on the version of Unreal you're on. Combined with full access to the source code, this probably means you're pretty safe.

Anecdotally and as of right now, Epic tend to be chill. For instance, when they changed their Unreal Marketplace rev share from 30% to 12%, they made it retroactive and refunded every Marketplace creator the difference on every sale they'd made.

Anything can change, so keep an eye on 'em, but you should be alright.

Unreal and Unity are not game engines in the same sense.

Unreal, idTech, Cryengine, Source, Snowdrop, etc are game engines that emerged from the process of game development. Unity and Godot didn't, which is fine, but not the same thing, and using them is fundamentally different.

If you use the Half-Life Engine, you benefit from using the tools that shipped Half-Life; you don't go in and write your own weapon system and networking and savegame system.

It's the same way with Unreal, except you're not getting "whatever Epic ended up with when making Gears of War" - Epic spent 25 years supporting AAA licensees and building systems that would pretty much work for any and all of them, so that's what you're getting. It's overpowered for what you need as an indie, but that's good. You want to be overpowered.

I heard it's hard to learn!


It can be! It's huge and empowering, but it doesn't do a good job of teaching itself. The UI is kept "simple" in a way that means there are huge features you just won't discover unless someone tells you about them.

The forums are not great, and the entire internet is filled with very confidently-stated misinformation. Googling worked well until this year, and now it doesn't.

If you can help it, you shouldn't try to learn it alone. You should put yourself in some sort of Unreal learning community, like Alex Rose's Discord For Former Unity Devs, and ask a lot of questions. I've seen people go from zero to extremely capable (and hired) in a year, who attribute it to being in my discord.

What's the payment situation? 5% gross doesn't sound great!

It's free until you make a million bucks USD, and only after that is it 5% gross, and only in quarters where you made more than $10,000 USD. So most folks never end up paying anything. There are no subscription fees or anything. To clarify, if you make a million bucks, and then one dollar, you only owe them five cents.

This is all per-game. If you make ten million bucks on Game A, you'll have to pay 5% on 9 million, but then if you make Game B, you pay 0% on that until that makes a million bucks.

If this still sucks to you, you can talk to them about a custom license with custom terms. There's an email link on their website somewhere.

Make sure you fill out the Release Form when you release your game. Otherwise you might have to pay royalties sooner than $1M, apparently. Take you five minutes.    

Don't roll-your-own everything.


Check the system you want to make doesn't exist already. If it does exist, but seems bad, you probably haven't looked hard enough at it yet. They aren't banging rocks together at Epic. You think you can make a better animation system or whatever, you're wrong. Quit it, you're gonna hurt your team.

That said, not everything in Unreal rules. I don't like Unreal's Behaviour Trees, I think they're really bad. I built my own AI system instead of that which I think is real good. Maybe you can too!

But I want to roll my own everything!

I love you but it is imperative that you get over it. There's a place for that, and it's somewhere else.

I heard C++ sucks!


Maybe, but Unreal's C++ is pretty different to C++ elsewhere. It's easier. Give it a shot even though you dread it.

Most games, though, don't need much, if any, C++ - you can build and ship an entire solid, maintainable, performant, complex game in Blueprint.

Check out Tom Looman's Complete Guide to Unreal C++, that guy knows what he's doing.

The most important thing is not to be dogmatic. C++ and Blueprint both have their place. If you find yourself insisting that someone move all their Blueprint to C++ "for performance", you have become the villain. Nativisation and optimisation are not the same thing.

What's the deal with platforms? Consoles? Epic Launcher? 

You can put your games on any platform or console, they're all well supported, and nothing is mandatory. If you sell on EGS, which you don't have to, those sales don't contribute to the revenue thresholds above. Porting to consoles is easier here than on other engines. 

Porting to consoles isn't an outsource job here.

It can be, of course, but Unreal is built to target every platform from one project. Fortnite is on Switch, Android, iOS, Xbox, Playstation, PC, and maybe something else, and that is all built out of one project. You can do this too. For the most part it "just works". Stuff like "make the textures lower res on the Switch, depending on the asset" is all built-in and easy. I did the Switch port of Adios in a week. 

Bear in mind you'll have to go through the console's signing process to get the secret source code you need to compile the engine for it. It tends not to be difficult. Whole engine's on Github by the way.

I heard Blueprint sucks!

Blueprint actually rules. Look, I get it - why would a visual scripting thing be good? They're all shit! I agree.

Blueprint is the only one that's any good. It's amazing. It will also help you learn the engine. Everything you do there will be applicable to C++. No matter who you are, you should start in Blueprint. It's 100% true that you can build an entire game in Blueprint. Yeah, with multiplayer. Yeah, performantly. Yeah, maintainably. It's not just for rapid prototyping.

Be a snob about Blueprint at your peril. I've helped a lot of people get good at Unreal and get hired for it, and Blueprint-related recalcitrance is the number one way people screw themselves - without realising, they sentence themselves to months of wasted time and frustration only to mould themselves into the type of Unreal user who sabotages any team they're on. Swallow your pride and look at some nodes.

 

Do I have to put the Unreal logo on my stuff?

No, in fact if you want to use it, you have to fill out a form and they can reject you. You do still have to put a "this uses Unreal Engine, copyright yada yada", etc in your credits.

You won't use the Asset Store as much.

It's called the Unreal Engine Marketplace, and there's a lot of good stuff and a lot of bad stuff on there. In general, you need it less than you do on Unity. Like you don't need something like Rewired; Unreal's input systems are solid and work on every platform. There'll be a lot of stuff like that.

I heard Unreal is geared towards first person shooters and it's a struggle to make something in my genre!

This isn't true. It was sort of true at first glance in the first half of UE3. By UE4 it wasn't true in any sense. Somebody's lyin'.

You can make anything in any genre with equal ease. If in doubt, look up the Wiki list of Unreal Engine games. Nobody there had to go out of their way (or outside the Gameplay Framework) to do their thing.

 

Doesn't Tencent own Epic or something?

They have some non-controlling amount of shares. The way I've had this explained to me is Tim Sweeney owns the majority and nobody else gets any real say in anything. Tencent did invest though and do own part of it.

Upgrading to the latest version is not a big deal.

Most times you upgrade to the next version of Unreal you won't run into any issues. Some folks like to hold off a little just to be sure. Psychonauts 2 started on 4.11 and shipped on 4.26. Staying up to date is good here.

What if I don't want fancy graphical bells and whistles? What if I'm not making something in a realistic style?

That's all fine. The fancy graphics in Unreal are easy to disable, and you still get the benefit of their fancy tooling.

Unreal also doesn't limit the types of styles you can go for. You can do anything. "Physically based rendering" doesn't mean you have to work in a realistic style. That's not even what it's for!

Does Unreal pay you to be this helpful?

I fuckin' wish. I don't know what compels me, to be honest.

You could send me money though if you wanted, or there's a patreon. I don't know, whatever. 

Unreal doesn't suddenly remove important features.

When Epic deprecates a massive feature, it tends to stick around for a long time before actually being removed, and then you'll have an upgrade path provided.

For instance, the current particle editor is Niagara. Before Niagara, for many years, there was Cascade. Cascade is still in the engine, but you should use Niagara, and there's an automatic converter of your Cascade particle systems to Niagara.

Similarly, the animation tool Matinee (responsible for the cutscenes in Gears of War, Mirror's Edge, Batman, Xcom, etc) was removed from the engine years after being deprecated and replaced with Sequencer, and to this day if you open a level that contains a Matinee it gets perfectly converted to Sequencer.

 

Can I make a 2D game?

Yeah, totally. Just make a game as usual but with an orthographic camera. If you want sprites instead of animated meshes, there's a system called Paper2D for dealing with sprites, and it doesn't get a lot of updates or do much with animation, but there's also a system called PaperZD (on the marketplace) that does a lot more. As of 5.3, all the latest lighting features work with orthographic - lumen, virtual shadowmaps, etc.

Unreal introduces new systems carefully.

If something new comes into Unreal, usually it's initially marked Experimental. This means Epic don't recommend relying on it for production. Eventually it will lose that label, and then it's safe to use in a shipping game.

Presumably out of an abundance of caution, some features stay Experimental for a lot longer, even though they're good to go and are used in many shipped games. Ask around if you're unsure how safe an "experimental" feature is.

Also, all the new stuff is optional, it doesn't replace old features. Lumen and Nanite are new and cool, but still optional. You can still bake lighting and everything's still compatible with that.

Can I make a game that's playable in the browser?

Not really! There used to be HTML5 support, but it got deprecated a few years ago. Other than Pixel Streaming, you don't have much recourse here unless you want to implement it yourself. So that sucks.

Unreal doesn't have multiple rendering pipelines with their own asset requirements.

You do have access to multiple renderers in Unreal, with different features - there are Deferred and Forward renderers for both Desktop and Mobile with various quirks (eg, you only get MSAA on Forward). But your assets don't care about this - the renderers all look the same, and you can switch between them at will to figure out what best fits your project.

 

I heard you can't make a build that's less than a billion megs!

Out of the box in UE5.3, if you disable all unnecessary plugins and package a nearly-empty project, it's like 120mb. On UE4 that was more like 75mb. There's a lot more you can do to reduce file size - this is just what I've done personally. If you search, you should find some good tips for this.

This is the engine that made that game you like.

You know how in Batman Arkham Asylum you sometimes have to wait in front of a door while it security-scans you, but actually it's loading the next chunk of level while you stand there throwing batarangs and it'll take longer to scan you on a slower machine? That's not something Rocksteady did, that's just Unreal's level streaming system they used for Gears of War. You can just use that.

If some game on Unreal ever did a thing you liked, there's a good chance you literally have the code.

 

I heard the level design tools are bad!

You probably heard that from me. There's a way to go, but things have gotten a hell of a lot better, especially in 5.3. Check out that link for some scoops on the tools CubeGrid and MeshTool, which are both excellent and work well together.


I heard it's a hassle to develop on/for Linux and Mac!

Not really! There were some Mac CPUs that weren't properly supported until recently, but they are now. You can download the editor for Mac through the Epic Launcher just like PC, or for Linux, go here.