life after unity

i’ve been making games w unity for like 8 years now (christ) and i’ve been moving further away from the engine every year (i’m kinda shackled to it until i finish my big project (and also cos i teach it to my students) but that’s beside the point) mostly in a godot-ward direction, and while i like that engine quite a bit i do find its management practices a little :eyes: so i thought i’d do the honest thing and try a shitload of different engines to see what’s going on, and to write about it to those that might care; i know the gamesfromscratch guy is out there but i don’t find his write-ups or videos very informative so i figured it might be worth sharing my thoughts with others who are in a similar position but don’t have the time or energy to do this.

to be perfectly clear: i’m not planning on approaching this strenuously; if there’s some weird quirk of an engine that i find annoying enough to warrant putting it down then i simply will.

i spent a bit yesterday writing up a list of stuff i personally want from my tools (in order of importance):

MUST HAVE:

  • must be an engine, not a framework.
  • c# or some other strict language with thorough documentation.
  • comprehensive 2D and 3D support.
  • lightweight (editor and build).
  • modding support (editor and build).

NICE TO HAVE:

  • built-in level editing / modelling tools.
  • baked lighting tools.
  • visual shader editor.
  • console support.

my current targets are (in order):
flax, defold, wicked, heaps, bevy, and fyrox. and then, if i’m feeling really keen/unfulfilled, i’ll have a look at idtech4 and maybe some other old/abandoned engines like that. i kinda doubt i’ll end up choosing that route but i’m interested nonetheless cos i like the idea of using tools that aren’t moving under my feet.

anyway if anyone else is doing similar stuff or has experience with any of the above (or other stuff that feels relevant) whether positive or negative i’d love to know about it.

i tried out flax yesterday and i’ll continue tonight so i’ll report back soon.

26 Likes

Flax


this engine is terminally boring. it’s more-or-less unity but with unreal post-processing which you have to opt-out of (you have to toggle on the option to toggle off each individual effect) and too-large build sizes (100MB for a single scene with a ball and a couple cubes).
it’s a perfectly fine engine as far as i can tell; i managed to get my test project (a roller ball + rigidbody chase cam) set up pretty quick but was frustrated by the way that classes were set up (“Transform” doesn’t contain a “Position” property, but rigidbodies and “Actors” do) and the documentation, while pretty thorough, seemed to be missing lots of inherited info for the sake of clarity, so i had a hard time working out what i could access from where, but maybe i’m just stupid.
the physics step seems pretty weird; trying to view run physics objects in the editor resulted in stuttery and gnarly looking frame-inconsistencies (which mostly went away in the build?). it doesn’t seem as though you can interpolate between fixed updates, so you just have to set the physics step really high i think? idk it was a little frustrating but not catastrophic.
EDIT: one other note i have about the physics is that i couldn’t find how to properly move physics objects without forces? like in unity there’s a MovePosition and MoveRotation function, but with this there didn’t seem to be an equivalent. if the answer is that just changing the rigidbody position automatically does the same stuff as these functions then that’s great but it did catch me off guard.
it runs pretty hot too, my fans were constantly on while the editor was active, even when backgrounded.
one thing i actually do like a lot is that all the settings for the project are stored as .json files in the actual project itself, so you can open them and change them and whatever (they open like normal menus, not some weird text editor situation), and then if you have a setup you like you can just copy the chunk of settings you like (settings are divided into platforms and categories like graphics and input (inputs work exactly like unity, btw) and so on) and move them into subsequent projects.

anyway let’s go through the checklist:

  • it is an engine
  • it has c# and c++ support built in
  • 3D is fine, but 2D seems non-existent.
  • not very lightweight (editor wasn’t a huge install tho)
  • plugins and engine modding is supported (although i couldn’t find any plugins from within the engine, i guess you’d have to download them from outside), but modding games themselves (and applying patches) seems to be more mysterious.
  • built-in level editing tools are as bad as unity (with the exception of some very hard to parse CSG stuff).
  • comes with baked lighting built right in, but it’s pretty slow.
  • all materials are represented in a visual shader editor so there’s no delineation between building your own shader and making your own material, it’s actually great!
  • supports basically all the platforms both (computers and consoles).

