Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Unity or UDK or CryEngine or...?

Discussion in 'General Discussion' started by Not_Sure, Dec 14, 2011.

  1. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,364
    Unfortunately, Unity's Mono runtime is stuck with a very old version which have lot of GC problems. There's no way you can avoid that.
    The only thing would free developers from such problems is to open Unity API to C++ development, where people will be able to manage their memory to some extends. :rolleyes:
     
  2. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194
    I believe the Unity mono version is on it's own branch and a team of developers are looking into improving the Unity API and the GC to resolve these issues.

    The latest Mono version could in theory help resolve these issues as it has a newer faster GC but apparently there are licensing/purchasing issues with this option.
     
  3. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,614
    That's not true.

    There's one way: don't use the GC. Or, in other words, don't allocate.

    The GC only runs when you allocate. Details vary, but it's along the lines of the GC running for every megabyte you allocate. So if you define "stable sections" of your game where you don't allocate, you won't trigger the GC during those periods. You can do anything that causes allocation between these "stable sections" - so you pre-allocate, put objects in pools, whatever, and then once a "stable section" starts you don't create anything new until you reach the end.

    There are a few areas where Unity (used to?) suck in this area. Any API call that returns an array allocates a new array, so if you can't avoid those calls you can't avoid that allocation, and the built-in GUI system allocates. So allocation free code isn't trivial. But if you need the performance, then you need to not allocate.
     
    Last edited: Dec 19, 2013
  4. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,364
    [SarcasmOn]
    Yeah sure, Unity Mono runtime is up to date and it's GC doesn't have any performance issue. :rolleyes:
    [SarcasmOff]
     
  5. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,614
    Did you read what I quoted? Because that wasn't it. You said that you can't avoid GC problems, which isn't true.
     
  6. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,364
    GC cannot be avoided (either any related issues that comes with GC). They can be minimized to some extends but will remain there which was I was trying to tell by "they cannot be avoided". And CG in mono 2.6 it's slow, really slow compared to more recent versions.
     
    Last edited: Dec 19, 2013
  7. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    But mono can't do graphics :(
     
  8. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,364
    Fixed. :rolleyes:
     
  9. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,614
    First, avoiding GC and avoiding the "GC performance problem" (as was the original question) are different. Secondly, in any case, you most certainly can avoid both when it matters in the majority* of cases, even if you can't do so indefinitely which is why I mentioned "stable sections"... multiple times.

    I agree that Unity's GC is slow. Nobody's saying it isn't. But saying that resulting performance issues can't be avoided isn't helping someone who asked a legitimate question and might get a lot of benefit out of a good answer pointing him in the right direction to make his game better.

    * And the remainder are those cases where you absolutely can't avoid using an API call that returns an array.
     
  10. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,364
    Can you quote me where did I said that?
    And please stop, re-arguing again and again, I know why GC happens and how to minimize it's impact. In Unity, GC will never be avoided, only minimized to some extends.
     
  11. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,614
    I already quoted it. I believe you may be misreading something?

    Anyway, the answers and information here weren't intended for your benefit, but for the benefit of the guy asking the original question and anyone else who may read it in the future. I'm not interested in debating technicalities. What matters is that yes, the GC is old and slow but yes, there are ways to manage that.

    'nuff said.
     
  12. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,364
    Sure and I totally agree. :rolleyes:
     
  13. Velo222

    Velo222

    Joined:
    Apr 29, 2012
    Posts:
    1,437
    I get your guys' point thank you. I understand that the garbage collection is slow and perhaps outdated. I hope sometime in the near future Unity can remedy that problem. In the meantime, thank you for your suggestion angrypenguin. There is still so much about coding and game development I want to learn :)

    I'm having a good time learning it though (for the most part). Not saying there aren't days where I'm pulling my hair out trying to fix a tiny problem for hours lol.
     
  14. ZJP

    ZJP

    Joined:
    Jan 22, 2010
    Posts:
    2,649
    Last edited: Dec 29, 2013
  15. Deleted User

    Deleted User

    Guest

    Or you could buy Jove on the asset store, or do it yourself.. Whatever pickles your fancy.

    One thing I'm interested in, as it seems Unity is can be heavily customized. How far exactly can you go with plugins..

    I'm not new to games development but new to Unity (8 Months), the more I look into it Unity feels like it's just an open box waiting to be filled full of delicious toys. I've looked into Async streaming, a whole suite of post effects and modern techniques.. It appears all quite do-able. If you have the skill, you could make Unity into a CryEngine replica (If you really wanted that sort of thing).

    In another way, I think I have got the wrong impression about Unity and what Unity IS. CryEngine and Unreal(Even 4) is an out the box all in, you just make a game (Yes UE has some programmable shader features).. Unity is a customization engine, made to deal with as many things as possible, I'm even looking into changing the rendering path to a standardized 64-bit deferred HDR path, customizing lighting models etc.

    But one thing dawns on me, whilst Unity is extremely flexible.. What I don't get is, for an Engine aimed at small teams of developers. To get where you need to get to in terms of competitive fidelity, Unity turns out to be the most difficult engine of them all.. A) You really need to know your stuff B) You need people who know how to implement this stuff. So in terms of cost a specific AAA all in engine with source can cost you less than a years worth of salary for an advanced techie..

    Unity is by far the most deceptive engine of them all, it's an engine for beginners learning.. It's an engine for experienced veterans, it is not an engine to save you time if you're creating modern fidelity 3D games..

    People starting out, or even in this for a couple of years.. Want to match CE on Unreal 4 in Unity? It's possible, but you will have a hell of a job on your hands and need a sizeable team with a vast wealth of experience. The penny has finally dropped. But what about the Asset store guys making real time GI in the space 3 - 6 months, sure it's do-able.. But you're giving up a tech who could be working on the dialogue system, or improving game play in general..

    IMO, I'd put Unity on Par with an open source engine or engine with source code.. Extremely flexible, has some cool features in it.. Won't do a lot of what you want it to do if you're aiming for the best visuals. Unless another coder has released a tool for it.. (Just like the asset store).

    CE and UE, artist and regular dev engines really, buy the complete set instead of having to hire expensive devs.. Closed down unless you have a significant amount of money.. Not very flexible in terms of modification. BUT! Why would you modify CE or UE4 if it does everything you need?

    That's something the developers need to find out for themselves. CE and UDK suffer's from an extremely cluttered clunky interface with several basic options like importation tools (Pointing at CE here, (No the RC32 pipeline is not a good example, stop stripping my materials off my models).. Which for an engine at the cutting edge of tech, seems a little odd.?
     
    Last edited by a moderator: Dec 29, 2013
  16. ZJP

    ZJP

    Joined:
    Jan 22, 2010
    Posts:
    2,649
    oh.. Jove or Alloy. Nice to know. Thanks.
     
  17. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194
    Unity we're pushing for this with their Butterfly demo, Physics Based Realtime lighting, not sure if it has pushed through from the demo into the freely available Unity shaders yet though.
     
  18. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Do asset store figures get published? I know of that large ngui figure, but id be interested to know what was making a bunch of money. Something unity lacks, confincing, foot navigable water, so a nice editor for waterfalls, navierstokes voodoo for ripples and some thought towards river flow. How hard is that to produce by an intelligent experienced programmer? How much money would that make?

    Unity's strength like that guy said above is that it's absoutely customisable and the unity store can produce a very specialised package

    Im still a bit mystified as to why the unity asset store doesnt have big underlines on the front page that flash on and off to highlight its importance, and more mystified at the fact that not many people have cottoned onto money making potentional and ability to specialise unity into an unreal4 thing, if thats what you want
     
  19. Deleted User

    Deleted User

    Guest

    About 5 days to release a CryTek style ocean shader but I wouldn't release it on the asset store, unless it sold for a large sum.. Every hour of our techies time is worth around $150.00.. So any support request's / feature requests would needed to be covered by the initial price.
     
  20. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Is that your techies as a group or one of them? Im not talking so much the ocean shader (as theres a few 3d ocean shaders on the horizon now) but the rest of the water stuff. That stuff would sell like hotcakes (lots of times 150), its the most obvious shortcoming of unity to me now the rest of the terrain issues are being well developed by third parties, for outdoor stuff

    I might add that from what i've gleaned some of the less obvious products on the store provide their creators an full time income or very healthy supplementary income
     
    Last edited: Dec 30, 2013
  21. Deleted User

    Deleted User

    Guest

    That's for a group working on getting it done to a high standard, apologies I shouldn't paint it so black and white.. Ocean shader is just an example, I could make you a fully volumetric merged system with Rivers / Waterfalls etc. (anything you want really, GI systems etc. etc.) Not an issue, even if I assign just two engineers over 5 days @ $50 an hour that's $2000.00, let's take other overheads to cover rent and actually make worth doing etc. $2400.00 and let's take the Unity share into account.. Now I sell it for $150? Maybe.. I earn $105.00 per sale

    I'd have to get 30 sales to make a profit of $750.00, - any support costs.. If an engineer spends an hour helping each customer (Most likely won't happen, as we'd do it properly) but take it as a worst case scenario. That's a profit of 0..

    So I'd have to double the price of the asset, $300.00 for it to be worth it.. People will undercut me and sales would drop, even if the quality of other assets isn't up to AAA standards..

    It hardly seems worth it :)..
     
  22. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    you only think youd make 30 sales? if thats a realistic figure for a major feature implementation then id have no idea how the asset store supported anything, not that i know better but yeah
     
  23. Deleted User

    Deleted User

    Guest

    I wasn't meaning it literal LG, point being there has to be a compromise on sale price vs. feasibility.. If I sold 1000 copies @ $105, with support there would be little in the way of profit. If I sold 1000 copies @ $300 - Unity fees with a profit of $210,000 - 25,000 dollars in support hours then yes I'd jump all over it I'd employ someone to support the app full time. But I'm not sure of the feasibility of 100 sales for expensive assets..

    Anyway, I'll be releasing some stuff for the asset store, I'll see how it goes.
     
  24. ZJP

    ZJP

    Joined:
    Jan 22, 2010
    Posts:
    2,649
    You seem to be very competent. It would be a shame not to enjoy it. Good move. Thanks. ;)
     
  25. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Cheers for the break down, it was just interesting doing a tour run round crysis 3 and thinking 'well that is in the store' 'not sure that can be done' 'why in lords name is that not in the asset store' and so on, just all these lil systems that your might not notice in something in crysis you definitely notice by its absence when your working with your terrain streams and rivers in Unity - can make all the difference. and on a cute note, while maybe altruism isnt high on a developers priority list, stuff like this raises unity's profile the more products it appears in
     
  26. Deleted User

    Deleted User

    Guest

    You are 100% spot on, anyone making or aiming towards a high fidelity game (Or even 3D games), I'd highly recommend checking out the CryEngine 3 SDK.. Even just for a couple of weeks, then come running back to Unity :)..

    The shaders are amazing, the volumetric effects are stunning. Cutting edge Motion blur, amazing AAA standard anti aliasing.. It is a true marvel and I've yet to see anything in Unity that can come anywhere close.. You really do realise how all these effects add up into a system that's a graphical marvel.. Then you'll also appreciate what Unity is and the vast difference in doing the simple things that in Unity people take for granted.

    The only argument I have in all this is who Unity's market is aimed at, which is mainly small indie's / medium indie's and mobile / 2d developers.. None of which usually have the budget to spend on top tier engineers working on advanced feature sets, I'm actually interested in why they went down the path of Beast instead of a real time lighting system and Umbra instead of there own Culling solution? You can get a free culling solution on the asset store https://www.assetstore.unity3d.com/#/content/221 or another one for $15.00 https://www.assetstore.unity3d.com/#/content/6391 .That boatload of money could have been spent on improving their own systems and adding features..

    Ahh well, I suppose it's more money for others.
     
    Last edited by a moderator: Dec 30, 2013
  27. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Youre right crysis has all this stuff, i was impressed. But unity could have it. Someone should make it, theyd sell a ton, and even indies arent looking out of place with their realistic water ripples and stuff that the asset store model opens the opportunity to, and the differences between engines seem incrementality smaller with the feature being a chosen customisation and you can make that, and sell more of your game cause youre engine wasnt as behind as mainstream mentality thought it was.
     
  28. Deleted User

    Deleted User

    Guest

    I'm back at work after new years, so I'm looking into viability of many things..

    Let's say I rip a lot of the tech from an engine we previously developed, a full suite of post effects, replace all the shaders and upgrade the rendering paths / terrain tools / create a vectored GUI suite / TOD system.. That should bring Unity up to scratch out the box, how much is it worth? If I was to evaluate and guess the work itself, I'd say it could take up to a year and the cost might come to price of Unity Pro itself..
     
  29. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,364
    We've build an engine (well a framework) on top of Unity, with our own rendering, lighting and shadowmap system, gameplay elements, and editor tools. It was based on our own engine (started few years back) called F.O.G, I've ported the engine entirelly to Unity.
    If you can package your ShadowEngine into a game framework for Unity, it could sell pretty well.
     
  30. Deleted User

    Deleted User

    Guest

    Appreciate the feedback Tato, how long did it take you to do all this if you don't mind me asking? What do you believe is a reasonable price?
     
  31. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,364
    About 6 months (it was done in two years frame but part-time as I was working out other features but my guess are full time = about 6-7 months). Well, for the price it'll depends the features your framework will have. A reasonable price would be between 100 a 200$. What are the planned features?
    PS: Let's move to the thread you've already started (to avoid derailing this one). :rolleyes:
     
  32. JonathanBolten

    JonathanBolten

    Joined:
    Dec 15, 2012
    Posts:
    50
    I've been wondering how adaptable Unity is to future changes in technology. Did you have any roadblocks with your engine/framework where something was just not possible with closed-source Unity? How much of your engine/framework is running on C++ plugins?
     
  33. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,364
    Unity is pretty solid to changes. And thanks to .net support through mono (which btw it's a bit outdated) helped us port our engine into Unity pretty fast. The only thing we were unable to properly implement was an automatic streaming system. Mostly because it's time consuming to implement such a system in an efficient way with the current state of Unity. Maybe when the Editor get's 64bit support, right now if we load streams and streams of data, it simply makes the editor explode. The entire framework is written in C# (previously C++ with some free libraries and tools).
    Video of my old engine:


    PS: Yeah i know, it looks like plastic garbage but I was alone back then and pulling everything myself. :rolleyes:
     
    Last edited: Dec 31, 2013
  34. JonathanBolten

    JonathanBolten

    Joined:
    Dec 15, 2012
    Posts:
    50
    Ah, still looks cool! :)

    On the subject on heavily modifying Unity, I've been thinking about what it would take to do C++ "scripting" (like UDK 4 has). I'm wondering if it would be possible to dynamically link directly to Unity's C++ interface from custom C++ code... completely bypassing the need to go through the C# middle-man. This idea may need its own thread for further discussion sometime. :)
     
  35. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,364
    C++ scripting in Unity is a waste of time. You better use C# for scripting (unless you really need to create something really critical performance wise, but that won't be scripting anymore :rolleyes:). And no, it won't be possible to have background compiling while playing as in UE4, It won't be possible in Unity (at least not with the current state of Unity). There's some features that will require a complete re-write of Unity core features and that's one of those.

    Btw, If you create one thread with such subject, please share the link, I'll be happy to join such discussion.
     
    Last edited: Dec 31, 2013
  36. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,364
    In fact, we were never trying to make a full fledged engine, but a game without engine (with a limited set of functionality). Only the tools and features needed to create our game. For example, we didn't need any terrain or complex physics simulation (only limited collision detection), we dint need any networking support or even multiplatform support, only windows, no complex culling system (only frustum culling) or scene/asset management. No large view distances or some funky post-process (and it was running ultra fast back in 2006 with very old 2002-2003 hardware).
    As you can see it was quite limited (but also all we need to create a game back in that time) and even so, it was quite tedious and time consuming (and frustrating quite often). With Unity, I only write tools (mostly gamedata tools and asset tools), low level gameplay behavior and shaders (it's like a simplified version of creating a game from scratch without engine). The rest, I don't even have to bother about as is like having a team of 100 engineers working for me! :rolleyes:
     
    Last edited: Dec 31, 2013
  37. Reanimate_L

    Reanimate_L

    Joined:
    Oct 10, 2009
    Posts:
    2,788
    Last edited: Jan 5, 2014
  38. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,364
  39. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    They all cost orders of magnitude more than just about anything in the asset store
     
  40. Tominator0524

    Tominator0524

    Joined:
    Jan 5, 2014
    Posts:
    2
    I tried UDK a while back and bought some of the highest rated books available at the time (2 years ago). However, the books were really written for the full licensed Unreal Engine and I could only get about half way through before it was no longer possible to follow along due to the differences with UDK.

    What really pushed me over the top toward Unity is the asset pipeline. Whether I want to import something from Blender or grab it from the asset store, its super simple in Unity. In UDK I spent an entire weekend once trying to figure out how to get a mesh that I made in Blender into my game. That was two years ago. So maybe its improved, but that's my reasons for leaning toward Unity.

    I think others have hit on that there are no royalties as well. So that is a major plus if you plan to every be successful with a game.
     
  41. Deleted User

    Deleted User

    Guest

    Unity should make a AAA scene.. (Demo)

    I think this would be a novel and creative experience for the devs over at Unity, even if it's just one scene and an intro. See if the engine really would stack up against the likes of Frostbite and CE / UE4.

    It's good for many reasons, it would shut us up. Get some press and I'd hazard an educated guess it would improve the engine :).
     
    Last edited by a moderator: Feb 5, 2014
  42. shkar-noori

    shkar-noori

    Joined:
    Jun 10, 2013
    Posts:
    833
    that's what they really should do, after they done the mobile demo, they really should do a end-user demo with highest graphics (something better that The Butterfly effect)
     
  43. Deleted User

    Deleted User

    Guest

    Yeah, from working with CE and UE / Frostbite.. You look back at the Butterfly effect and it's not impressive to be honest. You get a bunch of examples in CE and UDK, which are straight from the games they made.. So if you can't replicate it with them, it's got to be a layer 8 fault.

    Plus there was some "debate" as to whether or not the butterfly demo could be done in Unity :D.
     
    Last edited by a moderator: Feb 5, 2014
  44. shkar-noori

    shkar-noori

    Joined:
    Jun 10, 2013
    Posts:
    833
    and after they done the butterfly demo, i guess they had APEX destruction in there demo, but not in the engine it self, quite interesting though,
     
  45. kaiyum

    kaiyum

    Joined:
    Nov 25, 2012
    Posts:
    686
    I had a slight taste of UDK and haven't looked cryengine so either. But I have a checkmate which should stop this debate, at least for indie developers.

    Cryengine: You can build a hell of realistic earth, no problem. Are you doing all of these, just for fun? Or there is a money involved? Of course as a indie developer, you want to monetize your product, in some ways. If so, stop lurking with cryengine. Most cases, you will not be able to acquire a license. Cost is unknown. So you are playing with something to discover "you will most likely loose in the end for sure".

    UDK: 99 dollar per year. Sounds good. Check and check thoroughly, for their restrictions. Just get a license successfully, then lurk with UDK. Their notable restrictions are:
    And you can build for PC, iOS. Android export costs approximately $50K.
    Reference: http://gamedev.stackexchange.com/questions/23218/how-can-the-unreal-development-kit-be-used-with-android
    http://forums.epicgames.com/threads/929293-Questions-about-UDK-and-UE3
    http://forums.epicgames.com/threads/932913-UDK-to-Androidhttp://forums.epicgames.com/threads/910600-UDK-License-Fee
    http://forums.epicgames.com/threads/953164-UDK-price
    http://forums.epicgames.com/threads/754572-iOS-Licensing-Fees-How-does-it-work

    Now its your choice to pick engines.

    Does graphics matter so much???!!!! Sometime I find it as a "failure of artist", rather than "failure of engine". If it is not about huge development cycle, I might give a shot of "what unity is capable of, for free!".

    unity vs udk vs cryengine, is not really a comparison; it looks like "waste of time".
     
    Last edited: Feb 5, 2014
  46. nsxdavid

    nsxdavid

    Joined:
    Apr 6, 2009
    Posts:
    476
    Generally speaking you need to ask yourself the right question: What are you trying to build? What is your limiting factors?

    Any of these engines are generally limited by the skill and size of your team. Unity is no exception. The technologies are all good enough to make amazing looking stuff. Technology won't save you from unskilled artists. Or even from having skilled artists but not skilled technical artists.

    Be realistic about what you are trying to do as a team first, then pick your technology.

    David
     
  47. Deleted User

    Deleted User

    Guest

    No offence David, but I've heard this too many times.. See what you can achieve with OpenCL and optix frameworks then come back to Unity and tell me how much renderers (Not engines) make a difference. CryEngine and Unreal have some of the best lighting / shadow re-creation / rendering in the business among a mass of other components, which make a huge difference.. Now the toolsets vary, where Unity for the most part reigns supreme..

    If artwork is too much of an issue, there's the asset store. You should see manufacturer 4K's stuff in CE or UE4.. ;)

    For beginners, your argument rings very true. For experienced devs, then it's a matter of all things.. Even licensing and support cost's play a huge roll in the deciding factor.
     
    Last edited by a moderator: Feb 5, 2014
  48. minionnz

    minionnz

    Joined:
    Jan 29, 2013
    Posts:
    391
    Has it been done? I'd be interested to see a link/video.
     
  49. Deleted User

    Deleted User

    Guest

    It has, I can't show you UE4 for obvious reasons.. But here is K4 stuff I saw in CE:

    www.youtube.com/watch?v=7RBw4nUWayI#t=27

    Also something I was messing around with in CE :).
     

    Attached Files:

    Last edited by a moderator: Feb 5, 2014
  50. minionnz

    minionnz

    Joined:
    Jan 29, 2013
    Posts:
    391
    Hmm, that is impressive. Are you using baked lightmapping, or is that all dynamic?

    Edit: From CryEngine's documentation: "CryENGINE is doing all lighting calculations fully dynamic without using any traditional pre-baked lighting techniques. This article gives some insight into the reasons for that design decision." I guess that answers my own question :)