should i stick with unreal or learn another engine first?


#1

so i’ve been trying to learn unreal recently. i have a bit of a programming background in python and c++ - which made me consider leaning towards unreal so that i can work on my c++ and can snag a software developer job if i’m unable to get one in gamedev right away.

i think that, in theory, i like how unreal functions and feels but i think the major thing that i’m realizing (which may or may not be true) is that although unreal is much more powerful than other engines, i feel like it’s more difficult to hit MVP on an unreal project (especially when working solo). it’s made me consider wanting to work with a more simple engine before learning something that robust. i think i’m trying to say that it’d be easier to utilize unreal once i really understand the process and flow of making a game and what i need to do. i’m not entirely certain if things such as unity, gamemaker, pico, construct, etc. are that drastically easier than unreal and if they’re a lot simpler to understand / work with.

so the question i have is the one that’s the thread title: should i stick with unreal or learn another engine first? i wanted to ask for everyone’s input here because i’m certain that a lot of people have spent an extensive amount of time with each one. i know that there’s no such thing as the perfect engine either and everyone has its fair share of pros and cons, so i’d really appreciate if people chimed in about that info too. :zeldaheart:

oh! nearly left this out. i don’t know how much of a difference this answer choice would make but there’s a variety of games that i’d like to create. platformers, shmups, rpgs, action, etc. i’m leaning towards 2D because i think it’d be simpler to start off with and i do like the medium. 3D’s really cool too but i’m unsure if working in 3D would be a completely different beast. i’d appreciate some answers on that too, thank you!


#2

Have you checked out Godot already?


#3

It boils down to, do you want to use C++ or C#? This early in the game-making stage just going through and banging out something simple is going to do more to develop your skills than it is trying to settle on the perfect engine. Pick one, swear and sweat at it to make it work, and stick through to an end.

EDIT: Looking at Godot it is definitely another feasible choice.


#4

2D is a good place to start. Check out Godot, Love2D, Game Maker. I’ve used Unity for both 2D and 3D and it’s nice for simple games. Try a bit of everything first.


#5

Construct is great for 2D and idiots like me. It’s real nice if you just want to get something done but I don’t know about getting into the industry and getting employment out of it. That’s not something I’m interested in. I’m sure someone with an actual industry job can help you there though. Paging @BustedAstromech because they know everything about everything


#6

Game Maker is hell, do not use imo


#7

Since you know how to program I’m going to say you should limit your choice between Unreal and Unity. There are restricted engines suited to a specific style or genre but I’m going to assume you want to experiment in different forms for now, and, as you feel competent in your programming, will want to learn to touch everything.

Unreal is descended from ad hoc studio tooling and is consequently much harder to beat into shape to build a game it wasn’t meant for: something not a 3D shooter or character-action game in discrete levels. The tools are much more isolated, the workflow is much more proscribed, and the built-in code is much more assumptive, following long inheritance chains. On the other hand, it’s truly professional and is very performant on all its platforms, has an excellent renderer, and allows you to dig deep into its guts.

Unity is designed to be an engine, not create a specific game, and consequently its workflow is much better thought through and designed. Getting things up and running is much, much faster. C# should present no learning barrier; to me, it felt like C++ on cruise control, beautifully smooth and fast. Unity can have performance problems, particularly if you invest more than the equivalent of a $1m budget. Investigate object recycling and what C# features you shouldn’t use when you start.

If you’re doing 2D I’d recommend Unity; while 2D used to be unsupported they’ve since added things like sprite management tools and Box2D physics that make it work.

If you’re planning on small projects I’d recommend Unity; if you’re planning on a multi-year epic that represents your magnum opus Id go Unreal. But you’d be crazy to do that and should really aim for a series of weekend/weeklong/monthlong games until you’ve built at least a dozen–overscope kills more game projects than smoking! I mean, it’s inevitable that you’ll overscope by a factor of five or more and only by making lots of things can you get that down to a professional factor of three…


#8

unity is the game engine equivalent of going to a mall for fun

send tweet


#9

…the only choice if you’re a teen in a small town?


#10

nailed it


#11

for real though, for all its virtues as an engine/dev tool, unity is such a cynically capitalist enterprise that i would avoid it on soul-protection grounds alone. i don’t want to be discouraging, but i’d take/learn what you need from it and move on to something less…gross


#12

Can you elaborate? I don’t quite understand.


#13

Every once in a while I start to try to make a game in Unity and then I get discouraged because it’s going to take a friggin week of watching youtube videos to jury rig the engine so it pretends to be pixel perfect, flows choppy and chunky like a ps1 or dos game instead of “HIGHEST RES POSSIBLE HAIR SHADERS AMBIENT OCCLUSION BLOOM VOCALOID CLOTH PHYSICS SIM DONATE 4 MORE HOT CONVENTION DEMOS”, do super simple palette swap stuff that was universal and basic when I grew up but is now unpopular and difficult, requires understanding of shaders to implement a approximation (which for all i know is slower) It’s discouraging that the basic atmosphere I’m hung up on is foreign to the package being sold to me. I guess I should take inspiration from all the kid geniuses making platformers with RPG Maker, etc. Although nobody remembers the names of those games now!

By the time I overcome this and do it anyway, I’ll accidentally read something like “Lol Unity’s inept programming makes games made in it crash if they stay open more than a few hours, even commercial games with paid releases do this now” and then I just spend time hating on this cheap industry and idly reading 1% of the unbelievably boring alchemical ritual to make, like, a crude tile system in SDL.

I’m very open to other suggestions, even if they’re just “work harder”. Screw doing everything from the ground up, but also, screw stripping my ideas to easily grind them down. It’s not like I do this for money. If I wanted money, the games are negligible; it’s all about the character designs and how much pornography demographics will commission.


#14

https://www.lexaloffle.com/pico-8.php

The harsh limitations of PICO-8 are carefully chosen to be fun to work with, encourage small but expressive designs and hopefully to give PICO-8 cartridges their own particular look and feel.

?


#15

I think it all depends on what you want to take from the next project.
A fast one? Go small and with something you know really well and it’s easy.

If it doesn’t need to be super fast, then a 3rd party is always the best choice.
If you are debating Unreal with something else, the first question pops up again.

What do you want from the project? Learn new stuff, refine what you know, fast or big?
For smaller projects I don’t think there’s that much of a difference between Unreal and Unity. So if you have practice with Unreal, that one will be faster, and Unity will teach you more.

I’m the slowest with just compiler and libraries (pure code, no editor), but it is ultimately where I feel more comfortable. But I also feel the less productive.
Editors are good that way, you make work while motivated by how you felt you have done.

In my personal experience, even a script language does that for a videogame/engine.


#16

Yeah, if you want to make a game because you want to write graphics, physics, audio code, you’ll be happiest writing that code even if you have to tell yourself a little lie that it will be easier to work on your game afterward.


#17

unity has a lot of teaching resources as well, with varying levels of quality

the fact that it’s probably the single most used engine for education probably bumps up that average quality level above anything else though