Search Unity

Unity and Flash : a sneak peek.

September 1, 2011 in Technology | 7 min. read
Share

Over the last few months here at Unity, we have been hard at work on, amongst many other cool things, the ability to publish from Unity to the Flash Player. This means that next to the already existing build targets of a Unity project, one will be able to target Flash with Stage3D, announced for Flash Player 11.

Since our initial announcement, there has been a great deal of interest and many people have questions on what Unity supporting Flash means. Today we lift the veil for a sneak peek.

Unity for Flash Developers

We are organizing a Flash day on September 27th, the day before the Unite conference, aimed at getting Flash developers up to speed with Unity development. On this day we’ll be showing and telling about the Flash support functionality and giving entry level overviews of Unity to get you started.

If you are a Flash developer or designer interested in getting started with Unity, this is a great kick-start to enjoy the Unite Conference following the days after.

If you are interested in learning more about our Flash support, meeting the Flash team at Unity, asking us questions about it or just look at the demos we’ll be showing, we are looking forward to see you there !

The Unity Flash day is free (please do register though), and right now, there are still tickets available for the Unite conference.

Can’t make it out for Flash day ? Sad panda ? Well, we have some good news ! Let us shed some light on our work with a sneak peek right now....it includes a video and it is the first time we are showing our work publicly.

A sneak preview

This video preview shows the Shadowgun game demo by Madfinger Games, a highly anticipated iOS & Android Unity built game. Except now, it is exported for and running in the Flash Player !

While we are not quite ready to ship with Flash support yet, we just couldn’t resist sharing this video with you, as this has been a major milestone for us. We’ve taken the project, changed the build platform to Flash, hit build; magic happens...and the game runs in the Flash Player.

Performance is great and things are looking very promising. Keep in mind, this is a sneak peek; many things are still rough around the edges. Rest assured we are working hard to ship this, there is nobody who likes to see this in your hands as soon as possible more than we do.

 

Features, features, features.

Many of the features available in Unity today and in the future will be directly available for Flash when we release our Flash export feature. For all of you that are interested in, but less familiar with Unity we’d like to highlight some features that currently already work for the Flash export of our internal Unity build right now.

Unity has an integrated physics solution powered by NVIDIA PhysX. Used for things like rigidbody, ragdoll and realistic car physics, this will make your world come alive with fast and accurate physics. We’ve been testing it out on Flash with some complex scenes and it runs smooth and fast ! For the initial release of our Flash support we will probably not be supporting cloth and soft bodies. All in all this feature combined with the ease of Unity’s editor is hugely powerful to build rich and realistic dynamic worlds.

Adding atmosphere to your scene with advanced and beautiful lighting, can be done from within the Unity editor, using the built in Beast lightmapper. Since the lightmapping is done offline in the editor, it has very little impact on the runtime performance of your game, while adding much more visual depth and atmosphere to it.

With built-in Umbra Occlusion Culling, Unity adds a performance optimization to render only what’s actually visible for the viewer. Visually, the result is the same, but now optimized and faster rendering, with little effort needed to do so.

Everything rendered in Unity is done so with shaders. While Unity ships with 60+ shaders, you can also build your own. The best thing ? Our Flash port automatically converts this to Stage3D AGAL assembly and does all the hard work for you, no extra work involved.

 

This feature, planned for Unity 3.5, adds really nice and fast dynamic lighting. As the ShadowGun demo shows, lightprobes have a great effect on your scene’s lighting. It renders at a relatively little performance cost and adds lighting details to your scene and it’s dynamic objects, adding to both realism of lighting and visual beauty.

Fire, explosion, debris, fireflies; particle systems add many types of animated detail to your scenes; the current particle system as well as the up and coming new ones, planned for 3.5, fully work for Flash.

Unity can build your games for many different platforms already; and the scripting is portable from platform to platform. With a dash of magic (read : blood, sweat and tears) by our dev team, we support the exact same functionality for Flash. If you script your game with C# or strict JavaScript, everything gets converted to and compiled as ActionScript. This keeps your games portable between platforms and allows existing users using C# to easily target the Flash platform. For the first release we will also support most basic .NET library functionality.

Unity will automatically generate navigation meshes from your level geometry.
Beautiful, natural-looking crowd simulation using RVO and PLE algorithms wrapped in a simple API. Agents can find paths to target locations with built-in crowd simulation, or can be moved directly on the NavMesh in a similar way to the character controller.

Adding audio to to 3D positions and having your player experience the audio of that point in space adds another layer of depth to your game. For the first release of the Flash support we will only support the basics, without effects. However, all normal editor features are retained, allowing you to easily add immersive audio to your game.

Unity supports seamless import and modification of your assets using 3D modellers and Photoshop. With the addition of Flash support, this means that getting from a set of assets to making it interactive with the Unity editor to publishing it for Flash will be as smooth as it is already. We think getting this kind of ease of use for your production is currently unseen for the Flash Platform.

Specifically for Flash support, you’ll be able to communicate between the project and other ActionScript code. This means that you don’t lose any Flash functionality and it allows for tight integration between Flash and Unity. It allows embedding the Unity exported content within your existing Flash project and communicate between your Unity and Flash content.

Preparing now to build for Flash

The above is just a short list of highlights that work out of the box, amongst many more. We are still hard at work on Flash support, however there are some things that are not likely to work in the first release. We’d like to point them so you can start working on preparing your projects for Flash.

  • Anything requiring mouselock (unfortunately this is a Flash Player API limitation, it has no mouselock)
  • Scripting your project with non-strict javascript (if you have #pragma strict in your js file, you're good)
  • Raknet networking (networking could still be achieved through ActionScript messaging & Flash networking)
  • “Complicated” things from the .NET class library  (for example; BinaryFormatter, Crypto, WebRequest, Reflection)
  • Advanced Audio filters (Reverb zones, Doppler, etc)
  • Video (however, flash video can be controlled using ActionScript messaging)
  • Terrain engine
  • Deferred rendering

Over time this list will get shorter, but we do not plan on holding back a first release for the lack of any of those features. As for the question "when is it done"; at this point we are not able to give you an exact shipping date yet. We'll follow up with another post when we know more.

We hope you enjoyed this little sneak, are looking forward to hear what you think and will hopefully see you at our Flash day or Unite !

September 1, 2011 in Technology | 7 min. read