Search Unity

Is Unity any easier than UDK?

Discussion in 'General Discussion' started by techmage, Nov 8, 2009.

  1. techmage

    techmage

    Joined:
    Oct 31, 2009
    Posts:
    2,133
    I'm just curious, if someone has experience with both Unity and Unreal 3 Engine, now the Unreal Development Kit. How much easier is Unity exactly? or is it easier at all?

    I'm trying to decide which one to learn and Unity seems so nicely put together, well documented and all that.

    And UDK just seems so daunting. Is this just how it appears? Or does UDK become the more slick development platform once you get down some of the basics?
     
  2. Per

    Per

    Joined:
    Jun 25, 2009
    Posts:
    460
    Yes, Unity is easier, both to learn and when dealing with asset import workflow, though overall asset management is going to be down to whatever solution you use, Unity now supports Subversion and Perforce though so for most small to mid sized teams that's plenty.

    It's important to remember though that easy is subjective, you need to try them both and see which one you find easiest and the most enjoyable to use. Personally I find Unity gives me instant gratification while UDK gives me flashbacks to the early days of desktop 3D, however it's power in the right (and patient) hands cannot be denied.
     
  3. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,368
    UDK is for modders, very Unreal strict, it commes with a moddified demo version of UT3. By default your game is FPS ready. Is not a general purpose engine as Unity.
    If you would like to become a level designer and look for an industry job, or wana make a quick UT FPS clone, go ahead, otherwise stay away it pretty hard to make something else...
    Not to mention that getting your assets into the Editor, is painfull and requires lots of steps.
    Sure, the Editor's tools are better than Unity ones but in my case, i cannot trade low level control, easyness and asset integration for a bunch of fews nice tools...
    Dont get fooled by Unreal eyecandy capabilities, you can get similar results with Unity 2.6. Did you know that UE3 do not support more than one light casting shadows on the same object? The engine, will switch shadows automatically to the nearest light. A directional light will allways switch off any light's shadows!
    Perhanps, this is not the case with CryEngine...
     
  4. Alric

    Alric

    Joined:
    Feb 17, 2009
    Posts:
    331
    It's not all bad though eh :twisted:
     
  5. photex

    photex

    Joined:
    May 20, 2008
    Posts:
    12
    I'm conflicted on this.

    On one hand Unity offers a better overall value, toolset/editor, scripting system, and asset pipeline.... but yeah, it's the unreal engine with all it's name recognition, and yes though it's mostly eye-candy, that could potentially steal people away from unity.
    The UDK license is insane. You get the full featured package and don't have to pay for a license until you're ready to sell. Compare this to Unity where we can't use the engines full feature set unless we pay (very very little) up front but yeah, you never pay another dime. That's really risky, now more than ever!
    The UDK license states that it's $99 and then 25% after the first $5000.
    I think the UDK directly challenges the Unity licensing model at least on the PC. I don't think it's a coincidence that this is happening when Unity is starting to pick up speed and become a buzzword at GDC. Epic has for ages been known as the reference for game development done right with artist friendly tools but I think Unity has proven them to be rather outdated and they've raised the bar in many many areas.
    I haven't brought up Torque yet, that's because given the statement above about Unreal being used for modders only where you can really only make an FPS easily... yeah, that's Torque. Unreal is pretty straight forward to make all kinds of games. So is CryEngine for that matter. Are they as easy as Unity.. nope. Does Unity have LightMass? nope. Does unity come with a full copy of SpeedTree modeler and compiler? nope. Are materials easier to build in Unreal? double yep. Does Unity have an animation tree? Nope. Does Unreal support fbx, obj, lwo, blend, etc etc? hell no. Does Unreal have awesome terrain tools or run on mac or support web publishing, iphones or the wii? nope.
    I could go on and on but the point is that there are advantages to both unity and unreal and given the really really attractive licensing of the udk I fear it will cut a lot of potential developers from unity.
     
  6. ColossalDuck

    ColossalDuck

    Joined:
    Jun 6, 2009
    Posts:
    3,246
    Nope, if price is an issue then people would go for unity hands down given that it is so much easier to use and code. And then UDK is priced at $99 once ready to sell and 25% of revenue. Unity3d may cost $1500 straight up for pro, but you can design your whole game in the indie version and just upgrade the shaders and what not when you are ready to sell. And taking away the developers profit is outrageous.
     
  7. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,368
    Without sources, i don't see any interest on UDK, you dont have the same low level access as in Unity. Sure, Unreal modders will be happy now...
    But am not a modder, am a game programmer.
     
  8. WinningGuy

    WinningGuy

    Joined:
    Aug 10, 2009
    Posts:
    884
    If I was part of a large unpaid team hoping to find a publisher for my awesome FPS idea, I'd use UDK.

    It's a great opportunity for people in that situation. Then again, those same people could have worked on mod teams before to do practically the same thing.
     
  9. MadMax

    MadMax

    Joined:
    Aug 5, 2009
    Posts:
    203
    Agreed + 1000
     
  10. roychr

    roychr

    Joined:
    Jun 16, 2009
    Posts:
    33
    Unless you are actually programming Unity3d core itself you are only modding it with the SDK they gave you because you do not have access to the said engine core. Anything about Unity3d programming is modding game play feature. With no support for real time debugging I do not understand how you can actually say you are "a game programmer" and modders are not :)


    I have been studiying Unity3d for the past 6 months, then switched when displaying relevant information in the editor made me crazy because it was so laggy and it did not support real time debugging, I called quit.

    I checked Torque3d out, it had real time debugging, C++ source code access (you do not have source code access in Unity3d), but the documentation is just plain inadequate for people that need to jump into the ship. Although the engine IS very interesting, it gets my second place for having multi-platform deployment like Unity3d.

    Then UDK came out and I sat and checked it out carefully. The first thing that made me hesitate for the engine was the 25% cut on profits. Let me just state that after seeing that not only the engine has automatic voice recognition of wav for facial animation, easy and CLEAR modeling and animating tools, Easy integration with Nvidia shader tool (or you can use the visual material editor), a free liscence to speed tree (which costs 15,000$ per seat) a modern content browser. A visual scripting editor (that even my artist find easy to use, because its almost the same as XSI), stepable real-time debugging of scripts. Morphing animations on 3d models. Modern navigation system for AI integrated, Advanced cut scene editor... I could go on a couple more lines, but frankly, any other game engine available on WINDOWS has simply no chance of matching these features, its in its own league.

    Now the question you must ask yourself is : do i need all this ? do you target browser games ? Do I even need shaders ? What is my target audience ? Do I target Windows-only games ?

    If in any case you target hard core gamers and have a 4-5 people team, can handle 1 to 2 year dev cycle to learn the tools, and are not really interested in the free-online-MMO-Klondike-virtual-goods-that-has-no-real-value then this engine is for you.

    Until Unity becomes debuggable in visual studio, I am entirely staying away from it, I find Torque is a better dev platform than Unity. But both have bad documentation. Maybe its me but any documentation that is under the level of Ogre3d (a free 3d engine), is not good if you payed for it.

    If you are just plainly serious about making games, you can make games with any engine if you take the time to get it right. Right now, it has taken me a week to understand UDK, the Unreal developper network is very helpfull and the documentation is intelligent, concise and on par, if not better than with Microsoft. This summer it took me 3 weeks with a modeler to get the model importation right, in UDK its so well explained it took us 1 hour.

    There are multiple books on mastering unreal like http://www.amazon.com/Mastering-Unreal-Technology-Introduction-Design/dp/0672329913. The volume 3 on scripting is getting out 20th of December 2009 and should target UDK, I guess.

    So my 2 cents are if you want to make a next gen looking game easily with good graphic editing tools for artists, go for UDK, the 25% IS worth it. This engine costed 1.5 mil. to liscence 4 years ago... (used in more AAA than you have toes and fingers) Its worth the 25% to get real reusable skills if you also want to have a job in game dev.

    By any mean using UDK will cut the need to develop technology and you will be able to concentrate on making good game play instead !
     
  11. tonyd

    tonyd

    Joined:
    Jun 2, 2009
    Posts:
    1,224
    Most Unity users are actually writing code, and most Unreal modders are not.

    Using kismet is not programming.
     
  12. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,401
    Unity has very good documentation. Also the editor is not laggy at all, it's very fast, so I'm not quite sure what you're talking about.

    --Eric
     
  13. joew

    joew

    Joined:
    Apr 8, 2008
    Posts:
    96
    That's actually quite a failure at an elitist attitude. You should realize that working with mods and UDK is game programming and there is no difference between that and modding. I've worked in the industry for quite some time now and you rarely see any high level game code in C++ so does that mean that every single game you build is modding and not programming? Of course not! Both require programming to get functionality, they are exactly the same thing and the only difference is project scope. Although ironically as we've seen in the past there are mods are actually larger in scope than many games. You would actually say the guys are Gearbox were not "game programming" when building Opposing Force? Of course not.

    While I agree that I would do anything do have a debugger for Unity it does not make it impossible to develop with. We've recently ported our game in production from another engine to Unity and have had no issues at all. Do we miss having a debugger? Of course. But do the pros of the Unity platform outweight this fact? For us it does, but obviously as in your case your milage may vary.

    Having used many other commercial engines in the past such as Reality Engine, Unreal Engine, GameBryo, and a proprietary in-house engine I can assure you that Unity is a quite capable platform even without having some of the things we miss such as the debugger. I actually prefer it to the other engines given the scope of our games and how quick and easy it is to put something together. Also considering our targets are iPhone and web it is a moot point. Once Unity Tech. adds debugging support it will just make it that much better. We found the documentation and examples were absolutely great and got us up to speed very quickly, and we have never seen performance issues in the game and/or editor at all.

    Now note i am not trying to sway people from using UDK as if I was making a next-gen PC title and/or wanted to take a team and build it on the PC and pitch a fully prototyped game to a publisher hoping to land on consoles I would use it because publishers are all about lowering the risk/reward and if you are built on UE3 that is significantly less risk for them. And if you found Unity wasn't usable for you due to not having a debugger who am I to say that it isn't important :) I just wanted express what I thought about it from my experience.

    EDIT: And while I agree with the post above stating that using Kismet is not traditional programming I can assure you that unless you want anything other than a UE3 mod you will definitely need game programmers to write custom UnrealScript so that the designers can do what they want in Kismet. And it is actually quite a nice tool to have to be honest and a big improvement to development and prototyping with Unreal by letting programmers focus on programming and designers focus on designing the game.
     
  14. booger

    booger

    Joined:
    Nov 4, 2009
    Posts:
    27
    Put it this way...

    Say, I just want to prototype a game and pitch them to publishers. I use UDK... it's free during development.

    If any publisher bites (say, for PSN or XBLA or Wiiware), then make a sale and they would be the one giving the 25% royalties to Epic (Not me!), unless they decide to reprogram the whole thing from scratch.

    But lets say everyone turns down my game saying it sucks, but I still believe in it enough that I'm willing to self-publish. Then I use Unity3D indie to prototype it, upgrade the game to Pro right before the final builds, then get chummy with any group of indies who already have their circle of cross-promotion and purchase system set up.

    Of course like already mentioned, if I wanted ad-supported browser games or iphone, Unity is the only choice.
    Steam is another beast... whether Unreal or Unity3D it doesn't matter I suppose what you use... since I see that they can publish indie games made in both engines.
     
  15. fallingbrickwork

    fallingbrickwork

    Joined:
    Mar 16, 2009
    Posts:
    1,072
    With all this talk of UDK I thought I'd go and see what's what.

    Is it easier than Unity was the question...

    I've now been using it for about a day and I must say the editor is great although due to it's complexity most options are/seem to be buried with the other options. This makes changing minor things more long-winded than the overly simplified Unity editor. All this though is due to lack of experience, my working in UnrealEd is speeding upevery minute.

    Am I too concerned with web deployment? No.
    Am I too concerned with Mac deployment? No.
    Casual games? Not really.
    So why did I pick Unity... For the fantastic workflow. As I am working on a FPS it does seem logical to move to UDK, but, as a sole developer, the money I have spent on Unity Pro is considerable. I'm planning on running with UDK for a month to try and convert my horror project, and to try and achieve the great visual results i have with Unity, I'll make a development decision then.

    A few people have talked about Unity advancing with every release and maybe by release 3.x it may be comparable with toolsets etc. This for me is not an option as I could never justify any further Unity Pro upgrade costs due to family commitments etc.

    I do love Unity and I'm hoping Udk doesn't "do it for me!"... That said, with only 1 days usage I'm making great advances... I have my meshes imported and textured without an issue, and the material editor is plain heaven.

    Regards,
    Matt.
     
  16. hgm959

    hgm959

    Joined:
    Jul 9, 2009
    Posts:
    34
    I personally think it has more to do with the type of game you want to make. UDK, at least in my opinion, is made for First-Person Shooters and nothing more. The MMO that is being made with it (pardon me forget the name) is a fps type of game. I dont think any Unreal Engine is designed for making RPG's. When I say RPG, I mean like WoW, or Guild Wars, or any type of gameplay like those. I think this is the major difference between the two engines, not including editor, source code ect.

    Unity has the capabilities, and quality, to make the next Guild Wars. At least in my opinion. :) You just have to put forth the amount of time that not many people want to put forth. But that is just one type of game. Another that Unity has over UDK are RTS games. I dont think UDK can make these, mainly because it was not DESIGNED to do this. Unity has alot of advantages in areas.

    With all these good things about Unity, not trying to say Unity is not good cause its amazing, Unity lacks on some parts. I am sorry but Unity isnt the best FPS Engine. I think it can look as good but UDK has the ability to look better. UDK was designed for FPS whereas Unity seems, to me anyway, to be designed for a greater variety. They are both equally as great and amazing, I just think it comes down to opinion. As I have stated mine :p

    I will be downloading UDK just to have it, and look at it. I think Unity is the engine for what I want to do right now, but I will make a game in UDK JUST to say I did :D
     
  17. WinningGuy

    WinningGuy

    Joined:
    Aug 10, 2009
    Posts:
    884
    UDK is a great tool for making FPS games, or similar games that don't really stray for the general FPS mechanics.

    And as others have said, its rendering is just more polished. That's not a knock on Unity. Unreal is very specific in what they are targeting.

    Unity is the Cadillac Escalade. Decent torque. Roomy, and can be used for a variety of purposes. Pick up the kids. Lug a bunch of baggage. A road trip with all of your buddies. And it can go decently fast. If something goes wrong, it's fairly easy to fix.

    Unreal is a Ferrari. You can't bring your friends on a road trip. You can't pick up the kids. You can't lug a bunch of baggage. But if you want to go fast, you can go really really fast. If something goes wrong, it's really hard to fix.

    So, if you want to do a lot of things, then Unity will allow you to do that. It's more forgiving an more practical.

    If you know that you only want to go really really fast, then get Unreal. That's what it was made for. It has its purpose, and it accomplishes it very very well.

    Personally, I think if you have only a few people working on a project that you want to pitch to a publisher, create the entire level in Unity. Yes, even if it's an FPS.

    Then also create a mini-port in Unreal. Not the entire level. Maybe just one very small sequence.

    Use Unity to demonstrate your unique gameplay ideas and awesome game mechanics.

    Use Unreal to show how awesome you could make the game look. "With your investment, we could take those game mechanics you saw in Unity, but make it look like this."

    Then ask the publisher to buy you the Unreal license and a few million dollars for additional staff.
     
  18. joew

    joew

    Joined:
    Apr 8, 2008
    Posts:
    96
    If you are pitching to a publisher you really don't want to be showing them two different technologies you should choose to work with either Unity or UDK. Otherwise you look very unfocused. Sure it's great you have it working in two technologies, but in project management terms it shows time wasted on side focus which is definitely a knock against you.

    My personal opinion is that if I have a full team funded for pre-production (and I'm pitching to a publisher for production funding) on a title I'm hoping to push onto the 360 or PS3 I would probably look at using UDK, a good amount of the people on the team would already know how to use the tools and in a publishers eyes it is less risk.

    If I was funding the title myself, was not funded and/or an indie or small company I would definitely be using Unity hands down (and no coincidence our company is just finishing migration of a production title to Unity). I find Unity to have a much more proficient workflow when you are looking at small teams, one of the strengths of UE3 is clear separation between jobs (i.e. designers with kismet, animators with their tools, game programmers using unrealscript to supply designers for use in kismet, etc) and this isn't needed in a small team and sometimes feels like a detriment as people have to learn to use a variety of tools.

    EDIT: I also strongly disagree with people saying that you can only build an FPS with UE3... considering nearly half of the UE3 games out there are not in that genre. There really is no reason why you can't use it for any type of game at all I would love to hear the exact reasons why people are stating this? (not opinion but exact technical reasons). Having used UE3 before I'm just really interested what people have experienced with it that made them think this?
     
  19. KaelisAsur

    KaelisAsur

    Joined:
    Apr 9, 2009
    Posts:
    361
    People are saying that 'you can only build an FPS' with UDK, not UE3. UE3 is full SDK, with source access. UDK is 'just' Unreal Editor with some new tools/features and ability to publish standalone builds instead of mods. There is no source access; you have to rely on UnrealScript. Which is not to say its impossible to do a non-fps game, but as people have already pointed out, you would be fighting the engine, because this isnt what it was made for.

    As of now, only two games have been made with UDK - one is a simple example project, and the other one is UT3 mod ported to UDK.
     
  20. Timmer

    Timmer

    Joined:
    Jul 28, 2008
    Posts:
    330
    I am unfamiliar with UDK but can someone tell me what the difference is between "only" getting access to UnrealScript and how Unity works? Each is only providing an API to the engine not the engine itself.

    This is a sincere question -- I am busy enough with Unity -- but I am curious since I've heard the above before.
     
  21. DominuZ

    DominuZ

    Joined:
    Jul 28, 2009
    Posts:
    3
    Unity is user friendly.
    Its code is very fast.
    The editor is really great....

    ...but, Lightmass has no price.

    My heart is so divided.

    Lights and shadows are not the whole but are everything. :wink:

    I would love to hear that Unity will have a resource like this. Not just casting shadows but automaticaly rebuilding and baking all lightmaps for every object.
     
  22. joew

    joew

    Joined:
    Apr 8, 2008
    Posts:
    96
    This statement is incorrect as UDK is not 'just' an editor with some tools but a binary engine license with tools and the ability to publish standalone. There is no difference between Unity and UDK in this regard. Both are binary engines which provide you with an API through the chosen scripting language (either UnrealScript or UnityScript/C#) and you have no source access to the engine.

    My post asked for technical reasons. I hear a lot of people saying this same thing over and over and not a single one has mentioned something they were unable to do, or how they had to "fight the engine". People can repeat the same thing over and over all they want but so far not a single one of these people have given a concrete example and none seem to have ever used the Unreal Engine.

    Maybe you missed Whizzle?

    Note that it is starting to sound like I am pushing UDK on people but that is not my intention at all, as I stated our company evaluated technology and moved to Unity. I just want to clear up a lot of the misinformation being spread around on this thread as it isn't fair to either Epic or the people reading it.

    There is absolutely no difference for the most part as with UDK you get the Unreal Engine using UnrealScript and with Unity you get access with UnityScript or C#. Although there is one thing Unity allows with the Pro and iPhone Pro editions (although not the web player) which is having custom native plugins so that you can extend features and I find that really nice to have. Try not to listen to a lot of the riff-raff said here unless people start backing up what they are saying with actual fact.
     
  23. GaborD

    GaborD

    Joined:
    Jul 9, 2007
    Posts:
    42
    I agree to what you said Joew.
    I don't think UDK is really as limited as some people describe it. Unrealscript is very powerful. Just like you have all the power you could ever want in Unity.

    Most important differences between the two for me personally:

    pro Unity:
    -Exporting to Mac and Web is huge for my customers.
    -Unity is far more scalable if you need your games to run on older machines too. (this is very important for my clients too)
    -The Unity team is doing a fantastic and fast job at making Unity better and better. We don't know how Epic will handle the free UDK. Hopefully just as well.
    -Support. I only had to contact Unity support once so far, but that time they were fantastic. Solved my problem only 10 minutes after my initial mail.

    pro UDK:
    -top end, UDK has the graphical edge. The HDR rendering, dynamic object lighting and their shadowing system is fantastic.
    -Lightmass is a HUGE timesaver and produces absolutely great results without any hassle.
    -asset workflow is fantastic. Building your levels in the game editor is great. In Unity I can't really do it if I want a similar quality of lighting. Have to prebake in a 3D app... which means building there.

    Less important than I thought before trying:
    - the 25% you have to pay for UDK... simply because lightmass alone prolly saves 30% of the devtime.
    For bigger projects that make a lot money, this might be different, but in my range of small-ish contract games, the saved time would actually outweigh the extra costs.

    Is one harder than the other? Prolly just a matter of which one you are used to.
    Both have great workflows and help you a lot to get to your goals quickly.

    Ofcourse Unity is "easier" if you used it for 3 years and just downloaded UDK for the first time 2 days ago. No brainer. But that's not a fair comparison :)
     
  24. KaelisAsur

    KaelisAsur

    Joined:
    Apr 9, 2009
    Posts:
    361
    Thats pretty much what i meant. Perhaps i wasnt clear enough.

    Basically yes, although there are two small (or big, depends how you look at it) differences. One is that per UE3 docs, UnrealScript is much slower than, say, C++ (they say its intended for events/idle objects). The other one is that you cannot use native code, whereas in Unity Pro you have the possibility of DLLs/plugins.

    Yes, after some further research i admit you are right, people (me included) assume to much. I stand corrected. However, it is true that the default UDK samples and documentation are geared primarily towards shooters (example scripts, assets, maps, projects etc).

    Whizzle is the simple example project i mentioned.

    In general i see there is a lot misinformation about UDK, not just on these forums. Even on official UDK forums there are quite a few threads where people ask/worry about possibilities of doing non-shooter games in UDK.



    In addition, it looks like the licensing terms are in fact much better than what the license page makes it seem. Someone emailed Epic for clarification whether the 25% is counted from revenue or profit, and this is the response:





    As for the original question - is Unity easier than UDK - id say its rather obvious that Unity is easier, at least as far as learning it is concerned. Mainly because UDK is simply a much more advanced platform, with more tools, features, etc. Plus Unity Editor is very user friendly, and i find the documentation much more pleasant than that of UDK.
     
  25. tonyd

    tonyd

    Joined:
    Jun 2, 2009
    Posts:
    1,224
    The Unity editor reminds me of Apple software. The interface is simple, clean and uncluttered. It's relatively intuitive. It is obvious the guys at Unity spent a lot of time creating the interface.

    The same can't be said of the Unreal editor. Epic should hire some interface designers, because working with the editor is much more painful than it needs to be.

    Still, if I wanted to make a high powered FPS, I'd use Unreal. I just wouldn't enjoy it! :wink:
     
  26. joew

    joew

    Joined:
    Apr 8, 2008
    Posts:
    96
    Regarding the native code plugins for Unity I did mention this in my post as I see this as a very large benefit to our team. If we need anything done in native code on the iPhone it is quite possible. Even though we haven't run into a situation where this is warranted it is still nice to have available.

    Also note that while UnrealScript is definitely slower than C++ so is anything on the Mono runtime including C#. Although due to the 80/20 rule it really doesn't matter in game code as unless you have selected the wrong algorithm or data structure you should never have a bottleneck in UnrealScript or UnityScript/C#.

    Whizzle is actually a full production game being built by another studio. I don't want to link it here on these forums but do a search on YouTube for "UDK Psyonix" and they have a development diary detailing their use of the engine and what they are building.

    I've very curious as so where you saw that :) The only reason is because I was speaking to Jay at Epic just the other day so I'm wondering if I'm just the guy that didn't read the license clearly or if I am the guy they mentioned emailing lol.

    I definitely second this. Like I stated in an earlier post in smaller teams you will sometimes find the wide variety of tools in UE3 daunting because various people on the team will have to learn a few of the tools, whereas in a AAA production house it is an absolute blessing because the lines are drawn in the sand :)
     
  27. Bael

    Bael

    Joined:
    Jul 21, 2008
    Posts:
    106
    UnrealScript sacrifices raw speed for ease of use and readability - and was created with the assumption that any speed-critical code would be created (or re-created) in C++. Scripts in Unity also suffer decreased performance, though I doubt it's to the extent of US.

    Also, you can use your own DLLs - it's somewhat of a hack to do, but it's fully possible.

    It's to be expected, considering Epic only makes FPS games - and most of the Unreal indie community comes from UT modders. :) I think we'll start seeing a lot more non-FPS examples in short-order, now that UDK is stand-alone and a more serious option for indies with commercial goals.

    Unity is definitely easier to learn since (from a tools point of view) it's fairly basic at this point and was built specifically for public consumption. Basic is good sometimes, you don't always need the whole shebang. Our own in-house engine (360/PS3/PC) shares a lot in common with the UE3 feature-set, and from what we've found once the engine and tools are really robust it's nearly impossible to maintain a simple sleek UI everyone will understand. The engine, tools, and UI are revised and built with the understanding that whoever is using it is already familiar with the workflow basics (or at least the tools within it they use) - not really for the un-trained public, or someone that can't be trained in-office. Engines like UDK are actually just as intuitive to use as Unity, but you really need someone there to help you learn - cause figuring things out on your own can be impossible at times.
     
  28. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,401
    It's not comparable...Epic says UnrealScript is 20X slower than C++, whereas scripting in Unity is 50-75% as fast as C++. It's feasible to extend the Unity engine with scripting--the terrain system is primarily C# scripts, and so is the OnGUI system. This gives Unity a huge amount of flexibility that you simply can't get with UDK (and is, incidentally, the reason why source code access for Unity is unimportant for most people). The two engines appear to have very different philosophies regarding the role of scripting.

    --Eric
     
  29. KaelisAsur

    KaelisAsur

    Joined:
    Apr 9, 2009
    Posts:
    361
    http://forums.epicgames.com/showpost.php?p=26964231&postcount=46



    Im still learning about UDK (not that i even consider switching from unity, never! :) but its good to know your options) and it seems that there are some crazy limits regardless? For example, these two threads make it look like there is no generic file i/o in UnrealScript:
    http://forums.epicgames.com/showthread.php?t=705640
    http://forums.epicgames.com/showthread.php?t=705705
    UDK is all nice and shiny, but if this is true, its pretty much a deal breaker imo. Can someone more knowledgeable confirm this?
     
  30. joew

    joew

    Joined:
    Apr 8, 2008
    Posts:
    96
    Thanks for the links, interesting read :)
     
  31. MadMax

    MadMax

    Joined:
    Aug 5, 2009
    Posts:
    203
    Joew are you coming from the perspective of a programmer, game designer or artist? The Unity API is up to the same level as the C# MSDN API. Which you are able to utilize through Unity for C# language features. A lot of my code does not even inherit from monobehaviour and are thus not scripts.

    It would have been nice if unity used C# .net for the whole engine. C# .net is highly optimized resulting in C# with 98% the speed of c++.
     
  32. ryanzec

    ryanzec

    Joined:
    Jun 10, 2008
    Posts:
    696
    While I believe that properly written C# code is faster than the 50% - 75% that someone else said, I don't believe that when both are written properly, that there is only a 2% difference from C# and C++. I have no tests to back me up but I would say properly written C# code is about 85% - 95% as fast as properly written C++ code depending on what the code is doing.

    While I am sure it is completely possible for UT to rewrite the engine to be pure C# (there are a number of commercial engines built on C# only) there are 2 potential big issues. First of all, while the performance downgrade might not be huge, I bet it would be noticeable. The second thing is that would probably create issues for expanding the different platforms Unity could be run on (not to mention creating issues on the platform Unity already runs on). Since most people don't need access to the source code anyways, they should just stick with C++.
     
  33. joew

    joew

    Joined:
    Apr 8, 2008
    Posts:
    96
    I've worked as a Programmer, Technical Director, Production Manager, Platform Leads so I've had to work on or with all of the above.

    Sorry this is one of those misconceptions I should have just used the word code. There is absolutely no difference in saying you "coded" something or "scripted" something... you used a language to solve a problem. My bad I forgot that a lot of people online bicker over calling something script or code even though they are equal.... in the industry I've always referred to gameplay behaviour as scripting.

    Are you saying they should have used the MS .Net runtime for the scripting? (which would lose the ability to run on other platforms) Or that the entire engine should have been written in C# using Mono?

    You are incorrect regarding C# being 98% of the speed of C++ as I have worked with it since the initial beta on many projects. Benchmarks are fun and games (some show nearly identical performance, some show C# lagging by 50%, etc) but when you get a full application running you are more around 60-80% of the speed of native code (which in most cases is perfectly fine). You aren't coming close in floating point performance though, and all middleware is in C++ and you would have to write wrappers or PInvoke requiring even more overhead.
     
  34. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,401
    I'm going by what Joachim said, who probably has some idea. ;) Also that's in line with what joew just said above.

    --Eric
     
  35. Bael

    Bael

    Joined:
    Jul 21, 2008
    Posts:
    106
    Like Eric said, they're two entirely different philosophies. UDK is robust enough that you literally don't need to extend core functionality like you do with Unity. Pretty much every core-level system you need for a AAA game is already built into the engine. So saying one is 20x slower is completely out of context - because it's meant to do things where being 20x slower is plenty fast enough and with room to spare.

    And don't take me for some Unity basher - I love Unity. But lets face it, UDK is a commercial-grade game engine with many AAA titles under it's belt. It's industry-proven and intended for larger specialized teams and bigger budgets. Unity is primarily a casual / web game engine intended for smaller teams. Both can make fun games, but it's apples and oranges, and trying to directly compare the two feature to feature is unfair to them both.
     
  36. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,401
    Unreal engine is, yes, but UDK is not...it's the development kit that uses the Unreal engine. Important distinction. ;) If you want to do anything really custom with UDK, you're out of luck--but that's not what it's for.

    It's not out of context, it's that scripting in Unreal is for different things. You're meant to have scripts basically not run as much as possible; they are for handling events. Saying "UDK is just for mods" is not really true, but I see where people are coming from. You can run your entire game with scripting in Unity, which is not something you'd do with UDK.

    That's definitely true. The overlap between Unity and UDK is pretty small; I would say they're not even really competing.

    --Eric
     
  37. cannon

    cannon

    Joined:
    Jun 5, 2009
    Posts:
    751
    Just an observation. I believe that UnrealScript running 10x to 20x slower while C# running only 2x slower than C++ makes a lot of algorithms impractical in UnrealScript.

    Semantically script and code may be the same, but the speed of Mono and the coverage of the Mono .Net library (file system access, serial port access, custom UDP protocols etc.) does make a practical difference in what can be done in each language.
     
  38. MadMax

    MadMax

    Joined:
    Aug 5, 2009
    Posts:
    203
    Mono is not as optimized as c# .net

    Especially in Integer Floating Add. For me its about 4 or 5 times slower then .net.

    I would like to see someone implement an r-tree in unreal script
     
  39. joew

    joew

    Joined:
    Apr 8, 2008
    Posts:
    96
    This is very true actually, although I believe it makes a difference in real world usage and context. As realistically you don't want to be doing anything intensive in gameplay code but should just be hooking events, which is what UE3 is modelled after and it's how we have our code running with Unity. If I see myself building algorithms that start showing up in a profiler over the engine the first thing we would do is to look for inefficiencies and optimize, and if that wasn't enough the code would be written as a native plugin and called from Unity in script. Optimizing out performance intensive operations in game code is one of the first things you would look at doing when looking at performance. (Obviously this does not pertain to the web player as that is a totally different situation and you would just design the game around that)
     
  40. cannon

    cannon

    Joined:
    Jun 5, 2009
    Posts:
    751
    That got me worried enough to run a quick test of Unity Mono vs .Net 3.5 with some simple operations involving integers, floats and a cosine. Mono runs around %10 faster than MS.Net for my test. I guess speed is dependent on the context of the algorithms, but it seems that 4 to 5 times slower is not the general case.

    @joew

    Unity is an odd beast. Gameplay code is done in script of course; however other things that are normally done in-engine are also done in script.

    To be honest, this is the first engine I've seen where I've had to write my own occlusion system. And then are people out there writing their own lightmap baking scripts. It's really kind of bizaare at times.
     
  41. MadMax

    MadMax

    Joined:
    Aug 5, 2009
    Posts:
    203
    That is good to hear was that on windows, I did my testing a while back on mono 2.0. How long was your test run? You want the test to run for at least a minute or two and adjust your testing procedures accordingly resulting in some kind of moving average.
     
  42. ryanzec

    ryanzec

    Joined:
    Jun 10, 2008
    Posts:
    696
    Unity is different than most other engines when it comes to code. Any class the extends MonoBehavior I would consider gameplay code. Any script that does not is generic code that in most other engine would be done in C++ (and a lot of the time that code can be done in C++ with Unity Pro as a plugin if deploying to web is not important).
     
  43. cannon

    cannon

    Joined:
    Jun 5, 2009
    Posts:
    751
    Running off Windows XP. The test was about 7 seconds, with precautions to preclude setup/teardown times for the test. I'd do a longer test but I'm already half asleep as it is :wink: .
     
  44. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,368
    I will quote my self because few people misunderstood me...

    What am saying is that UDK is mostly targeted for Modders, because of the UnrealScripting nature ( being too Unreal specific ) and the visual logic editor (Kismet). A modder is not a game programmer, is a level designer.
    Sure, modders will create games but you cannot call a modder a game programmer, no sense. However, both the game programmer and the modder ( level designer ) are "GAME DEVELOPERS".
    Btw, Unity developers are actually game programmers. C# is not an scripting language, is a pure object oriented programming language, made for programmers, not for level(or game) designers.
    However, a level designer ho creates games with unity, is also a game programmer!
    By the way, scripting language are higher level than programming language. :p

    Wikipedia definition of a game programmer:
    Diciplines:

    * 2.1 Game physics programmer
    * 2.2 Artificial intelligence programmer
    * 2.3 Graphics programmer
    * 2.4 Sound programmer
    * 2.5 Gameplay programmer
    * 2.6 Scripter
    * 2.7 UI programmer
    * 2.8 Input programmer
    * 2.9 Network programmer
    * 2.10 Game tools programmer
    * 2.11 Porting programmer
    * 2.12 Technology programmer
    * 2.13 Generalist
    * 2.14 Lead game programmer
     
  45. saymoo

    saymoo

    Joined:
    May 19, 2009
    Posts:
    850
    Here's my personal input on the two:

    Unity:

    - Mainly for casual gaming (which can be quite complex to make, even if it doesn't have that appearance)
    - Easy art pipeline
    - Script language to hook everything together (game logics etc etc)
    - Binary only Engine
    - Support for multiple target platforms
    - Only non AAA titles published so far.
    - Lots of potential for indie developers (small and big)
    - Good community
    - Free for commercial and non commercial (unity edition) but with quite poor features compared to the PRO version
    - Regular updates, stable state.

    UDK

    - Mainly geared towards AAA titles (and substantials
    from it: aka mods)
    - Less easy art pipeline compared to unity
    - More tools out of the box
    - Script language to hook everything together (game logics etc etc)
    - Binary only Engine
    - Support for (as of writing) one target platform
    - Only AAA titles published so far.
    - More up to date visual posibilities.
    - Good third party tools provided for free and working well together with engine (speedtree, bink, facefx, physX)
    - It's the Unreal Engine, still the same as you would get if you compiled the sourcecode of the engine, and tools, only precompiled for you
    - Good community
    - Free for NONcommercial usage, two different licencing models for commercial usage, quite fair priced compared to the engine status.
    - Regular updates, beta stage (currently)

    As you can see, two different beasts, but with some elements the same (like updates, free, community, binary only, scripts etc)

    It all depends on your projects need, which engine fits best. Non of the two are BAD or worse, compared to the other, they are different in approach and target audiences.
     
  46. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    The UDK actually has 2 games published only, one was especially developped for the UDK and the other is a re-released UT3 mod.
    Perhaps you are by error misscounting Unreal engine based games with UDK games which would be an error as you can't go up as far as the games you are counting, you don't have any source access with the UDK
     
  47. saymoo

    saymoo

    Joined:
    May 19, 2009
    Posts:
    850
    i think, you make an error, it the unreal engine 3 latest build, but the binary version (see it as the standard compile one would do with the source release of the engine). Just like Unity.
    The two games you are referring too, are games that where ready, when the UDK came out. But the list will surely grow huge over time. If you look at all the mods done, some are soo beautiful AAA class. But back then they could not release it commercially or standalone. The unreal script is very advanced and has hooks directly too C++ routines build in. (either via tcplink or inscript), the build in tools are very advanced too. That's also the main reason why this engine is very much in use for major studios, in contrast of e.g. CryEngine, Tech4, Source, Gamebryo etc.

    To be clear, i'm not bashing towards Unity at all. But i'm quite nutral in my opion, as to end user experiences (both developer and player)

    Unity is in fact great, rapid, and solid. But has a great deal to go (roadmap), before being able to reach the posibilities of UDK/unreal and the other major engines/frameworks. I'm confident that Unity will get there, but for now, it's just not there yet. e.g. compared to render speed, quality, thirdparty support, toolset, etc etc.

    That's why i mentioned it's a different beast (more a teenager, compared to the big engines, but it will grow fast, in it's own way. )

    It's surely a solid flexible engine, it's even the best engine (unity) for some projects, even technically, but don't expect the same results (visual end-product presentation) as those big guys engines deliver, YET.

    It's a simple head-on fact, but how soon unity is a serious competitor for the major engines? time will tell (i think not too far in the future, if the dev's are pushing the envelope harder)

    Personal note: I'm NOT a Unity fanboy NOR Unreal or any other engine. I'm using logic in reasoning and reading. And seeing the gamemarket movements. And ofcourse technical movements. I am currently seriously investigating Unity (free) for my project needs, if i was bashing unity, i was bashing my own time investments too. ;)

    Just to make clear: i wanted to change the biased posts, but put a more realistic post. (fact based, logic based)

    Unity is great, So does (to stay ontopic) UDK.
    Each for a different audience, different project size. :)

    I hope the dev's of unity will be encouriged to look at how the other successful engines do their job so well, and WHY they are so popular among devs. (and the reason the audience like game made with it, no it's not all assets, nope, it's also the technical part that the engines delivers) See it as a stimulance to stay very active, and keep making unity better and better, (but be quicker then before, timescheduling is earning or loosing customers)
     
  48. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    I know that the technology is the binary release of the current Unreal tech. But it should be clear that a source usage targeted technology has significant restrictions when its beeing used in binary only.

    None of the games you were talking about were done with the binary only /without source modifications, so they don't fall into the "created with UDK" category. Its like saying Fusion Fall is a Unity Pro project, which is just as wrong as it was done with the Unity Source license.
    I just wanted to get clear that this point is actually not correct on your comparision list as they were not done with binary only.


    I agree though that there will be more games comming with it, especially those teams already having UT3 mods will likely want to adopt fast as they can reach a far larger audience when they get rid of the UT3 requirement without considering the income possibility :)
     
  49. Alric

    Alric

    Joined:
    Feb 17, 2009
    Posts:
    331
    But iPhone games are scarcely comparable to the sort of game produced in Unreal engine. Those are clearly two completely different markets.

    In Unity desktop releases it's probably a bit closer. UDK has some significant advantages in high end features especially graphical. But hand in hand with that is a high system requirement, lack of webplayer and multiplatform distribution. So unless you have the resources really to make those high end features count, could be shooting yourself in the foot.
     
  50. myunity

    myunity

    Joined:
    Nov 7, 2009
    Posts:
    117
    sorry,i am newbie:

    Dose udk has import from 3DMAX/MAYA/ZBRUSH?

    WHAT is UDK outputs?pc/ps3/xbox/psp?

    So thanks.