I really love that these game engines are doing this. As a hobbyist game dev with a day job and a night-shift (tfwgf), one of the biggest hurtles that keep me building on html5 instead of on desktop was the demand that I had to pay $$ upfront before I have any idea if I can even finish what I'm building (much less how the market will receive it). I mean, I don't mind paying the engine company their demands if I can make money selling my game, but I'm already risking my free time on a project that may very well go nowhere, so I don't want to also risk my money. I'm sure plenty of other folk with great ideas and skills are in this boat, so by finally offering a free version, I'm sure we'll be seeing more and more esoteric indie games that tell great stories, introduce fun new mechanics, educate the player, or make us lose faith in American democracy on Steam instead of the nonstop rehash of mainstream FPS games.
As for me, it's finally time to start building that Sierra-esque ancient civilization city-builder game (i.e. Caesar, Pharaoh, Emperor, etc.).
Unity's been free for years, you've fallen for their advertising to upstage Unreal.
"Finally offering a free version"
Honestly, it's been free for ages.
Not only that but Microsoft had XNA which was also a free game engine that they only discontinued last year so you're wrong thinking that html5 was the only option. I don't think you really researched the market much if you thought that.
Plus if you are serious about an RTS you should read about AI war, who used Unity. It's interesting as if you want to do multiplayer in an RTS you can't use Unity's collision detection as the float calculations are chipset dependant.
What most people don't realize is that the IEEE Floating Point standard (754-2008) actually doesn't standardize when a float should be rounded. Since most CPUs/GPUs are able to do FMAs (Fused Multiply-add)'s that are rounded after the operation, you get a different result than if you were to do a multiplication operation, then round, then add, and then round again.
I'm pretty sure Unity would be able to fix this if they had their compiler always handed rounding the same way.
Also: If you want to see a sane way to handle floating point, check out the Unum format (http://en.wikipedia.org/wiki/Unum_(number_format))... higher precision than IEEE, doesn't have rounding errors, and uses fewer bits.
My takeaway: It's hard enough that I'm probably never going to attempt to implement lockstep simulation, and if I was forced to I'd probably do everything in fixed point for my own sanity.
> higher precision than IEEE, doesn't have rounding errors, and uses fewer bits.
It certainly won't provide higher precision using less bits (precision is lg(b^(l - 1)), where b is the base and l is the number of mantissa bits). For any given base, there are numbers that have no exact representation in that base (for base 10, consider 1/3 = 0.33333…, for base 2, consider 1/10), so it certainly will have rounding errors.
According to [0], the basic idea is to store the number of exponent bits, the number of mantissa bits, and the inexact bit (indicating that underflow has occured) alongside the number itself, automatically promoting/demoting mantissa and exponent as needed, and treating inexact numbers as an interval of width 1 ulp. Thus, the number of used bits depends on the number stored (which might well be less than an IEEE format would use for certain (or even the average) workload, but may very well be more due to the overhead of the tag).
Fun game, but the AI eventually killed it for me. You can tell a villager to work on a bridge, and he'll sometimes try to walk around the river to work on the far side, starving to death in the process. Oops.
But that wasn't long after release, maybe it's been fixed by now.
So i can assume it means "that feel when girlfriend".
No idea why having a girlfriend would make you work nights?
This would make more sense in the context of
In my mind, the use case for Unity is mobile and other downlevel hardware. I still wouldn't try and target mobile or low-end PCs with Unreal Engine 4.
That said, I'm still uninterested in using Unity because of the implications of having a black box engine that underlies your project. Being able to step into the engine code is too important to my understanding and my ability to debug problems, not to mention the possibility to implement your own bugfixes or otherwise modify the engine.
In addition, the collaboration story with Unity still isn't great once your team scales past "tiny." Unreal and its Perforce integration were built and battle-hardened in the forge of AAA studios with hundreds of artists; Unity still encourages you to use a proprietary "Asset Server" which they charge extra for, and even then it gets awkward and prone to irreconcilable merge conflicts once you go past two or three people on a team.
> I still wouldn't try and target mobile or low-end PCs with Unreal Engine 4.
Agreed. I'd rather use Unreal Engine for lots of reasons. The technician in me prefers UE4, but the businessman in me made me choose Unity. Here's why.
I absolutely must deploy to Android and iOS. Last time I built the Tappy Chicken sample in Unreal, it was like 900 megabytes and made my phone hot enough to melt, and only ran on very high end Android devices.
I thought that after a year or so, Unreal Engine would get more serious about mobile. Maybe their idea of mobile is just different from mine. I'm not trying to deploy a pocket version of Battlefield 4 onto a phone. I'm trying to do fun little games that make money, and I want to deploy them This Year.
Unreal Engine just doesn't seem like a safe bet for my requirements. Which is too bad, because I love it so much. I wish I could use it for my products. I keep posting that little rant above every few months on the Unreal Engine forums, hoping that someone will explain to me how mistaken I am, and how UE is really getting their act together on mobile, and I keep getting disappointed.
I am delighted with Unity's announcement. And I've upgraded my main project to Unity 5, and it looks much more beautiful, and I'm excited. But I'd be even more excited if Unreal Engine made announcements that show they're a serious contender on mobile.
Unity doesn't suggest anyone use the Asset Server anymore. In my conversations with them, they actively discourage its use and point to their SCM plugins (which they've open-sourced) as the recommended solution.
You can integrate Unity with Perforce just fine. We started with the Asset Server, and then migrated over to Perforce at the last place I worked for. It did take a little extra effort to get it set up, but once it was, it worked great.
You're right that you can at least use Perforce as the underlying database, but "worked great" is subjective.
The concept of version control is much more integrated into the UX of the Unreal tools, with things like visual diff/merge support for assets built in.
Additionally, one of Unreal's killer features for scaling collaboration up with larger teams is the idea of editing a map in multiple distinct layers which are composed at runtime. This means you can have someone working on audio in the audio layer, someone working on collisions in the collision layer, someone working on lights in the lighting layer... all in parallel. If you tried that in Unity, all you'd end up with is a binary blob with a merge conflict, and n-1 people having wasted their time.
That's an excellent feature. the scenes in unity are binary and not merge-able. That feature alone left me considering other options when I was looking at game engines.
I am legitimately surprised they're using a binary format for scenes. That is very anti-source control in general. The only binary blobs in the entire project should be assets (e.g. textures, sounds, etc). Everyone loves to whine about XMl, but I'd happily take XML for scene layout over a binary blob.
Scenes and prefabs have been able to be saved in a text format for a while. That said, they were still effectively unable to be merged in all but the simplest of situations for reasons I don't fully understand.
Hopefully this was improved in Unity 5. One of the buried release notes mentions a new merge tool for scenes and prefabs in the engine.
I downvoted you, because one of the big features I have been waiting for with Unity 5 is WebGL export, and this thread seems to have a lot of misinformed commenting in it. Please research before you make claims about something. [1]
UE4 is a complex beast that will take a long time to master. It takes a team of specialists to truly leverage its power. UE4's market is high-end PC and console titles. UE4 is pretty.
Unity targets small shops and indie devs. It has quick iteration times for rapid prototyping of gameplay mechanics. It takes more work to make things pretty in Unity.
It will be easier for Unity to ramp-up its visual fidelity than it will be for UE4 to revamp fundamental workflow. We're already beginning to see these changes, like new GI (global illumination) system and physically-based materials in Unity 5. Perhaps Unity v6 or v7 will have graphics on par with UE4.
Although you seem to know what you're talking about, my experience isn't that clear cut.
I've used UE4 quite a bit. Just using blueprints, I didn't feel like I needed to be a specialist to do really cool stuff. And I wish it had something like C#. Also, it wasn't that quick to get something looking great in UE4 and took quite a bit of practicing.
Unreal Engine comes with full source updated live on GitHub, that is worth its weight in gold, sadly not even the Pro Unity subscription version comes with that option.
I think that's the issue though, hard to compete with getting it all for free without any lawyers or needing to even ask, especially when you are a paying customer. It will take time but with the source for Unreal being on GitHub it has the potential of becoming an actual "open" standard of sorts given how much the community can contribute back. It also makes it a greater platform for experimentation for universities and students in addition to smaller shops that can't afford to license it. Usually when a company says that the source can be negotiated separately the price is of the form of: "if you have to ask..."
My barrier to entry with Unreal is not knowing C++ - I picked up a few books and will be diving in shortly, but I'm already good with JS so UnityScript was easy to pick up (easy, but painful none-the-less).
I recently released my first game using Unity: http://newbeings.com/ and I spent a real long time weighing the different engines. I wish I hadn't spent so much time deciding on an engine, and had just picked one and gotten on with it. I think the differences are pretty negligible for first (and probably even third and second) timers. This news makes me happy!
Ya, as far as pricing it now seems there is no debate. No rev share and only having to buy the pro edition if you exceed 100k in revenue makes Unity superior on the price imo. Of course there are other factors to consider depending on the project.
An aspiring indie with zero track record should choose based on the strengths of the tools themselves. Making $3000 in a quarter is a pipe dream, let alone 100k over any time scale.
Why do you say that? The indie game market is not all that crowded, if we're thinking about games like Dear Esther, Gone Home, The Stanley Parable, Sword and Sworcery (all of which did way better than $3000 a quarter). Gamasutra, the other day, was lamenting the fact that there aren't enough games in this space.
Assuming we're not talking about the very difficult mobile market (but just about high quality indies on the PC), why is it absurd to think that a small indie studio could be quite successful (even with a first game)?
Because most of them aren't? You're naming the hits, but it's a lot harder to remember the games that failed (or the ones that didn't even make it out of development).
Your observation is sort of predicated on the idea of a shipped game. Do you think there are mountains of shipped games in that market that made little or no money at all? I'm just not seeing that.
What I see is some incredibly successful indie games where the niche is so narrow you can't believe it made money at all (think of a brutal puzzler like AntiRoom, which was another very successful one).
I guess what I'm really asking here is what you think the barrier is, because it's not an incredibly crowded market. On mobile, just getting your game noticed is next to impossible. That's easier in this space. Or maybe you disagree?
Instead of checking Steam's latest releases, which are the games lucky enough to actually get onto Steam, check other markets, like Desura[0] or Steam Greenlight[1]. There is an overwhelming amount of indie games, most of them mediocre at best. You only remember the very few polished games.
I think my question probably seems overly naive or provocative (it's being down voted, after all). I'm really just trying to divine the source of your cynicism. Possibilities include:
1. There are too many games; it's as hard to get noticed in this sector as it is on the app store.
2. You don't stand a chance if you can't make a polished game, and a polished game is going to have a $100,000 budget (or let's just say, way more than "I think I'll download the free version of Unity" can afford).
3. Most games are mediocre at best, and yours probably will be too (because the designers of those hits really knew what they were doing, and you probably don't).
Am I getting this right? All of the above? Some of the above?
I've seen lots of indie games that I think are mediocre become hits. I've rarely seen a game that I think is a gem go completely unnoticed. Part of it, it seems to me, is that a really tight niche game can become a hit within that niche and make a surprising amount of money doing it.
Take "Battle of the Bulge" by Shenandoah (which is an iOS game). $20,000 ask on Kickstarter for a game that is going after people who are into hex wargames. I'm going to guess that that game did considerably better than $3000 a quarter. They're making more, after all.
Similarly, there are people out there who love side-scrollers and will basically buy any side-scroller that looks even remotely good. If it is good, is it really going to be a financial bust?
It's some of all of them, but it's mostly #1. There's a big indie gaming glut. Every week Steam gets more new games than I can watch the trailers for, much less buy and play. And those are the games that manage to make it through Steam's (admittedly far less selective than it once was) admissions process. Like squeaky-clean says, check out Greenlight some time. Even if all of the games on Greenlight were good (they're not), who the heck has time for all of them?
hex wargames are:
1) not so small of a niche
2) a great marketing decision - just like space sim, this genre has amazing potential revenue per customer. That's proven empirically, as for a reason - I would hypothesize that main market for that sort of thing are nostalgic middle-aged tech specialists, which is a market with amazing "size * disposable_income" potential.
That doesn't only make the whole pie larger, but also drives AAC (allowable acquisition cost) up, which makes marketing so much easier.
You can set up your own version control via command line. There are tutorials on how to do this and what files types to ignore, etc. You just can't have it integrate into the actual editor... which as programmer is fine by me.
It's super trivial now to set up your own version control at the command line. One check box in editor preferences and I was up and running with my own private free mercurial repos on Bitbucket.
I remember this being the biggest pain in the ass with unity, so much so that I did want to use it for team development, so this is huge if they solved it.
Do you happen to have a link to which setting to switch?
"This is done by selecting Edit->Project Settings->Editor in the application menu and enabling External Version Control support by selecting Visible Meta Files in the dropdown for Version Control. This will show a text file for every asset in the Assets directory containing the necessary bookkeeping information required by Unity. The files will have a .meta file extension with the first part being the full file name of the asset it is associated with. Moving and renaming assets within Unity should also update the relevant .meta files. However, if you move or rename assets from an external tool, make sure to syncronize the relevant .meta files as well."
> This graphic, provided by Unity, will help make things clear:
What a joke. Both include "Unity 5 engine with all features." Except that they don't. If you click "Get Unity 5" you see a list of differences[1] between the two. That list used to be a little longer though.
There is also the source code. Being able to take a look under the hood is critically important. (trying to modify is insane, but just knowing that you can see what is going on inside makes integration and bug hunting much faster)
Pro license doesn't give you source access, that's negotiated in their enterprise license, which had always been the case. Idgo so far as to say if you're not modifying the source having it available doesn't add much for you.
Right, but it is things like the profiler, which you didn't have access to in Unity 4 free, that are now included. As a unity 4 free user, this is a huge improvement. The chart understates the value of Unity 5 free to people not familiar with the old ecosystem.
Are you sure about that? I didn't have a chance to look at version 5 yet. I thought the profiler was "Game Performance Reporting," which is not included in the free version. They mention "Unity Analytics Pro" separately (also not included in free). Either way, you're right, it is an improvement.
Ya, totally sure! Stuff like Profiler, Occlusion Culling, Render-to-Texture, and Post-Processing Special Effects are all now included. You can see it all this page, where they list all the "Engine Features" which are now the same for both versions. I think Unity should have listed some of this on their main chart, but perhaps they are trying to emphasize the value of Pro, because they don't want to lose pre-orders.
I absolutely love unity. I've been playing with it on and off for the past few years and it has been surprisingly easy for me to pick up. The free version has a pretty spectacular feature set.
I've had a lot of fun with 2d mode- as a learning project I recreated the Monkey Island I Melee Island scenes with mixed sprites from Monkey Island II. Such a blast re-creating a game from my childhood. I really need to find more time for this stuff.
The problem with Unity from game-player POV is that it's too easy. It means that anyone can make games, and I've seen too many games now that have beautiful art and crappy play experience. The games feel slow and controls sluggish. It seems that developers assume that Unity would take care of everything and they do not have to consider performance of responsiveness at all.
Whenever I see Unity splash logo I'm getting mentally prepared for mediocre experience. Unless it's a strategy or point&click game where performance is not important.
Would you suggest making it harder to develop games?
Nintendo tried that with the Nintendo 64:
Yamauchi took a different approach with the SNES' successor the N64, however, which was released in 1996 at least partly to distract attention away from the disastrous Virtual Boy. Yamauchi admitted at the 2001 Space World event that he had deliberately ordered the N64 be difficult to develop for. The intention behind this was to discourage untalented third-party developers from releasing poor-quality games -- it was no longer practical for Yamauchi to personally approve every game -- but the plan backfired somewhat: given the commercial success of previous Nintendo systems, third-party developers were still keen to get their games on a Nintendo console, and this consequently led to a number of sloppy, low-quality third-party games that clashed significantly with the high-quality first- and second-party titles that were being released on the platform.
What you're saying is true, but it doesn't matter. Good games with good performance float to the top, get featured, get shared, get popular. Not so good games fade away, and hopefully the developer learns something and tries harder next time. It's all good.
it's not so much about Unity or other beginner-friendly engines, it's much more about Kickstarter, Greenlight and Early Access (and probably Patreon a bit later down the line, don't see devs using it right now, although some modders do). All of those delegate the task of sifting through piles of crap to end users, whereas before publishers used to take those risks. Yeah, publishers - they actually did serve a function.
I was debating over trying out Unreal vs Unity last night. Unreal was looking more capable in its free version than Unity 4 Free, but I would prefer to learn C# over C++. This release makes it an easy choice to give Unity a whirl!
I think it's more likely for Unreal Engine. Epic have said that they're open to new language implementations as long as they are free and open-source (this being why they didn't want C#).
I've seen this type of comment before but usually in the context of someone that already knows either C# or C++. As someone that doesn't know either what factors make you want to learn C# over C++?
C#'s tooling and ease-of-use really blows C++ away. Plus there's the safety, where it's rather difficult to introduce a memory-safety issue into C# code, vs C++ where we see vulnerabilities every week due to this problem.
I doubt people use C++ if they have another choice. The big problem is that C#'s implementations do not handle memory well enough. The default for them is to heap-allocate most objects, then leave it up to the GC. This means a lot of hacky code to achieve good performance, but it still can't match C++ in many cases. (I'd guess that many apps could see a good double-digit% increase in perf in C# if you could just use the stack more often.)
Plus, if you can use C#, you can probably use F#, which is a far better language than either C++ or C#. Whereas if you need to be runtime-free and C-ABI compatible, your choices of expressive languages are rather limited (Rust being the most exciting one, probably.)
Edit: Also, C++ compilers tend to do a far better job at codegen. Though MS is starting to hint that they're gonna up their JIT story, but they've got a long way to go.
Edit: As to why you'd want to learn one or the other, if you're in games, it seems like you should probably learn C++ because it's so prevalent in games. C# is easy enough to pickup on the side though.
While I appreciate your well thought out reply I don't think you have the perspective I'm interested in learning about. From your reply I'd say you already know at least one of the two. I'm interested in knowing why someone without experience in either would choose C# over C++ or vice versa.
Maybe I misunderstand, but I don't think you want the advice of someone who doesn't know either, you want the advice of someone who knows both well.
FWIW, I'm a longtime C++ user, and used C# with Unity for a bit. I would recommend C++ if you need high-performance, low-level control, or access to native APIs. I would recommend C# if you want good performance in a Java-like language with the best parts of Java and C++. Also if you want to get a job with the Microsofty sorts of companies that have historically used C#.
However, you are more realistically constrained by your 3D engine. Unity does not have the option of C++ (to my knowledge). I'm assuming Unreal does not support C#. In the case of 3D engines your choice of engine is much more important than language.
I know both. I want to know what the thought process is that people are using to choose one over the other when they don't know either of them. I'm trying to learn their perspective, not get advice.
> As someone that doesn't know either what factors make you want to learn C# over C++?
If you want to try a job at the game industry start with C++. Besides Unity, C# tends to be mostly used for tools. In what used to be a domain of MFC/C++ and Qt/C++.
This might change with .NET Native now coming into the picture.
If you rather want to learn a language for a job at the IT industry at large, start with C# which alongside Java has been taking C++'s place, specially in Windows shops.
I'm sure I'm nitpicking here but this is a huge deal for me: forcing a branded splash screen onto the final product. Ugh! Why?! I understand a ton of work has been put into this engine and Unity is graciously offering it for free, but indie software is an individual's art. When an artist paints a portrait, you don't see a "Powered by Winsor & Newton Acrylic Products" stamped onto the bottom of the canvas.
I'm sure I'm coming off harsh here but seeing that limitation really turns me off from an otherwise unbelievable proposition.
It's removed if you upgrade to the pro version. Seems like a fair deal to me as it means studios who can afford it will pay, while indie developers just getting started don't need to.
Oh, I see... I was talking about: Unity is free, Unreal is free, now Source engine from Valve.. So we're waiting for Xamarin's step in similar direction :)
as I understand it the "game loop" that is inherit in the Unity engine makes any app made with it a battery hag.
Unity does not have an event based system, so it uses a lot more cpu then regular apps.
Their previous OnGUI based tick UI was meant for before mobile and caused many of these slower games. But there have been nice GUI systems like NGUI to help that. Their GameObject based SendMessage is too hefty and probably many new devs use that and have laggy games. Their core out of the box UI and messaging before Unity 5 was made for an era before mobile.
But if you know what you are doing it is C# underneath and you can always implement a messaging/event system, and many implemented their own UI or used popular assets like NGUI, EZGUI or DaikonForge (before they bailed when the new UI was released). The new UI is strongly influenced by NGUI as the original asset maker worked there on Unity UI, it took some different routes after he left but both are now very performance focused for mobile.
Garbage collection is one area where current mobile speeds are poor and hopefully IL2CPP can get to a place where it is optimized for that case. Now that Unity controls down to the metal it should be faster and better over time. They previously were locked to Mono 2.x performance on iOS though they still have to convert all their platforms other than iOS and WebGL.
Because I would like to do cross platform C# development (using Visual Studio IDE)... but the only option I found so far was Xamarin. But Xamarin's prices are out in the stratosphere somewhere. If they had a model like Unity it would be way better for us small developers.
In Unity 4 there was this weird licensing model where certain IOS/android features were not available for the personal addition (such as UDP broadcast, or network access).
Is this still true? or is unity 5 personal addition really contains all features?
So for Oculus, both Unity and UnrealEngine are free to use up to $100k/company/year and $3k/product/quarter respectively. Beyond that $75/mo or $1500 for Unity or 5% for UE4 seems small enough to just use the product that's better for your use case.
Right now UE4 works better with Oculus timewarp feature. The same on Unity5 apparently suffers from jitter.
With Unity 4, only the Pro version supported the Oculus Rift plugin, because the Rift SDK relies on render-to-texture support, which was disabled in the free version.
Now the free version of Unity also supports the Rift. That is indeed new.
Nope, they specifically released a Rift plugin for the Free version of Unity 4 just a few months ago. http://blogs.unity3d.com/2014/12/23/calling-all-vr-enthusias... With full lens correction that needs render-to-texture. Render-to-texture is still disabled in Unity 4 Free, but it is specifically allowed just for the Oculus plugin.
I just tested the WebGL export with a very simple 2D scene. It produced a 24MB compressed JavaScript file. I'm guessing it's the entire Unity engine that's portable to WebGL compiled with Emscripten. I wonder if it's possible for them to leverage the Closure compiler to strip out the parts of the engine your project does not use.
Title should have read "freeware versions". Considering how much stuff around mono is now free (as in FOSS, and not merely "freeware"), it's nice to state the difference clearly to avoid confusion.
You are always able to export to mobile with Unity Free (now Personal) but now the Pro Mobile features such as Static/Dynamic Batching, Code Stripping which is now included in the Personal version.
The only main difference is that you are paying $1500 to remove or have custom splash screen when you deploy to mobiles.
The timing is really, really close, but it's hard to believe they were able to roll all of this out in a day -- it's a new version on top of the licensing change. I think it's more likely to be a response to Unreal Engine's earlier price change of $19 a month than a response to yesterday's news.
I doubt they just said screw it lets release. This week is GDC so both companies were likely to make large announcements during GDC IT just so happens that epic didn't wait for their keynote, meaning it's more like unreal said "screw it lets just go for free"
They had to. Even their forums exploded with people asking about this. And honestly, I'm very glad they did it. Now I have two game engines to mess around with.
When in doubt, UE4 is going to be open source and Unity is not. In my book until Unity opens up their code there is no competition for anything more than a hobbyist toy that needs to get at the engine guts without a new car or more to see it.
Although Unity is not 100% publicly open-source without requesting for their source code license, they have released a bunch of their source code to the public.
Cloud build will probably send you iOS builds, but testing for those devices through that service is going to be a pain. I'd say you really want to run things in the simulator for a quick testing cycle.
The iOS simulator is ridiculously faster than a real iOS device and far less memory constrained. You can't develop an iOS game without an iOS device for testing.
As for me, it's finally time to start building that Sierra-esque ancient civilization city-builder game (i.e. Caesar, Pharaoh, Emperor, etc.).