so yeah overall not a terrible choice if you’re coming from unity. it’ll have its share of normal tool-change discomforts but otherwise idk, it doesn’t strike me as particularly crazy as a choice unless you want to make both 2D and 3D stuff in the same engine (which i do). i’m not personally interested because it’s not as nice to use as godot, the community is wayyy smaller, and it seems to be aimed at big graphics stuff in a way that will only weigh me down.

next up is defold!

14 Likes

Defold


darn. navigation is really awkward; it took me an hour to work out how to rotate the camera (ctrl + LMB). shame cos it seems like a real performance-oriented engine otherwise.
for any kind of serious 3D this shit is not going to work. if at some point in the future the focus shifts (unlikely imo) then maybe i’ll come back and look but until then: this engine is just too 2D oriented for my needs. i’m not averse to doing my level design out-of-engine and then programming in-engine but not even being able to fly-cam around is too austere even for me.

so:

  • it is an engine
  • supports lua (i’ve never used it but it seems fine)
  • technically has 3d in there but is really focused on 2d
  • very lightweight tho! no install required.
  • can’t speak to modding support but i know that lua allows for lots of post-build fuckn around if you’re a kid with a text editor, so.
  • no level editing / modelling tools that i could see, but it does have a tilemapper.
  • lighting is pretty rudimentary as far as i can tell.
  • shaders must be hand-written.
  • supports most platforms (xbox seems to be an exception? not sure, but switch and ps4 etc are there).

not really an option for those moving from unity. i can imagine someone coming from gamemaker but even then i think they’d be better served by godot or construct or something. seems like a real solid choice for mobile games, which makes sense, but not really for much else. ah well.

next up: wicked

9 Likes

Wicked


hahahah dude this is a hilarious object. this is not really an engine, not yet, but it’s an amazing piece of software.
much easier to get stuff up and running than defold was, fly-cam is pretty straight forward, and i like the honest and kinda stark interface, but in order to actually like… make a scene or an executable (not sure this thing even really lets you export without CLI) you have to write a lua script that contains the loop and the render function and all that shit and like… bro.
anyway it’s fun to like dick around in for an hour or so; there’s some absolutely bonkers graphics in here – there’s so much built-in ray-tracing stuff it’s crazy! but uhhh, , , i couldn’t actually like… make anything.
the game doesn’t seem to have a play mode exactly, not without writing a script that has a play mode and a render cycle in it. it’s a very strange setup cos there’s lots of visual interface stuff; great tools for moving stuff around and placing objects and editing materials and changing graphics settings and all that kinda stuff, but no play button! no way to just… run the game. it seems like the editor is the game and that it’s always running. for example: if you don’t want physics to execute then you gotta set the scene speed to zero. it’s so bizarre.

  • it is an engine… kinda… sorta.
  • lua language support.
  • no 2D as far as i can tell. the 3D is amazingly competent.
  • pretty lightweight but can do some really crazy expensive tasks if you ask it.
  • no level editing but it does have some pretty comprehensive terrain tools (check out the main dev’s yt channel).
  • lighting is extremely in-depth and very customisable. one of the things i really liked was having the ability to bake lightmaps on a per-object basis so you can choose which objects need new maps and only update those, idk it’s pretty cool i had fun.
  • no clue about shaders.
  • according to the latest release build it supports ps5 lmao what the heck man this is so stupid.

yeah. worth having a look at but like, it’ll be a long while before this is ready for anyone else to use, and i kinda don’t think the main dev is even really interested in that. i’m almost tempted to fork over the 6 bucks to get access to the engine discord, just to see what’s going on in there… but only almost.
edit: Wicked Engine <<< discord invite (i just didn’t notice that there was a link at the bottom of the main web page lollll)

next up is heaps? i’m blitzing through these cos in so many cases it’s like yeah these tools aren’t suitable for people like me. i hope that’s ok. if anyone has any questions about the tools i haven’t like deleted them or whatever so i can always go back and look at stuff and try things out again.

11 Likes

I find this thread fascinating even though I will probably never fuck with anything more complicated than TWINE

6 Likes

Heaps


straight up not an engine lmao god fucking damn it.
there is no gui, no application, no nothing. it’s just a haxe game library? idk man maybe other people mean something else when they say “game engine” but fucking i should not have to make like 4 different completely opaque files in order to print hello world.

not gonna bother with the criteria list lol.

