I’m trying to decide whether or not to continue learning Unreal Engine due to some recent stuff I learned about unreal engine being bad for 2D games. Although I know I will be making 3D games later, there’s a few 2D games I want to make first.
So I’d like to hear from anyone who’s had experience making 2D games in unreal. How bad is it really? Is it so bad that I’d be better off learning Godot for now to make those 2D games and then learn Unreal Engine all over gain later when I want to make 3D games?
For reference, the 2D games I’d like to make are watered-down clones of Carrion, Blasphemous, and Diablo with a bit of my own spin to them.
I personally think its best to stick to Unreal if the 2D problems with unreal are just some extra tedium.
Personally, all the games I’ve released so far have been 2d pixel art games, developed entirely on Unreal (two were made with PC-88’s limitations in mind and my current project is being done with NES’s limitations). And quite frankly, from my experience it is not any different from developing 3d games in Unreal, as long as you know what boxes to tick off in the project settings (you only need to do this once per project) you shouldn’t really have much problems with Unreal Engine in terms of developing 2d games (oh, and I do suggest, if you haven’t already, to check out the PaperZD plugin, which is free, and helps tremendously with 2d animations).
Of course, some things also depend on how you go about your development (I would suggest staying away from Unreal’s tilemappers, and instead doing level design and creation the same way you would with 3d levels)
Of course those with more experience developing on other engines might have different opinions, but I’ve only ever really worked with Unreal and haven’t found any flaws big enough to push me away from it, either in 2d or 3d.
Honestly I’m looking for reasons to stick to unreal and you gave me a few.
I’d heard a lot about PaperZD and definitely seems like a must-have.
Now my noobiness is gonna show here but how would I go about designing a 2d level without a tilemap? I’ve only done some very basic level design in 3d, creating rooms out of cubes and placing/moving objects within them. So I’m very confused how I’d go about (at least efficiently) placing/moving sprites around. Would’t I have to painstakingly position each tile in my level perfectly? I must be missing something.
Unreal Engine is overkill for a 2D game, if you mainly just want to bounce sprites around. The overhead of getting the engine going will be noticeable. If your needs are simple enough that you can roll your own on top of something like SDL (or even PyGame) then you don’t need Unreal.
Where Unreal becomes useful, is when you want fancy animations, camera effects, and so on. If you have the artists on board to create and set up the significant content needed for those “professional” level 2D treatments, Unreal can help.
I honestly hadn’t considered overhead of the engine and a few other people have now mentioned this overhead concern as well. I had assumed though that I can configure my project such that the overhead is minimal or negligible. Is that not so?
You can reduce the overhead, but Unreal isn’t so much “a library” as “a lifestyle.”
It’s super capable as you scale up – lighting effects, particle systems, swooshy scripted animations, interactive user interfaces that put Flash to shame – all there!
But it has a noticeable cost both in runtime and memory usage for small projects. I have never managed to build a single-level project that’s less than 100 MB when packaged. (It’s probably possible, but it’s certainly not the sweet spot.)
If I were making a Tetris clone, and I intended to actually distribute it for limited platforms like phones, I’d probably just do it in plain SDL, or maybe Godot.
Yes, I forgot to mention the bloat of the engine is definitely there, 100-300MB is like a bare minimum for a packaged build no matter how much you cut from it… but the good thing is you can add plenty of stuff till you catch up to it.
One of my personal reasons for sticking with unreal even with 2d games, is building “a code library”, which I can keep upgrading with each new project and as I move into bigger and bigger projects and, eventually, into 3d projects and who knows what else, I can just migrate or copy-paste my code from my previous projects, knowing that they’ll work without having to rewrite them and wonder if they’ll work.
As for building levels without tilemaps. It’s probably best to build your levels in your graphics editor (GIMP, Photoshop, what ever you’re working with) and then import the different elements, layers or groups into the engine and use them as textures (singular tiles can be also be imported and used with planes or cubes, why not), for example, you can make the entire floor or the ceiling or a platform as a single texture and import that into the engine… You should think, case by case, what is better off as a texture and what should be extracted as a sprite (characters and projectiles are usually best as sprites, while backgrounds and platforms are usually better as textures, from my experience).
And for more modular stuff (such as platforms build from individual tiles) you can set that all up in blueprints to be mutable by instance for easy “stretching” as needed.
I admit it can be a bit of a hassle when you start and start setting things up, but the level editor does have snapping to the pixel, so you can you can quite easily and accurately move everything in the level and keep them accurately positioned without getting them misaligned. And once you get the blueprints and everything set up everything starts becoming faster and easier (with blueprints, once you do it in one project, you can migrate them into all future projects without any extra work).
With all this, it is unfortunately obvious that the engine is designed for and wants to be used for 3d stuff, and the sooner you realize that and work with it instead of against it, it becomes much easier… It requires a bit of playing around first to get a feeling for it, though.
Thanks @jwatte.
I was actually considering Godot as an alternative, at least for small 2D game projects. Regardless, for my goals, the extra overhead is a tradeoff I’d be willing to make.
I appreciate your input. It’s given me a clearer idea of what I’d be getting into if I choose to go forward with unreal.
I was more worried the engine might lack tools that allow me to make complex 2D games. Or that its just so difficult that it’d be more economical to learn a whole new engine instead.
That’s actually exactly one of my goals too and hence why I’m so much in favor of sticking to Unreal. I originally wanted to work on 3D projects, but thats not a good option for me due to financial and time constraints. So I thought I could still learn the engine by focusing on 2D games and move to 3D as my constraints ease up. Hell, since a lot more studios are picking up unreal these days, it may even help me pick up a job.
I know there’s a lot of free/cheap 3D assets available all around the internet, but to actually make them look good, generally it will cost more time or money.
And thanks for the clarification on the level design workflow. It’s making more sense now and I can see how I’d put it into action. But if I run into issues or have more questions, I hope you don’t mind me reaching out to you directly.
Recommend Godot for 2D and lower-end 3D. Unreal for everything else… Browse related threads before deciding (see below). Overall, Godot is capable of running on a lot of lower-end older hardware. It installs instantly, and is very stable, especially when compared with UE5.
That said, before deciding consider this… Can you locate a working 2D template in any engine, that’s very close to what you want? As that really helps to give your work a huge boost, and gets you further along more quickly (without needing to drop hours on Youtube tuts or blogs / docs). If so, you may find that’s one of the key benefits of choosing the right engine for you.
Unity used to get an automatic mention for 2D and asset store templates. But some recent moves by their CEO, make it hard to see how this corp can survive long-term. Especially when they’re up against increasing competition from feature-rich Unreal / Godot. Unity see their user-base as some sort of locked-in cult. But how adversarial can you get before users just have enough. Insult your entire user base? Merge with a well-known malware distributor? Try to extract every last drop of wall-street blood from developers in a quick money grab? Closing offices this week or forever, still betting Unity will be around in a decade. But it’ll be a debt-laden zombie corp. With Unity, you can’t even open up old projects for reference, without running up against unsolvable DRM gotchas. There’s none of that BS with Godot / Unreal…
Of course, I don’t mind helping with anything I can. That said, I’m definitely not a guru on everything 2d and Unreal. There are still plenty of things I’m learning myself, so how I do things may or may not be the best way to do those things (probably isn’t)… but I don’t mind helping where I can.
And hopefully if enough people get interested in making 2d with Unreal (especially now that Unity did their thing), maybe we’ll get proper good tools to make them more efficiently…
Yeah I’ve been recommended Godot quite a lot and I’m still considering learning it strictly for 2D games. Although, considering my goals, if I can find a workflow that makes 2D dev simple in Unreal, that’d work best for me. For now I’ve decided to create a couple 2D projects in both engines and decide afterwards which engine I’d go with.
Lol yeah I’ve been keeping up with the news. Unity literally set all their reputation on fire. Even besides that I always kinda hated unity, but that’s for personal reasons I won’t get into.
Yeah a similar template would save a lot of time but I don’t feel that its a deciding factor in what I choose. That depends more on the features of the engine itself.
With the way that I end up learning things, its very likely I would be dropping many hours into documentation and tuts anyway just to figure out how the template was put together. That’s just a nasty habit of mine where I’m never satisfied with a working program until I know why it works lol.