Unity 4 Brings DX11 To The Huddled Indie Masses

By Alec Meer on June 18th, 2012 at 7:00 pm.

OMIGOD A DIRECTX 11 BUS

Hey, developers! Erm. Just wanted to say hi, like. Also, you might be interested in the next version of the increasingly ubiquitous Unity engine, which is toting all sorts of hypermodern features (they even say ‘hypermodern’ themselves in their press release, so for once I’m not to blame for a superlative-based portmanteau) aimed at making it desirable to indies, mainstream, mobile and mucking-about devs alike.

DirectX 11 (as shown above, apparently), a new character animation tech called ‘Mecanim’ and publishing to Flash and Linux are the headline features of Unity 4, though there’s also (and less relevantly to this blog) a bunch of additional mobile gaming stuffs in there too. Basically, it’s Unity putting its arm around the Unreal engine’s girl, curling its lip into a knowing smirk and intoning those most sacred of words: Come at me, bro.

It’s probably painfully obvious to all that I’m not a game developer (maybe one day, if someone will have me), so it’s best for all concerned if I simply quote bits about the new features rather than pretend to assess whether they’re as useful as they sound.

Let’s start with Mechanim (oh hey, another portmanteau). Apparently it “brings your characters to life in a few mouse clicks with incredibly fluid and natural motion. Mecanim combines a slick interface with powerful tools for creating state machines, blend trees, IK rigging, and auto retargeting of animations all inside of the Unity editor.” So that’s increidbly, slick, powerful. If they say, I guess.

The DirectX 11 bump adds in features we often hear mentioned in graphics cards ads but not in so many games as yet. To whit, “increased shader capabilities with shader model 5, tessellation for smoother models and environments in game worlds, and compute shaders for advanced GPU computation.”

The Linux support aspect I will say something about, because if Microsoft is determined to push its Windows 8 app store as the exclusive way to get hold of whatever PC games it elects to get behind, it could well be that some of us start looking for a garden without quite so many walls to frolic in. I don’t see Linux making huge leaps and bounds in terms of being gamers’ go-to PC OS any time soon, but the more games and dev tools that support it the more it can thrive. So yeah, good call. Unity estimate some 10% of gaming PCs run Linux, which frankly does sound a little high to me, but hell, I’ve not surveyed anyone.

There’s also these things, which I quote partly because it’s relevant but mostly because “bent normals” is a ludicrous and possibly inadvertently offensive phrase.

Shuriken particle system supports external forces, bent normals and automatic culling
3D texture support
Navigation: dynamic obstacles and avoidance priority
Major optimizations in UnityGUI performance and memory usage
Dynamic fonts on all platforms with HTML-like markup
Remote Unity Web Player debugging
New Project Window workflows
Iterative lightmap baking
Refined component-based workflows
Extensible inspectors for custom classes
Improved Cubemap import pipeline
Geometry data improvements for huge memory and performance savings
Meshes can be constructed from non-triangle geometry – render points & lines efficiently
Search, live preview and buy Asset Store assets from the Project Window

A beta version of Unity 4 will be available soon to anyone who pre-orders the $1500 Pro version, but at an educated guess it will filter down to the free license version once it’s on general release.

__________________

« | »

, .