next up is uhhh… ok actually let me quickly look at the next couple entries real quick to just make sure that what i’m dealing with is an honest-to-god engine and not some fuckn trickster bullshit.

ok bevy is also not an engine (but still calls itself one) whereas fyrox – also a rust-based self-proclaimed game engine – explicitly says on its homepage “what would a game engine be without an editor?” it would be fucking heaps and bevy i guess lmao

well good thing heaps was low-impact cos i can’t work out how to uninstall it lmao

12 Likes

thank you for going through all of these so i don’t have to because I for sure have no real world knowledge enough to know if the problem with any of these is just me.

2 Likes

Fyrox


lmao who could be fucking bothered.
so here’s how it went:

  • go to fyrox website
  • click on “start creating games”
  • immediately get sent to chapter 3.1 of the fyrox book: “Editor, Plugins, and Scripts” which informs me that i need to run 4 console commands to “start using the engine as quick as possible.” lol.
  • enter the commands
  • don’t have cargo installed so i look up how to install cargo
  • “The easiest way to get Cargo is to install the current stable release of Rust by using rustup.” words written by an insane person.
  • run the rustupinit.exe which opens a second command line window.
  • “Rust requires a linker and Windows API libraries but they don’t seem to be available.” i am losing my mind.
  • select the “quick install” option from the command line
  • quick install installs an installer which tries to install visual studio code and the windows 11 API; a total of 5GB~
  • close all tabs and move on with my life.

don’t know what’s up next. maybe i’ll email brendon chung and ask him about his idtech4 setup. or maybe i’ll look into source. i just got an invite to the closed s&box (gary’s mod 2) beta so that’s exciting but not exactly useful for everyone. maybe i’ll follow through on my threat to use quake(idtech1?)… i hope not.

send thoughts and prayers.

13 Likes

Many years ago I found this free thing called libgdx that let you do multi platform with the same code and I did indeed get something working on my phone and computer. I think I just added a 3rd party tile engine and it had everything I wanted. It’s interesting to see that it’s still being updated especially since I’ve never heard anybody mention it, I assumed it was long dead.

1 Like

reckon people might mean “the thing that manages your resources & arranges for them to act/appear on the screen”. tho Heaps is clearly a graphics library like SDL

as well as enjoying this topic, I’ve also enjoyed Ivan’s thread about how to avoid the big competitors & write your own engine https://twitter.com/nothke/status/1703821307337404884

1 Like

that thread says to me that no one should make their own engine lol.

currently looking at playcanvas, which, on paper, seems terrible, but in execution is kinda cool! I’ll write about it once I’ve got a better feel for it.

2 Likes

so what I’m hearing is that unreal is the way to go

oh for sure the normal answer for people who just want to make games and be done with it is none of the engines i’m personally interested in (except maybe godot, if web and lightweight games are your interest). the reason i’m focusing on all these engines is that they’re open source, which means if i or a great number of people come to rely on said engine (say, because they get taught it at university) then it’s much harder for the people in charge to pull what unity did and completely jeopardise a whole community and their livelihood.

6 Likes

honestly the rust install hurdles here have more to do with developer-facing open source projects having minimal interest in windows users than anything else, which is… depressingly universal ime. but also i still found it pretty painless so we might have different standards for acceptable ux

anyway when im free of rpg maker it’ll be a relief

5 Likes

yeah that definitely feels true, although idk if i would’ve ever come to that conclusion myself.
my response to the rust etc. download requirements was more me channeling all my normal friends/students than a personal unwillingness to engage with that kind of thing.

i would love to hear your perspective on rpg maker cos it’s one of those tools i find myself recommending to students as being “easier” to use without actually having much of a yardstick for how true that is.

1 Like

as a learning tool, a lot of “it depends”–on the version you’re using, how much your genre interests align with the editor’s, which skills you’re hoping to transfer if your goal is to graduate from it eventually. rpg maker is somewhere between a game engine and a toy (complimentary/derogatory). you can make a guy walk around and talk to people for free which is instant serotonin, you get a bunch of free resources which are meant to inspire creativity (you look at the skeleton battler and go ah yes. i should make a skeleton cave. and make Dungeon02.mid play there because it has a goofy xylophone), you get a pseudocode-like event system that, best case scenario, can gently introduce people to things like variables and control flow, just… not as you know it

