Unity Technologies Blog

A glimpse inside Unity Technologies…

Unity 3 technology – Surface Shaders

In Unity you can write your own custom shaders, but it’s no secret that writing them is hard, especially when you need shaders that interact with per-pixel lights & shadows. In Unity 3, that would be even harder because in addition to all the old stuff, your shaders would have to support the new Deferred Lighting renderer. We decided it’s time to make shaders somewhat easier to write.

Warning: a technical post ahead with almost no pictures!

Over a year ago I had a thought that “Shaders must die” (part 1, part 2, part 3). And what do you know – turns out we’re doing this in Unity 3. We call this Surface Shaders cause I’ve a suspicion “shaders must die” as a feature name wouldn’t have flied very far.

Read the rest of this entry »

Unity 3 Feature Preview – Beast Lightmapping

Alright everyone, it’s the preview video that you’ve all been waiting for… Lightmapping in Unity 3!

Senior QA Specialist Samantha Kalman and Demo Team Artist Roald Høyer-Hansen have put together a great introduction of how Beast has been seamlessly integrated into Unity. We hope you enjoy the preview video and are looking forward to all the beautiful scenes people will create using Unity 3’s new lightmapping features!


Save the date for Unite 2010!

unite10

Yup, you read that right, it’s that time of year again, the time to get yourself ready for this year’s edition of our annual developer’s conference, Unite 2010!

Unite 2010
November 10-12, 2010
Montreal, Quebec Canada

Once again, Unite 2010 will bring artists, programmers, designers, researchers, publishers, and other Unity enthusiasts from around the world together for three intense days of learning and networking. The conference will be held on November 10-12, 2010 at the Marché Bonsecours in Montreal, Canada. A detailed agenda is on the way, but tickets are on sale now! Early Bird pricing lasts until September 10th and during that time tickets are only $300, after the Early Bird pricing expires tickets will be $400. If you’re just that eager then go for it and buy your tickets to Unite 2010 today!

Purchase Tickets

If you’re at all like me then you’re out there wanting more information, a lot more information! Well, we don’t have everything sorted just yet but I can point you to the early information that we do have. First let me point you to the press release that we put out just this morning that announced Unite 2010 with some important information and a few great quotes:

Unity Technologies Announces Unite 2010, It’s 4th Annual Developer Conference

After reading the press release you should hop on over to our website for additional information about the conference:

Unite 2010: Save The Date

Our website has information about Unite 2010, including information about where the conference is being held and travel information to help get you there. Our website also touches on the conference agenda which is still in development, but with that comes the opportunity for members of the community (that’s you!) to submit your own presentation proposals as we have an open call for speakers!

Unite 2010: Call for Speakers

I have no doubts in my mind, Unite 2010 is going to be another incredible week during which we’ll get to hang out together, to Unite to share our passion for Unity. Be there!

Find Unite 2010 on Facebook

Follow Unite 2010 on Twitter: #unite2010

Unity 3 Feature Preview – Cloth Physics

And the preview videos keep rolling in! We’re running a little behind on the Beast lightmapping video, but until then take a look at some of the new Cloth Physics features in Unity 3. Will Goldstone is back giving us a brief tour of just a few of the things you can do with Cloth such as Tearing, Self-Collisions, Pressure, and Soft Bodies.


RFP: Unity to Award 60 Android Smart Phones to Schools

the_academy_of_athens

Hello Unity Community. This is my first blog post and I’m happy to be sharing some very exciting news. I joined Unity almost two months ago to assist with commercial and institutional licensing. In my short time here, Unity has maintained a whirlwind pace of product announcements, resource partnerships, tech demos and conference appearances. It has certainly been an exhilarating start to a new job.

Prior to joining Unity I spent a number of years working with colleges setting up game design and game programming courses around the world. In 2005 there were only 30 schools that offered any sort of accredited game development courses. Fast-forward to 2010 and hundreds of higher education institutions are now offering, not just courses, but full-fledged degrees in 3D simulation and electronic game production. During this time, Unity has rapidly become the most popular game engine in use at these schools. Every month dozens of professors and program directors contact us asking for more information about adopting Unity Pro and Unity iPhone.

Unity is also firmly committed to supporting the Google Android platform. We strongly feel that competition in the mobile handset and tablet PC markets will create lucrative opportunities for mobile developers. Last week we announced a huge opportunity for Unity developers who want to expand their business to Android: we are giving away 500 Nexus One Android phones (details available here.) However, in our eagerness to kick start Unity Android game production, we do not want to skip over the important role schools play in shaping the next generation of application designers. That is why I am pleased to announce that today Unity is opening an RFP (Request For Proposal) to select up to three schools whose programs will each be awarded 20 copies of Unity Android Pro, Unity Pro and 20 Nexus One Phones.

The full details of the RFP can be accessed here. For additional questions please post comments in the space below or contact us directly at education@unity3d.com .

