Considering Unity3D

im relatively new to development, but ive managed to figure out how to do pretty much anything i want with UE4 blueprints, but there are some things that has me considering unity… i dont mind C# at all, its as simple if not more in some ways as blueprints, so no issues there, but i do like how C# scripts in unity are made to be more modular, with simpler, smaller scripts, the prices for pro seem to be a better deal than UE4s 5%, though, not as good as unitys old $1,500 flat fee they got rid of… and in terms of graphics, ive played good games in both and both are quite capable, and with unitys new features in the 2018 beta theyre really going to close that gap

as for unreal, i think it does have better tools for creating terrain and maps, i like that theyre investing in blender to get better compatibility with free modeling software, and i do know how to set up custom events and functions to keep blueprints from turning into a spaghetti monster, and support for free content, community support, and tutorials has improved immensely over the last few years

so what would you say to sell me on staying with UE4? why do you stay with unreal?.. and my last question is which is faster when compared to C++, UE4s blueprints, or unity3Ds C# scripts?.. ive heard both sides say theirs is faster but ive never noticed much, nor seen much data to show one way or another

anyway… maybe im just seeing the grass as greener when it really isnt?

Which one is faster? Faster in doing what? In some things UE is faster and in others Unity is faster, and that also depends on the platform and how you implemented them. No simple answer for this question.

selected_engine = get_engine(project, time, budget, familiarity, target_platforms, …)

Only you can implement this function and answer the question.

I started with Unity, now testing Unreal. For a noob they both have their ups and downs, but yes concerning making terrain and also working with character animations, Unreal seem way superior. On the other hand Hololens and Unity seems to be married.

The pricing though is the main reason that I am not sure yet to go all in with Unreal. Unity also offers multiplayer hosting with their pricing.

Another factor is support from staff and forums, tutorials updates with new versions, bad answers etc, not sure who wins there.

My god. This again.
Why not just read the bazillion topics already discussed to death?!

The greatest read was that guy advocating for F# to replace C++ and Blueprints…
He nowadays is probably programming on H# by now while we peasants still stuck on archaic C.

yeah, i havent tried messing with animations in unity yet, but theyre pretty easy to set up in unreal… that could be an issue

IMO Unity animation stuff in general is better and more flexible with the mecanim humanoid/generic rigs, avatar setups and masks and playables. It’s not even that hard to use and fine example of that is VRChat where there are hundreds of characters made by noobs. However depends of course of the project what kind of features you need and it’s best to try out both instead of relying on forum comments on either place.

yeah, i dunno, there are some things about unity that irk the heck out of me… while i dont mind C# scripting, i absolutely hate visual studio and monodevelop isnt much better, i do not like having to rely on opening external programs to do something as simple and basic as editing a script, i like that its integrated into UE4

It depends on the project

yeah, it just seems the more i learn about unity the more i realize its more limited functionality and how to get functions of the engine that are built right into UE4, you have to pay for them… which doesnt really surprise me since their CEO is the same guy who was running electronic arts when it lost 70% of its stock value and nearly went bankrupt due to some shady crap that pissed off a lot of gamers

you know, the more people who consider switching to unreal to unity, or unity to unreal, the better it is for all of us… unreal becoming free and delivering competition to unity for small devs has forced unity to up its game with their next release closing the gaps in graphics between the two, which is going to force unreal to either offer even more to its users or reduce costs… either way, when both engines compete for the same group of potential customers, we all win, dont you think?.. so its healthy to remain open and entertain other options

Unreal is complex, sometimes odd since everything is so nested, but once you figure out how to debug, where to look, it usually is for the most part a great workflow. You will likely encounter brick walls with any software when creating an advanced game. This is probably not the perfect analogy, but look at the top games at Twitch, which games are made with Unity? Sure there is the rather simple Hearthstone, but then you have games like PUBG, the Flintstones, … errr I mean Fortnite :slight_smile:

ive played some games with unity that looked and functioned fairly well though, the forest would be the best example as far as what ive played… ive played saurian as well on unity but to be honest that game looks like **** when compared to other dinosaur oriented games made with unreal such as ark, and the isle… but the new beta update of unity with an HD render pipeline geared towards PC and console gaming to separate from the mobile device **** they churn out, theyre really closing the gap on graphics

still though, i think i prefer blueprints to C#… im not sure why, c# often takes less typing and no need to move nodes just for organization but i like being able to see which scripts are being ran, and when, it makes it a lot easier to debug in my opinion… as an example, i had one script referencing another script referencing back, ending up in a loop that was caught immediately that likely would have gone unnoticed in C# because blueprints let me actually see what was going on during gameplay

the other problem im having with unity, just recently discovered is the guy they have running it… the same CEO that crashed EA stock by 70% almost sending the company into bankruptcy by some really retarded decisions by the company… why unity would hire that guy to run their company is beyond me but i keep thinking unity is going to end up with online passes or something

Your main issue will be when something does not work or has a flaw in Unity and you will not get access to the source code to solve it by yourself, while UE4 the source is there for who needs it. I have solved 4 issues with my projects just looking on the source code to understand why it was not working. So, depending on the project one can have issues he will need to wait for Unity to give a solution and of course UE4 with an issue you will have to wait, but the average releases per year for UE4 is 4-5 releases, which is mostly thanks to the fact the source is available and people help finding issues and solving them, how about Unity? How frequently they patch their stuff?