if they want to get any deeper into programming than that, or they want to stray substantially from the editor’s narrow vision, they will enter either Event Hell (the rm2k3 classic flavor) or Plugin Hell (cool new flavor where you add a bunch of other people’s bad code to your project and are confused when the compatibility and performance problems start). and rpg maker is idiosyncratic enough in how it does things that there is no clear off-ramp into a more general-use tool. the best choice i can think of is probably… construct? based on personal experience. and maybe they should’ve been using construct from the start…

and if you’re working with students you know they can have, uh, unrealistic expectations about what they can get done, and those people are doomed to one of the two Hells. rpg maker is actually really good at making yume nikki fangames and so on but it wants you to make rpgs, and rpgs are the genre of excess and doomed ambition. this is why our rpg maker game contains a bespoke, fully functional stepmania player. i recommend not doing that, even if it seems funny at the time

16 Likes

Would you be willing to go into a pros/cons of going into godot? Specifically as a “wtf unity?” user?

1 Like

thanks this is very insightful! i feel like i should maybe not recommend rpgm anymore haha, unless students are explicitly trying to make a traditional jrpg – and even then, my actual advice would be: don’t do that – or, as you said, a yume nikki type.

yeah of course! but what exactly do you mean by “wtf unity?” user? like someone who’s unhappy with the company’s price fuckaround (or just the company in general) or someone who feels that unity is confusing or overwhelming?

1 Like

PlayCanvas


wow what a lovely surprise.
i initially dismissed this one on the basis that it’s an in-browser + 100% online* engine for making games for the web, but now that i’ve given it a go i’m thinking this might rival godot for me!

ok so yes the editor is online, but the engine (interesting and relevant distinction itt) can be downloaded/forked/whatever (it’s fully open-source) and run locally if you like, which is encouraging, and i’d love to look at how achievable offline development is for a normal person, especially if i were to pitch this as a tool for students.
the biggest challenge for me was that playcanvas uses javascript, which is actually wayyyy less similar to c# than i initially thought, and a great deal of my dev time was spent learning how to do regular coding stuff while maintaining type safety. not insurmountable, but a hurdle nonethless.
however, the great advantage of this engine is that i can do this:

(the password is “please”)

and tada! there it is!

playcanvas is astoundingly lightweight. the above project has an export size of 2mb!!! and it is blessedly bereft of extraneous graphics by default, while still being able to produce them if you so desire (link, link) which is precisely how i like it (mmm yes gimme that zero-specular blinn-phong).

one pretty weird thing about the engine is that it’s owned/managed by snapchat??? a company which i was astonished to discover is in fact entirely independent and not owned by some big megacorp. idk exactly what this “means” as such, and ofc i would much rather this were a wholly community-driven project, but i can think of much worse parent companies to manage a game engine (lmao).

anyway on to the criteria:

  • it is an engine… and an editor :woman_facepalming:
  • it uses javascript
  • it supports 2d and 3d
  • extremely lightweight
  • engine is moddable if you fork it but i don’t think you can mod a browser game???
  • no level editing tools aside from the usual drag and drop prefabs
  • full suite of lighting tools (including real-time area lights which unity doesn’t even have)
  • shaders are hand-written in GLSL
  • runs on anything you can install a browser on lol (or you can run it in an electron/cocoonJS wrapper) and has built-in support for mouse + keyboard, touch, and gamepads.

one criterion (ty dyl :heart:) i haven’t included up until now but which is definitely important is: community. playcanvas has a forum (which is very active and looks suspiciously familiar :eyes:) as well an extremely comprehensive set of example projects, docs, and an asset store.

all-in-all i’m really surprised at how complete this whole thing is, and moreso because i’ve literally never heard a single real human talk about it before. what a pleasant find.
i’m going to be looking into this one further, specifically from a teaching perspective, because i think that a setup like this has a number of advantages in a teaching context, despite the online + javascript drawbacks.

next up is idk what cos we’re at the end of games week here so regular classes will be starting back up and i’m teaching 4 days next week so i’ll be busy – not to mention that playcanvas kinda seems like my white whale game engine so i wanna look into it further, but we’ll see.

anyway uhh, lemme know if the game doesn’t run lol.

8 Likes