65 Comments »

  1. MordeaniisChaos says:

    We’ll see I guess. Unity hasn’t been great in the past, despite being capable of oh so much more. THe few games I’ve played with it have either been hideous (with a few neat effects ontop of their awful, awful, awful assets) and they’ve ALL been janky to control/play, just because the engine handles inputs poorly.

    • blind_boy_grunt says:

      huh? what’s wrong with unity’s input handling?

      • Makaze says:

        Nothing that’s not fixable. But their default/demo code leaves a lot to be desired and a lot of games just reuse it straight up (along with a lot of other dodgy code that’s really meant to teach, not be in a polished game).

        • trjp says:

          In fairness, the biggest problem with Unity is that the tutorials and demos are woefully out-of-date and/or poor (and this will make that situation worse again).

          Unity is actually a very clever bit of software – it’s capable of things you wouldn’t have dreamed possible a few years ago (write once, deploy to almost every platform there is) BUT the learning curve is like that picture people usually post for Eve Online – of a backwards cliff with death things on it – but worse again.

          It also sports a shit UI, is a nightmare when it comes to things like code reuse and source control is a woeful joke even if you pony-up the full monty BUT underneath I’m convinced it’s the best solution for multiplatform development.

          UDK might pip-it for really complex 3D games with large scenes and other stuff (e.g. it’s a better modelling tool) but when it comes to programming a game in pretty much whatever language you like – Unity is where it’s at.

          • Baines says:

            That’s my main issue with Unity, learning to do something “right”.

            The tutorials look nice at first, but then you notice that they are written for Unity 2.0 and some are over 4 years old. It doesn’t help that the tutorials tend towards just doing plug-and-play with a downloaded asset package and pre-written scripts.

          • FriendlyFire says:

            Unity is in fact a lot like Javascript (which it ironically uses): it’s rather easy to make dumb things that barely work, but making something good and solid takes a lot of time and effort. I wouldn’t say more than on another equivalent platform, but it’s certainly not faster.

            The IDE had me reeling in five minutes though. I want to see code, damnit!

          • stupid_mcgee says:

            Unity doesn’t really use Java, though. It supports C#, Boo, and a custom UnityScript language. UnityScript is Java-like, but is not actual Java. If you’re doing a game in Unity, C# is probably the better way to go.

          • boldoran says:

            He said javascript not java. The languages are about as dissimilar as it gets (apart from the name)

          • pkt-zer0 says:

            Unity uses its custom version of an outdated version of Mono, leading to a bunch of silly bugs (I once found one that made its compiler crash. Works fine in .NET proper, of course.)

          • jamesgecko says:

            Unityscript is to Javascript as Visual Basic.NET is to Visual Basic. Which is to say, they’re not very much alike once you get past the surface. Like Visual Basic.NET, Unityscript is more like C# with a fuzzy leopard print syntax draped over it.

    • nihilocrat says:

      Awful assets are the fault of devs using awful assets. Not everyone is an artist.

      Awful controls are the fault of devs using awful controls. It really depends on the game, but the builtin First Person Controller controls are probably not tuned very well. There’s been some improvement in 3.5, but also a ton of complexity added for anyone wanting to tweak them. Good controls take time, I don’t see anything in the input API or even the input settings (despite being cumbersome) that would limit a dev’s ability to make very finely-tuned adjustments to their controls.

    • exogen says:

      Does anyone but me have trouble with Unity running at all?

      I can run shit, my computer isn’t a complete piece of shit but it’s pretty old and definitely not up to par CPU-wise, but I cannot get more than few FPS on any unity engine game, if it even runs at all.

    • joeroyo says:

      I would recommend checking out some of the more “tight” titles that have been released recently. Rochard for example is Unity, and the upcoming Pid is also Unity.

  2. RealoFoxtrot says:

    …… crap….

    this means that Unity is leaving Mac developers behind…

    • RC-1290'Dreadnought' says:

      I don’t think they’d leave Mac developers behind. It sounds to me like they’re simply adding more compile options.

      • joeroyo says:

        Correct, there is no chance of us dropping support for Mac. Linux is a tasty addition rather than a swap.

    • Trent Hawkins says:

      well you still need to be on a mac to get a game out to the iPhone, so mac development ain’t hurting any.

  3. InternetBatman says:

    The Linux option is the biggest news to me. Microsoft has been pretty blatant about its walled garden strategy for a few years now, and I want no part of it. Linux is nowhere near there yet, but if Mint keeps on getting better and the movement can survive the new consoles it will be minor but serious competition.

    My indie gaming time already dwarfs my AAA time anyways. The last really engrossing, 100+ hour, AAA game I played was New Vegas.

    • rustybroomhandle says:

      I suspect we’d have had to wait a whole lot longer for Unity on Linux if Brian Fargo and co. didn’t step up and take it into their own hands to work on the Linux port.

      It’s starting to get pretty obvious that Linux is growing as a gaming platform, but 10% though? I wonder how they got that number.

      I’m similarly starting to find that most of my gaming tends to be indies rather than AAA titles, even though I have a hefty collection of the latter.

    • saryon says:

      Linux support is also the most important part for me. I’ve stopped using windows for anything but games about 4 years ago. For past few months I’ve even uninstalled it completely and now I play all my games in Ubuntu. Every game I tried to run for the past few months worked, after some fiddling with Wine (which gets easier over time).

      I am also really happy that the current Humble Bundle has a button that allows you to install the games from the Ubuntu software center. Very convenient.

  4. SirKicksalot says:

    I really like the word “shuriken”.

  5. wccrawford says:

    Unity 4 will not support Linux for the editor. It will only support publishing games *to* it. It’s a great start, mind you, but doesn’t mean anything in regards to dev tools on Linux.

  6. Terragot says:

    Wow, So they didn’t keep to their promise of a better GUI system for 3.6? UDK’s high profit take is starting to seem more appealing from the perspective of being able to release a game that isn’t shrouded in the Unity related repugnance.

    • trjp says:

      I think it’s churlish to even compare Unity and UDK.

      Unity is a bitch to learn but it’s learnable with trial and effort.

      I’m pretty sure you could never do anything useful with UDK without reading books/attending courses/being shown how to do it. It’s just way way way way way less approachable.

      May just be my experience (personally and through others) but just because they’re both game engines and have a free option doesn’t make them comparable in any other way.

      • Makaze says:

        I found UDK to be easier to learn personally. There is a lot of extraneous stuff in there, like a lot of rather eccentric stuff that’s only useful for multiplayer and optimizing multiplayer. But once you chop that out it’s pretty reasonable.

        Unity, as someone mentioned above, has horribly out of date tutorials and so I found it somewhat harder to pickup. On the other hand, C# is miles and miles better than UScript, so it’s got that going for it.

      • cHeal says:

        I picked up the basics of UE 3 with the last release of Unreal Tournament. It’s reasonably easy to pick up and muck about with, with great support and tutorials. IN a matter of weeks I turned the warfare game mode into a class based mode more akin to Battlefield, with reinforcements and such. However I found it nearly impossible to make in roads into the GUI system at the time, and I wasn’t alone in that. They’ve now changed that system and made it easy, but with a higher entry point. It is now flash based.

        Unity, I literally had no idea where to start and couldn’t get my head around producing ANYTHING out of it. The experience will be the opposite for other people but certainly they are comparable.

    • mckertis says:

      What did you expect ? For something claiming to be one-stop solution for amateur and starting game devs – it took them quite a few years to even include in-the-box pathfinding, something that should have been there from the bloody start.

  7. Torgen says:

    Well crap. I only last night started re-reading my Unity 2.5 dev guide I bought a while back, and pondering if I should ditch it and buy a Unity 3.0 book. Well, 4 probably won’t be free until next year anyway.

  8. Makaze says:

    Can I debug in Visual Studio yet? No? Then not worth the frustration of MonoDevelop to bother with this engine. That’s the one thing that really holds me back from Unity, but having tried it in the past I always get sick of MonoDevelop and switch back to UDK + nFringe or several other engines I can just run natively in C#.

    Blah blah, multiplatform this and that. Bottom line, VS is far and a away the best IDE and it’s what the overwhelming majority of software developers code in. It’s simply impossible for me to use a responsive fully functioning IDE at work all day and then try to frustratingly wrestle with the pile of crap that is MD for something that I’m supposedly doing for fun.

    • rustybroomhandle says:

      Not “Blah blah, multiplatform”, it’s “Ra! Ra! Multiplatform!”

      • Makaze says:

        Great their dev environment is multiplatform… It’s also tied to a cripplingly bad IDE as a result and so I’m not using their entire engine. Good for them! Way to go!

        Now because of that if I ever manage to polish up the multitude of prototypes I’ve written over the years and release something it will be Windows only since well MonoDevelop drove me away from using a multiplatform engine. That worked out super well for you didn’t it?

        Multiplatform is good, why wouldn’t it be? Right up until including it forces you to make compromises that make your entire product bad, and that’s the case with Unity’s IDE of choice.

    • whale says:

      You’ve been able to debug in Visual Studio for several versions- and yes, its much better than MonoDevelop.

      • Makaze says:

        Really? Mind showing me a link that says that?

        Cause last time I used it, Januaryish, you could write code in VS (and even that was annoying since the project export didn’t play super nice with VS 2010 and forces a reload of the entire solution whenever you change something) but had to manually attach MD to the running process in order to debug. You also couldn’t run directly from VS. That means running 2 IDEs, one of which is awful, and having to sync changes between 3 separate systems. It’s comically bad.

        There is a 3rd party, unityvs, who supposedly has a solution but it’s in beta right now and not available to the public at large. Was hoping with a new major version they would have finally clued in and supported it out of the box.

        • whale says:

          I’m an idiot, you cannot debug in VS. Sorry :( thanks for the link to UnityVS! I’ve had luck just using the frame by frame step in unity for that purpose but its obviously not the same… or even close.

    • kikito says:

      Unix is an IDE, man. Far better than VS.

      • Makaze says:

        Unix is an operating system… Do you mean vi or emacs? :)

        And there is at present no better IDE than VS. It’s got some issues sure, but it’s head and shoulders above anything else out there.

        • LionsPhil says:

          He’s probably referring to scrabbling around in the dirt with Makefiles and ctags and gdb and oprofile and…

          I like Makefiles as an elegant (if a bit crufty) rule-based system, but I like having a decent debugger more.

        • jamesgecko says:

          Here’s a more detailed description of “scrabbling around in the dirt.” UNIX as IDE.

          Say what you will, but I actually prefer many aspects of the *NIX command line development method to what Visual Studio has to offer. Flitting around with Vim and Bash and assorted utilities is a rather pleasant working environment; abit one with a long learning curve. I’ve been using Linux for ten years though, so I’m probably biased. :-)

  9. Salt says:

    The inclusion of DirectX 11 stuff is very interesting as it at least sounds like it will result in the splitting of features. That’ll shift Unity’s position from a pseudo-platform to more of a pure development tool. Contrast that to Flash/AIR which exists as a single platform with the same capabilities on any device (until they stop updating the Linux client at least).

    When exporting to Flash, it’s going to have one set of restrictions, roughly equivalent to DirectX 8.
    When running in the Unity client or standalone on Mac/Linux, it sounds like it’ll not be supporting “DirectX 11″ features. Obviously there’s no DirectX on those platforms, but all the fancy DirectX 11 stuff could be done through OpenGL with the right extensions and work.
    Finally, when targeting sufficiently hardware’d Windows machines it’ll have tessellation and compute shaders and all that.

    At least three quite different platforms, rather than a single Unity platform. Which makes the name a little less fitting.

    • Makaze says:

      For the most part it’s no different than writing code that targets different version of DX. You check capabilities and then branch based on what you have available. Tessellation also doesn’t work in DX 9, that doesn’t stop games that can use it in DX 11 from running under DX 9, it just prevents them from using that feature.

    • jamesgecko says:

      There’s already been “splitting of features.” The Unity website used to have a big comparison graph showing what you could and could not do on each respective platform and license class.

      Remember that Unity runs on all the major game consoles in addition to Windows, OS X, iOS, and Android.

  10. Odog4ever says:

    Let cut-back on the bullshit spreading for just a sec. There is nothing stopping devs from selling Windows 8 games that aren’t in Microsoft’s Marketplace. Thing is good luck on getting in front of people’s eyeballs if you avoid Marketplace submission…

    just like with Android. Other app stores/side-loading are supported but 99% of people still buy apps from Google’s App store (and to a lesser extent Amazon’s) because they “appear” to be vetted (whether they are or not).

    • Memphis-Ahn says:

      There is in ARM machines, which as far as we know doesn’t allow sideloading on the desktop. Not that ARM machines can run x86 code anyways, but it does stifle the possibility of an open ecosystem.

      • Hoaxfish says:

        Yea, side-loading is blocked with the exception of the heavy duty business administration expensive sort of version.

        I’m going to be interested to see how something huge like Steam approaches Metro… I’m not even sure if it’s allowed to (is it locked down like iOS, or more open like Android’s multiple markets)

  11. Hoaxfish says:

    That 7dfps challenge spat out are really nice looking puzzle game in Unity: http://7dfps.org/?projects=all-it-takes-is-a-little-push

    Hopefully it’s a sign of better things to come. Unity itself has certainly matured a bit from the earlier 3D games.

  12. Hodge says:

    “Linux standalone publishing will be available for all Unity Desktop users at no additional cost”. So yeah, it looks like the Linux thing at least is going to filter down to the free version.

    The great irony is that Unity-developed stuff runs fine through Wine already, so in practice it won’t mean much of a difference to the average Linux gamer (and also makes me wonder if ‘publishing to Linux’ is actually just a euphemism for ‘wrapping in winelib’, a la Limbo).

    Either way, if it means more games get Linux ports then it can only be good for the platform.

    • Tak says:

      “makes me wonder if ‘publishing to Linux’ is actually just a euphemism for ‘wrapping in winelib’”
      It certainly is not – it would be pretty lame to brand that as “Linux support.” :-)

    • mickygor says:

      Might not impact Linux users much, no, but it’s gonna be brilliant for developers. No one wants to say that their game can be emulated on Linux, but to say that it runs on Linux? This could be the tipping point.

      • Makaze says:

        Why? If it doesn’t actually provide any functionality that end users care about then I don’t see why developers would care either…

        Yeah, this is going to be the tipping point. Just like over a decade of other tipping points that were going to herald in the end of MSs tyranny and usher in a glorious never ending age of open source bliss. Yep, it’s definitely going to happen this time…

        • Hodge says:

          What on Earth does any of this have to do with open source?

          • Makaze says:

            Linux is open source.

            Every few months I hear about some new thing that’s finally going to make Linux hit critical mass and start a massive avalanche of people throwing off their shackles and installing it. It never happens, it never comes even close to happening, but people keep on saying it.

            Generally that’s in the context of people wishing for more open source software. In this case, unless I completely misinterpret the above poster, he was saying that this might be tipping point that makes Linux games mainstream. Which is not only kind of ridiculous to begin with, but doubly ridiculous since even he says that due to our existing pretty decent emulation it’s really not that big a factor.

          • rustybroomhandle says:

            Makaze, you are awfully easy to set off. Iffen I were a troll, I’d be having a blast right about now. :) Anyhoo, back on topic – this is probably not the “tipping point” that makes the OS mainstream – that has happened already. Linux exists in most people’s lives in one shape or another and has done so for a number of years now.

            Unity 3D on Linux might not be the thing that makes Linux games mainstream as you say, but it will certainly help.

          • Makaze says:

            Today and about this topic you’re probably right :)

            Posting between compiles while chasing down a really annoying bug right now that’s stalling a project that was supposed to have been done months ago (by someone else). Combine that with my memories from a few months ago of working with Unity and MD and yeah I probably am a bit overly touchy :P

            I’d agree that Linux is pretty ubiquitous in embedded devices. It’s barely a blip on the types of devices we play games on though.

        • Lemming says:

          This means that people can export their finished games to native Linux. That means more games for Linux. Which means more seeing at as a viable alternative to Windows. Where is the problem with this?

          • Makaze says:

            Nothing in particular (other than the whole MonoDevelop thing). My point though wasn’t that it was bad, just inconsequential. Thanks to Wine it’s relatively trivial to get your game running on Linux if you really want to. So the barrier to doing so is not a lack of native support, rather it’s a lack of install base and the additional maintenance and support overhead.

        • jamesgecko says:

          Truly, spoken like someone who has never had a Wine regression break one of their games.

  13. smoke.tetsu says:

    Should support OpenGL 3.x and 4.x too…. does it?

  14. Solidstate89 says:

    “The Linux support aspect I will say something about, because if Microsoft is determined to push its Windows 8 app store as the exclusive way to get hold of whatever PC games it elects to get behind…”

    That’s not true at all Alec. The Microsoft Store, or whatever it ends up being called is for Metro applications ONLY. And there are severe restrictions on what applications can be developed for the Metro interface due its universal sandboxing and tightly controlled APIs. Basically you’ll see current mobile style games but anything more advanced (basically anything we already play on the PC) will available from all the same places they currently are.

    I know there’s a lot of vitriol involved in this new UI shift from many people in the PC community, but please do not spread lies or half truths. It doesn’t help anyone.

    • jamesgecko says:

      Microsoft has made it abundantly clear that on Windows on ARM (WOA) devices, the Windows Store is the only way to get applications. Direct from the horse’s mouth:

      Consumers obtain all software, including device drivers, through the Windows Store and Microsoft Update or Windows Update.

      In fact, WOA only supports running code that has been distributed through Windows Update along with the full spectrum of Windows Store applications.

      WOA PCs will be serviced only through Windows or Microsoft Update, and consumer apps will only come from the Windows Store, so you never have to worry if a program will run because you are not downloading or installing from a DVD outside of the store experience.

      http://blogs.msdn.com/b/b8/archive/2012/02/09/building-windows-for-the-arm-processor-architecture.aspx

      The awkward way the desktop is integrated into Windows 8 x86 indicates that it’s not the main focus anymore. On consumer versions of the operating system, WinRT apps are the future.

  15. pkt-zer0 says:

    I wish Unity focused less on new shiny features, and more on usability. They say they’re bringing game-making to everyone, even the non-programmers… when in reality, I have to wade through tons of bullshit even as a programmer. Easy real-time editing… for the simplest of cases. Anything more complicated would require customizing the editor, which is also supported… except with bullshit limitations (that you may-or-may-not be able to work around, and said workarounds may-or-may-not require a pro license), and with an API as enjoyable as having a rusty nails driven in your eyeballs.

  16. pakoito says:

    Jersey Shore reference. Stay classy, Alec.

  17. sophof says:

    “Unity estimate some 10% of gaming PCs run Linux, which frankly does sound a little high to me, but hell, I’ve not surveyed anyone.”

    I think if you count dual boots you might get there :) Point being, if Microsoft pushes too far just maybe linux gaming might achieve the critical mass necessary. I doubt it though :(

  18. Arowx says:

    What you may not realise is the fact that many of the new shiny Unity 4.0 ‘features’ were first released in the 3.5 version, but have not been fully rounded off, completed and optimised. Instead they have been bundled into the next release.

    So if you had purchased a Unity 3.x license you now need to upgrade to get the full version of the features that appeared in the 3.5 release.

    It’s certainly kicking up a stir on the Unity forums.

    And that’s before you mention the G word (GUI). A 2D super fast GUI is still a feature that Unity has not delivered after talking about it in 2.x, 3.x and now 4.x.

    Hopefully third time is the charm.

    Also be wary of putting your pre-orders in until Unity delivers those features, remember Unity also releases a Free version with some of the features so check that out first.