Disclaimers

We will try to ship phones to most places. Although accredited colleges and universities worldwide are eligible, Unity Technologies can only ship phones to addresses in the US, Canada, EU / EEA states, Switzerland, Hong Kong, Taiwan and Singapore. If Unity Technologies cannot ship a phone(s) to a school because of taxes, embargoes, FCC restrictions, customs duties and / or fees levied by the destination country or any other reason, Unity Technologies may still grant the software portion of the award. Unity Technologies reserves the right at all times to cancel or alter to the award criteria and reclaim any awarded materials

All participating schools agree that this promotion shall be governed by the laws of the state of Denmark.

Unity and iOS 4.0, update III

Dear community, once again I’d like to start by offering my thanks to everyone for their patience through an unclear situation. We’re grateful for the dedication and commitment many of you have shown through all this and it once again serves as another reminder of just how awesome our community is.

Like everyone else who’s excited about mobile development, and in particular using Unity to create awesome games for the iPhone, we’ve been following the development of the iOS 4.0 Terms of Service closely. While we’ve had some reason to believe Unity using C# and JavaScript would be okay, Apple has not confirmed anything and in general very little information has been forthcoming. However, as of today Apple is still approving every game we know of and Apple has recently featured several excellent Unity games in the App Store. And all along we’ve continued to invest heavily in our Unity iPhone line, including a number of new features that will be coming soon in the Unity 3.0 release. But as soon as the new terms of service were revealed we also started working on a contingency plan, just in case Apple decides to stop approving Unity-based games. Allow me to explain that contingency plan so everyone out there knows what “plan B” looks like.

As you probably know, Unity is mostly written in optimized C++ with assembly optimizations and Objective-C wrappers thrown in for good measure. Game logic is written by the developer, using C# and JavaScript, both of which are running on top of .NET. The beauty of this scheme is that we’ve been able to sidestep the old scripting-versus-native question as .NET provides for very rapid development (and almost near-instant compilation), while at the same time generating highly optimized code. And on the iPhone we actually ahead-of-time compile .NET to completely static machine code for speed and conformance with the old iOS Terms of Service. Also, on the iPhone it’s easy to drop into Objective-C code to access fresh APIs like the Game Center, Core Motion, etc. This is truly a case of best of both worlds.

Since Unity’s .NET support may conflict with the new terms of service, we are working on a solution where entire games can be created without any .NET code. In this proposed scenario all the scripting APIs will be exposed to and can be manipulated from C++. This is of course not ideal as there are thousands of code examples, snippets, and extensions created by the community can no longer be copied into your project, .NET assemblies can’t simply be dropped in, and C++ is more complex than JavaScript or even C#.

But honestly, it’s not as bad as one might imagine. One still has the full benefit of the asset pipeline, the shader language, an array of tools and of course the engine and its optimizations. We are also working on maintaining the elegant workflows of the JavaScript and C# in Unity: “scripts” will still be able to be edited live, variables will still be shown in the inspector, and a number of other sweet features that one doesn’t usually associate with C++ development. Essentially we are creating a .NET based C++ compiler that will allow us to write purely managed C++ code in the Web Player and other Platforms. On iOS C++ code will be compiled by Apple’s Xcode tools. This indeed is a very powerful combination. In the Unity Editor, you have fast compilation times and a completely sandboxed environment. On the device you have native C++ performance and low memory overhead. This combines the key strength of scripting languages and C++ code.

When you combine those with the fact that when it comes to straightforward game logic, C++ really isn’t as complex as it’s often made out to be (and as it can be) hopefully you can see that life won’t be so bad after all. To help demonstrate my point, let’s look at a few different examples.

Here is a simple JavaScript function to rotate an object around the world origin:

JavaScript Example

And now here is that same bit of code written in C++:

C++ Example

As you can see the code required isn’t all that different in simple case scenarios, but what about a more complex example?

Here is a bit of JavaScript that peeks accelerometer and looks for user touch input on an iOS device, then uses that to fly a craft and fire a missile in the game:

Large JavaScript Example

And again, here is that same set of code in C++:

Large C++ Example

Again, the code doesn’t get that much more complicated just by writing it in C++ versus JavaScript, and the difference is even smaller compared to C#.

We continue to be excited about the iPhone, iPod touch and iPad as platform targets for Unity developers. While we don’t think C++ is the best language to write game code, using C++ as a scripting language has memory and performance advantages on low-end devices. This is a great feature to have for developers who want to squeeze the last ounce of memory & performance out of their games.

We still can’t believe Apple will force developers into choosing a specific language for development. And as mentioned, Apple is still approving every Unity-based game we know of. In case the situation changes, rest assured that we are working this Plan B.

We’ll be ready to talk more about this as well as share some time-line information with you soon, while of course waiting to find out if any of this will actually be necessary.