The question has already been "Why aren't you using Unreal?" and that's just going to get harder.
Given the current VC taste for eliminating all things which count against gross margins now might be a good time to be an engine developer again.
The question has already been "Why aren't you using Unreal?" and that's just going to get harder.
Given the current VC taste for eliminating all things which count against gross margins now might be a good time to be an engine developer again.
Unreal is just another vendor with a hand in your revenues.
I do a fair amount of Godot development - for casual mobile games, limited PC games, or games where you're planning on a publisher to fund your port, I think Godot is a good choice.
>Unreal is just another vendor with a hand in your revenues.
* after 1M in revenue, IIRC
But everyone will be waiting for Godot to have the first widespread hit before jumping in like that.
C++. Sure, we can talk about Verse or even Skookum, but C# is much easier. Still, if any big game engine would have something like JS it would be even better for indie or small studios.
The name of the game is iteration speed. (I always think of Paul Grahams story about beating out the competition using Lisp.)
I've been working with UE since 2014, originally started in UE4 C++ and avoided blueprints and kept everything in C++. Was great 'for performance' and code diffs but now 10 years later I'm 99% blueprint and only go down to C++ if the performance requires it for the 1% of hot paths. My iteration time in UE using blueprints makes me shutter to think of all the time I spent waiting for C++ to compile.
I tried using blueprints for awhile, but it just feels so cumbersome and time consuming. I can bang out 10 lines of code basically as fast as I can think, but converting those same 10 lines of code to blueprints often involves much more time. You have to click around a bunch, rearrange the routing wires, make it look readable, abstract a lot of stuff into functions that usually don’t need it just because it helps condense the blueprints. Then the blueprints end up sprawling a large area and are very difficult to keep in my head at once (whereas it would normally take less than a page of C++ code to write it out and you can easily hold that in your head).
Basically, I was wondering if these downsides to blueprints effect you much or if you’ve developed suitable workarounds? I want to like blueprints, but the time it takes to click around and make it readable is painful, in my opinion, more painful than compile times for the C++.
It took me a while to build up enough experience where I could become more expressive with Blueprints than C++. The Lyra example has some good Blueprint hygiene worth reviewing where they organize all variables underneath a function call.. but until you have serious experience with Blueprints they are going to feel like a cumbersome mess.
My advice is to do what you feel most expressive with, doing the thing you enjoy more will lead to more hours of experience. Start with C++ and build up a good understanding/mental model of the engine and then eventually give Blueprints a try in a few more years and you will see them in a new light.
This will work just fine for small indie games and teams where the code is thrown out after a year, but there's no scaling this. I've worked with enough 10 year old Max/MSP patches to know that you will have an unmaintainable mess of wires that is as good as garbage after a while.
Larger teams typically use Blueprints to prototype but then rewrite in C++. This is a perfectly fine use case, but ultimately you still need it "written down" for the maintainability.
tl;dr Blueprints are a tool in the process to writing C++, they aren't a replacement.
It was just about fine if you were doing very small projects but quickly got very hairy, and their compiler was full of bugs.
You do need to be disciplined, however, being able to simply start extending random instances of other types proves remarkably useful when developing.
I'm not sure such a thing would work well on a team.
Has a brief overview in its README if anyone wants to check it out: https://github.com/ldyeax/MazeEngine
I have more expansive ideas for it but for now the main demo is this silly museum. https://jimm.horse/maremuseum
It's a fun experiment in seeing what JS can do, it's cool having it run natively on the web, and annotations get you a lot of the way there, but in a context like Unity I'd never pick it over C#. Typescript might be alright but at that point why bother? C# has anonymous types, tuples, and such today too.
Lack of Web and Mobile support
I tend to think the dev iteration speed is the core Unreal weakness.
The problem Unity have created is if something can be made with Unity it will get crowded out with clones in five minutes.
We couldn't even get Unreal to build as an embeddable library for a mobile app nor could we get it to build into anything that would run in a web browser despite more than a week of effort.
We had Unity working for both use cases in under a day.
PUBG mobile, which is in unreal, uses flutter for exactly this case.[0]
Yes. Well.
The idea that developer iteration speed is actually an indicator of project-completion-at-scale speed is really only true at a trivial scale; you know, when you only have developers. Maybe a handful of them. ..and like, one does-everything artist.
When you have multiple different teams including non developers working on actually building a significant game, crafting levels, assets, etc. the iteration speed of your handful of devs is really really a drop in the ocean.
There are a lot of very powerful tools in unreal for teams, and they have consistently invested in tooling (eg. File per actor) and real life production needs (eg. LED stage support) with their customers.
Unity has invested in different areas, with a lot of effort, and bluntly, nothing to show for it.
really only true at a trivial scale
You seem to suggest this means it doesn't really matter? I run a startup with 4 employees (only 2 of us are developers). I care about stuff in this "trivial scale" and a lot of other developers are like me.It's not just hobbyists and students.
And that includes most games.
Aren't they making shitloads on advertising?
This really has nothing to do with Unity. Flappy Bird could have been built on any platform and you would still have a million clones of it. Because it takes a day to make it. It's just as easy to clone that game in Unreal Engine, fwiw.
Unity didn't create the concept of the quickly built game, nor is Unity responsible for society incentivizing this type of game dev. If anything, the new runtime fees will disincentivize this type of game, so maybe that's a good thing?
Unity is already imho pretty bloated but at least useable and a sensible choice for both, Unreal is just too massive and more suited for console 3D type of games.