Will Unity or Unreal Engine 4 suit better for me?
For some years I learned programming in C++ and currently I'm working
through a book regarding to learning (Game Development fundamentals with) the SFML library.
After I worked completely through this, I will make a few (small) games with the library, after which
I will move on to a game engine to start my first 'real' project.
The reason why I didn't immidiately start with an engine is the fact that I like to know roughly what goes
on 'under the hood' in terms of things like game mechanics and math.
But then the question arises: should I use Unreal Engine 4 or the Unity engine?
I can't really decide which one will be better in my case due to the following reasons:
Unreal Engine 4 has better graphics, which will be usefull because I would like to make a FPS project, but on the other hand I don't need the best graphics, so maybe unity will be sufficient?
On the other side I've read that Unity is quiete a bit easier to get into. Unreal Engine 4 has the advantage that you can use C++ (which is ofcourse the language I know), but I have the idea that there aren't so much good up to date C++ tutorials and learning sources on the web, as most of them tend to focus on the blueprint system more.
So my question could be split in two (+extra) parts:
-Are the Unreal Engine 4 graphics way better than the ones of Unity, or just a bit?
-Is it much easier to learn Unity than Unreal Engine 4. And: are there much good up to date C++ Unreal Engine 4 learning sources out there?
-Extra question: do you have other advice, you would like tot share regarding this topic?
Thanks!
I'm learning Unreal now myself, started last week :). I will update my notebook (http://www.gamedevpensieve.com/engines/unreal) as i learn more so you might wish to save a link to it for future reference.
@spinningcubes | Blog: Spinningcubes.com | Gamedev notes: GameDev Pensieve | Spinningcubes on Youtube
Note though that it's designed for bigger teams with specialist skill sets.
E.g. The animation part assumes animator knowledge and the AI part assumes AI knowledge.
If you have a good amount of all round knowledge of gamedev you'll get by fine and if you have a team of experienced developers, artists etc you'll get on really well with it.
Unity is more for lone developers and as such is simpler.
As an indie you can produce a really nice game quickly in either.
Have fun!
Games/Projects Currently In Development:
Discord RPG Bot | D++ - The Lightweight C++ Discord API Library | TriviaBot Discord Trivia Bot
-Are the Unreal Engine 4 graphics way better than the ones of Unity, or just a bit?
I believe thare are one or two things that UE4 does that Unity does not, But Unity may also do one or two things that UE4 does not.
-are there much good up to date C++ Unreal Engine 4 learning sources out there?
Unfortunetly, There is not much C++ tutorial around.
But I believe Epic is aware of this and working on it.
-Extra question: do you have other advice, you would like tot share regarding this topic?
Use both if you can and then make a final descision.
You can check out the "Unreal Engine" YouTube channel if you want to see some of there tutorials and livestreams.
Are there an specific graphical technices you need for your games?
With UE4 you also have the option of getting the source from GitHub(once you've linked your Epic account to your GitHub one) and checking out a branch or fork and using that.
Right now UE4 does not seam to have a built in GI solution(there is the heightfield GI, But I don't know if that is viable).
There are forks for GI: VXGI(Nvidia Gameworks branch) And AHR branch)*
HTH
-Edit-
*I am refereing to realtime GI
Never say Never, Because Never comes too soon. - ryan20fun
Disclaimer: Each post of mine is intended as an attempt of helping and/or bringing some meaningfull insight to the topic at hand. Due to my nature, my good intentions will not always be plainly visible. I apologise in advance and assure you I mean no harm and do not intend to insult anyone.
Unreal engines graphics can be far superior if you have an artist that can make use of them, and if your assets are made for PBR.-Are the Unreal Engine 4 graphics way better than the ones of Unity, or just a bit?
For the majority of indie games the budget isn't there and the difference doesn't matter.
I'm not sure if Unity has PBR yet?
Unreal does have realtime dynamic global illumination but you have to turn it on in your engine.ini - look in their wiki to find out how.
Have fun!
Games/Projects Currently In Development:
Discord RPG Bot | D++ - The Lightweight C++ Discord API Library | TriviaBot Discord Trivia Bot
I'm not sure if Unity has PBR yet?
Yes, for several years now.
Unreal engines graphics can be far superior if you have an artist that can make use of them, and if your assets are made for PBR.
Not really superior, both engines have roughly equivalent graphics capabilities IF YOUR ARTISTS USE THEM.
The out-of-the-box shaders for Unreal tend to be what I would call more gritty, or what many games call more real-world. Artists can use whatever they want.
The same with the out-of-the-box controllers, many games have a "unity feel" or "unreal feel" because they stick with the standard motion controllers.
Games can implement whatever they want and develop their own feel, but many hobby games just stick with the defaults and, as a result, have the feel matching the engine's default values.
Remember that with Unreal Engine 4, they are allowing developers full access to their source code of *everything* (engine, editor, build system, test framework etc...).
At first, this may not mean too much to hobby developers just looking to use the engine for their own games but rest assured this will guarantee that Unreal Engine 4 will keep on being available forever. Whereas since Unity is closed source, it is very likely that it will fade out of popularity and existence like products before it (XNA 4.0, Adobe Flash, etc).
Developers who are willing to improve the Unreal Engine will port it to newer technologies (such as alternative operating systems like FreeBSD and less known distributions of Linux). This cannot happen with Unity. This is also the reason why UE4 could output to Flash and HTML5/WebGL almost an entire year before Unity could even though UE4 is a much more complex engine to port.
Also researchers trying new things out will gravitate to Unreal Engine 4 to try out new and innovative technologies (such as I am attempting to do for my own PhD). This means that Unreal Engine will just be more interesting to everyone in the long run. I actually see prosumer software like Unity as a product rather than as real development tools.
Not to mention, C++ is simply a more portable language than C#(any .NET language) so will remain available well beyond our lifetimes :). Like Microsoft VB6 (and Java to some extent), C# will become "uncool" one day and simply no longer be used for many things (especially in the game industry).
As for "getting into", UE4 has blueprint which is very friendly but a little bit inflexible or C++ which is very flexible and as long as you only use simple features (like you would in C# anyway), can be fine for beginners. Typically a mix of both Blueprint for the general flow and C++ for more involved logic are used and seems to work well.
I personally find that with Unity, you are thrust into a pretty much lifeless game world after dragging in a bunch of models and there is not much fun to be had until you get used to the design of the code and have followed at least a couple of video tutorials.
Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.
I just fielded an email with a similar question only for an RPG. As I told them if you are experienced with C++ then use Unreal, if you are experienced in C# use Unity...if new to it all learn C# and use Unity. I also stressed that you should pick the engine that suits your game's needs and in your case of an FPS, both engines are perfectly capable of making that. Graphically they should both be able to handle almost anything you and your team throw at it. As for the learning curve, it should be minimal as they both have a wealth of documentation, tutorials, and howtos on making different games with them. So for you I'd recommend Unreal due to your knowledge of C++.
Playing around with Unreal today and updating my notebook. Found this Survival sample game. Not tried it yet but it might be nice for you to look at Dalphin :).
@spinningcubes | Blog: Spinningcubes.com | Gamedev notes: GameDev Pensieve | Spinningcubes on Youtube
The biggest difference between them, IMO, is that Unreal comes from an AAA lineage and has relatively recently started extending its reach down to mobile and indies, while Unity comes from a mobile (iOS) / indie lineage, and has been steadily extending its reach towards greater and greater AAA ambitions.
What this means for users is that they're really both converging towards similar capabilities, but they come at it from different beginnings. Both companies have a huge staff dedicated to ongoing engine development, very capable people all around, so you shouldn't make the mistake of assuming that Unreal is somehow more legitimate. In practice, Unreal has put a lot of effort into user-friendlier tooling with UE4 but there are still more and sharper rough edges than in Unity's tooling. Unity is more friendly for the casual developer, but sometimes the fact that they assume lesser of the average Unity user can get in the way -- Usually you can get around it, but it sometimes seems like more work than it ought to be, or that what you need is more hidden.
Licensing is also a big difference -- both in terms of access to the C++ source code (which you might come to need for performance tuning) and in cost to you to license either engine for commercial use. Unreal offers up C++ source code access for free, while Unity charges ~$50,000 last I checked. For usage, Epic wants 5% of your gross revenue above $3000 per product, per year, but there's no seat license -- this is nice and simple; its also entirely free if you're using it to make CG films, IIRC. Unity wants $75/month subscription or $1500/one-time fee per seat, per platform-package (e.g. extra iOS, Android features, Consoles -- which I think are a higher fee) for the Professional Edition, but they don't take a cut of your sales after that. There's a Personal Edition License for Unity that's basically free all up -- no royalties, no seat license fees -- and the engine is feature-complete, however, you lose some really nice non-engine features, can't get C++ source without a professional license, and the personal licenses aren't available to any team that's made more than $100,000 in the previous year, or who's currently funded more than $100,000 -- its a viable option for a small team working on little or no budget, though (and if its relevant to your plans, keep in mind that if you did something like Kickstarter and collected more than $100k during a given year, that's going to count and you'll need to pay up.)
Depending on what platforms you target, how many developer seats you're licensing, and how many sales you expect to do, one of these options will save you money; If you make a lot of sales, Unity works out to be less expensive in the end -- the break-even point is lower or higher as a function of how many seats and platforms you license, and whether you need C++ source; but, you pay unity up front, regardless of whether you make any sales at all. Unreal costs more when you're successful, but it doesn't penalize you if you have a commercial failure -- 5% is really never a burden. When I worked it out once, basically if you make less than a couple hundred thousand in sales, Unreal is the cheaper option; if you make more than that Unreal costs you, but making "too much money" is a wonderful problem to have and you'll probably be overjoyed to give them their 5%. That 5% is definitely cheaper than a team of high-caliber engine developers.
That said, whichever is most comfortable and has learning resources and a community that suites you is probably the way to go. Your game is always more important than the engine, and these engines and toolsets are already close enough to parity that neither will block you from achieving your vision.
throw table_exception("(? ???)? ? ???");