One thing to consider is Unity has more jobs you can apply for if you eventually want to get a job using it.

I’m not sure whether that’s true, there’s many more AAA studios using UE4 than there are using Unity. But there’s definitely more indie studios using Unity than there are using UE4.

I am just basing that off Unity’s GDC talk. I forgot the specifics but they said unity developers are 7th on the LinkedIn’s 2017 U.S. emerging jobs report.

I’m very biased against engines where I can’t tinker with the source code. If your project is expected to have a relatively short dev cycle (<1 year) or you’re targeting mobile and browsers, Unity is a no brainer. But if you’re planning to do anything that involve one or more of the following:

  • Open world
  • Tens of thousands of assets
  • Multiplayer
  • Long dev cycle

You are in for a world of hurt going with Unity. In my experience the friction with Unity increases the larger the project becomes, while with Unreal it’s usually the opposite. Personal pain points I had with Unity and long running projects:

  • Managing assets in large projects. You cannot easily move stuff around without breaking references and you cannot easily find out whether an asset is being referenced at all to clean up unused/leftover stuff. Asset search is very limited (cannot limit search to inside a folder, for example). Unreal’s redirectors and asset reference viewer make this much easier.

  • There is zero in-editor support for testing multiplayer. Zero. The “officially recommended” way is to make a build and connect the build to the editor. Except on larger projects “making a build” can take a quite significant amount of time. I had to resort to using symbolic links to create a linked copy of the project so I could open two Unity editor instances, which has its own drawbacks. This is the real reason so few indie games have multiplayer. On Unreal you can simulate multiple players plus a dedicated server all from the same editor instance.

  • The library. Pray you never have to re-create it. Last Unity project I worked took three hours to build the library from scratch. Since the library cannot go into source control, everyone who checks out the project for the first time needs to sit around waiting for it to be generated. Which basically means Unity re-imports all textures, models and sounds. Unreal’s equivalent is the derived data cache, but that only stores two things: platform-specific textures and shaders. It does take some time to generate, but if you are working in an office you can set up a shared network location so everyone can re-use already generated data and be able to work on the project as soon as they check out.

  • If you hit a bug you cannot work your way around, you’ll have to upgrade your Unity version and that means re-testing everything to make sure it didn’t break anything (which it often does). With Unreal at least you can ward off making full upgrades by making/backporting specific changes/fixes. This doesn’t only applies to bugs: if you’re targeting consoles, the engine version which supports the required PS4/XB1/Switch SDK version for publishing doesn’t goes too far back. The longer your dev cycle is, the more likely you’ll be forced to update closer to release, when it’s the riskiest to do. I managed to shoehorn PS4 SDK version 5.0 into an UE4 version that only supported 3.5, for example, in order to get a late port to pass certification.

  • On Unity you need to plan your localization strategy from the start: there’s no built-in localization support, you have to either roll your own or use a 3rd party solution. On Unreal localization is a first-class feature, even if you “forget about it” most of your game will be localization-ready by default.

The thing about Unreal is that inevitably you need to get your “hands dirty”. Some stuff can be only made from C++, some stuff requires using the actual engine source (building for consoles). On Unity you cannot get your hands dirty so they are forced to make certain things more accessible. Certain basic things are outright undocumented in Unreal and remain so because lots of people eventually figure it out by peeking at the source (though Unity’s documentation is very subpar for a closed source solution: Adobe Flash had a far superior documentation back in the day, for example). It’s not perfect by any means and has several weak spots (needlessly binary assets, for example).

Anyway, being knowledgeable on multiple engines is definitely a plus. You should always look to develop your skills as a game developer, not just a “<insert-engine-here> user”. The more engines you use and get familiar with, the broader your horizons become. Same goes for using multiple programming languages and paradigms. So size up your project against the available options, don’t get too attached and don’t be afraid of trying something new. Test the waters with small one-off projects and prototypes to get the feel of things and see if it suits your goals.

i think it depends on the indie studio… if we’re talking PC/console gaming i think the fact unreal is more of a complete package, and the fact that blueprints is less intimidating to beginners than C# because it doesnt ‘look’ like traditional code is going to attract more smaller studios in my opinion… overall though i think a lot of AAA studios prefer to keep their engines in-house given how the reputation of unity has become rather tarnished by all the frankly crap games that have been released on it because its available to complete beginners who do not have the kind of knowledge and experience the employees of an AAA studio might have

overall, i like blueprints more than C#… i dont see it as necessarily being easier to use, but i like that i can see which scripts are running live which makes it so much easier to find and fix mistakes or debug something, and blend spaces for me were easier to get working than unitys alternative… as for the source being open on unreal… i wish there was a truly open source gaming engine that could compete… but unfortunately the problem with open source is the “too many cooks in the kitchen” syndrome where everyone wants to pull development in another direction and little gets done… just look at how painfully slow it was just getting linux to be user friendly, and blender still isnt for the most part

so i’m going to stick with unreal, i think its overall a better, more complete engine that having more built in tools vs having to find and buy 3rd party tools or make your own on unity makes unreal easier for me

For beginners to get started the most important is actually support, and correct update tutorials. Finding something on Youtube from another noob doing in a bad way can be a problem. Finding other developers in your country/city is another concern.

Concerning code, as I understand it you can write pure C++ into Unreal instead of using BP, right?

I honestly see this as a win-win scenario these days. The community becomes tighter and more focused, plus I get to amuse myself by reading through the thread.