From Director Shockwave to Unity

Hi All,

I’m new to this forum, and I haven’t tried Unity yet. I’m a long-time shockwave 3D game developer, and having browsed around the forum a bit I recognise a few old faces from the Director lists (Hi Jeff, Colin, Taumel, Tom H!).

I think I have a pretty well rounded idea of the feature set differences between unity and shockwave, particularly of the 3d engine, and I have been keeping tabs on Unity’s progress for a long time - so I don’t need to be sold on that. The reason for this post is that I’m looking to get set up and test drive Unity with a view to possibly using it for a commercial project next year, but to do this I need to find out as quick as I can about what’s going to be involved in changing our workflow to include unity.

For a brief overview of the types of work that I’m looking to use unity for, here’s a quick link to screenshots of most of my past shockwave 3d games:

http://dev.skivecreative.com/duck/screenshots/

I’ll start by describing how we work with Director.

Our typical games are 3d web based (shockwave). We use an embedded swf for the ‘front end’ which includes things like title screen, menu, scoreboard display, send to a friend features, and any other server-side related functions like that.

The games themselves use 3d assets exported from max in the shockwave 3d format, and on-screen overlays made in photoshop and exported as 32 bit transparent bitmaps.

I’m interested in how much things are going to have to change and what to watch out for in each of our key areas of production.

3D:
Will our 3d artists still be able to author in 3ds max in a relatively similar way? Are there any guides available that would point them to specific features (eg, types of shaders, bones-systems, etc) that they can and can’t use?

Flash:
I know unity does not support the integration of swfs, - however - because shockwave does not support AS3 or the latest version of flash we have recently developed a workaround which essentially has the .swf interface and game .dcr in separate div on the web page. We can then hide and show them as appropriate. This means our flash developers can code in AS3, however we still use a tiny embedded AS2 swf in the dcr to communicate with the flash interface. So my question in this area is, is there any method at all for communication with a swf instance running in the same browser window? What are the common methods are there for producing the ‘front end’ in Unity?

Coding:
I’m coming from working on windows, in the director script editor. I know, I know, it hurts. However, I have used c# in visual Studio a fair amount, and I have heard that it’s possible to use c# in visual studio with Unity - either in a virtual windows installation on a mac, or with a real PC Mac linked together with synergy2, sharing a single keyboard mouse. Or would it be best to start off using something other than visual studio, and keep it all on the Mac? Any advice about the pros and cons of these options would be great. Are there any pros and cons of chosing to use c# in unity over any of the other languages it supports (eg, are most tutorials in any particular language?, is there more complete documentation in any partiuclar language?)

Any other general advice about moving from Director to Unity would be greatly appreciated.

And finally, it would really help push the cause for unity in our company if I could lay my hands on some finished commerical web-based Unity games. Examples seem to be a bit thin on the ground!

Cheers,

  • Ben

Hey Ben! :smile:

You’ll be able to stick to a very similar process, the exception/sticking point being the use of SWF files (which you’re already aware of).

Yes, change from W3D to FBX and keep on rockin’. There are numerous Max users lurking about and I’ll leave it to them to describe any specific items to think about.

Three topics:

  • Either div or iframe swapping, yes you can do that. For example:

Super Volei Brasil

Click on the logo, a pop up will open, click “Jogar Agora” to play. They use a Flash movie to allow you to choose your players and customize their uniforms, then use that information inside the Unity content.

  • Communication between your Unity content and any Flash content can be done. Both the Unity Web Player and the Flash Player support bi-directional communication with browser-based JavaScript so you can use that to pass data/information back and forth.

  • How do folks do UI work? Mostly using the UnityGUI system we have in place using text and artwork. You can use PSDs (we flatten on build), PNGs, JPGs, etc.

That’s definitely possible and Lucas Meijer (who is sitting across the desk from me as I type this :slight_smile: ) is speaking about (in part) at this week’s Unite 2008 conference. A key part of his session will describe how he uses Visual Studio, we’ll be posting the session videos after the conference so you’ll be able to watch that, if he doesn’t chime in here himself soon enough.

I would say that Boo is the “toughest” due to a lack of doc samples and tutorials, after that it’s a mix of C# and JavaScript. I’d say choose the one that suits you best from a development standpoint, if that’s C# then great, if it’s JS then great.

Learn to love prefabs. Check out all the editor customization and pre-processing of assets.

Here’s a list for you to peruse, and of course there are more to be found than these… :slight_smile:

Retail/executable titles:
Global Conflicts: Palestine
Big Bang Brain Games
Tiki Magic Mini Golf
Hordes Of Orcs
Wolfquest

Online/advergame titles:
Off-Road Velociraptor Safari
Splume
Bernard’s Honey Pursuit (Post cereals)
Sooga Mountain Super Race (Disney)
Hannah Montana: Crank Up The Concert (Disney)
Axe – The Dark Temptation Saga
Volkswagen Rally Touareg
R/C Laser Warrior
Epic Tower Defense
Tennis Stars Cup
Dukateers Treacherous Treasure

Science/educational:
Cassie 3D

was going to respond a while ago but thought i would wait for someone with a little more extensive knowledge on the subject to do so.

I used director Mx inconjunction with max for a year or two and glad i made the move! exporting from 3dsmax is pretty painless in fact your artists will be over the moon if you take the jump! good luck… and hope you make the move to Unity3d

The Circle is now complete :smile:

Any other general advice about moving from Director to Unity would be greatly appreciated.
<<<

You might be confused by clicking the proper icon in the beginning.

Now which one was the right one again?

98128--3809--$lol_838.png

Hey Ben.

A quick few thoughts as I’m sort of busy prepping my talk:

  • Visual Studio C# all the way. Imho, if you don’t use it, you’re not serious about being productive.

  • I use synergy2 at home, and just installed VMWare for the presentation. synergy2 is great, vmware seems fine on a first glance too.

  • the asset pipeline and “mindset” between a directorbased one and a unity based one are quite different.

  • I love the runtime part of unity.

  • I love the editor part of unity.

  • I don’t really love the way I have to get my assets into unity, and the lack of flexibility here. This got a lot better in 2.1, and most of my talk will be about the new hooks exposed in 2.1 that let you get the most out of the import process.

  • When weighing the above three points, the total is way in the plus. Director just comes nowhere close. The only upside Director has is its installbase. Unity wins big in every other way you could compare the products.

  • 2d support is not great. I use a custom photoshop exporter that exports layers layermetadata (linking anchors, depth, etc) to a directorystructure that unity can deal with. On the unityside I interpet this directorystructure and metadata files in it, and use it to display all these layers. It works, but it’s more work than Photocaster in director.

  • Do not put your textures inside your fbx. put them external.

  • Do not use the latest fbx exporter. It seems terribly broken. You can use the same exporter, but export to an older fbx version. those work fine.

  • Rendering in unity is superb. Even if you target directx7 hardware (as we do), unity lets you do a lot more than shockwave lets you do. (multiplyx2, any combination of combiners, and assignment of inputs for those combiners). We can do a lot cooler directx7 compatible effects than we can with director.

  • The fact that you can use C# is great. I didn’t really know C# before, but there is an enormous wealth of knowledge and support tools for c#. (Nunit, ncover, ninject, moq, this list just goes on and on and on). There are a lot of people who have had the same c# problem you will run into, and they will have found the answer, and you can find it online.

Morale of the story: getting your assets in unity can be a big pain in the ass. When you have your assets in unity, you can do cooler things with them than ever before. It’s totally worth it.

Bye, Lucas

Looking forward to your session on Thursday. Using TextMate myself, I’m looking forward to hearing what I’m doing wrong :wink:

Thanks for your responses guys, very helpful. I’m looking forward to reading/watching reports from the Unite conference.

The only blog that I have found covering it so far is

Are there any others that you know of that are, or will be posting content from the conference?

  • Ben

Hi Ben,

with the last event Unite 2007 it took some time and then they offered the videos of the conference on the website. Beside of the entertainment some of them were really interesting.

Hi Ben,

The videos will be a great reference for you, but the easiest way as you already know if to download the demo and jump in and tinker. You and your team will be amazed. Plus, since your programmers are coming from an ActionScript background, I’d say the switch to Unity’s JavaScript will be an easy one. I know a Flash programming expert here in town whose now simply loving Unity.

ActionScript is closer to “real” JavaScript than Unity’s JavaScript – there are some minor frustrations (especially if you know JavaScript/ActionScript well).

I’ve been trying to collect a “quick start” guide here:
http://www.unifycommunity.com/wiki/index.php?title=Head_First_into_Unity_with_JavaScript&printable=yes

Obviously if you code in C# then you’re using a slightly out-of-date but otherwise standard C# implementation.

I don’t want to reignite the language wars, but there are plenty of productive JavaScript coders and in general the examples and tutorials you’ll find are more JavaScript-friendly.

One final comment: Unity is kind of Director inside-out. Director started out as a 2D program and 3D was bolted on as a plugin, so most of Director’s UI is essentially useless for 3D. Unity is a native 3D program and its UI is almost useless for 2D stuff (e.g. you can’t drag 2D UI elements around). So if you’re doing something that’s predominantly 2D, Director will eat Unity’s lunch, and for 3D everything switches around. That aside, Unity’s content pipeline (just-in-time asset post-processing) is way ahead of Director (the only thing that comes close is mTropolis, which had its own problems).

Also – someone is going to write a good 2D UI editor using the new editor API and then there’ll be no advantage for Director :slight_smile:

And as a Lingo-User you also have to chime into the let’s vote for Ruby mob. :O)

FYI, we’ll be editing and posting all the session videos* over the coming weeks so keep an eye on the Resources area on our website for those.

*We’re going to post all sessions except the Road Map Wish List one, that is seen as a value-add for attendees. We open up and offer a bit more visibility into our plans and thoughts and so to hear that sort of info you just gotta be there… :slight_smile:

Damn, I wish I’d seen this post back when you actually posted it, mate lol

Advice for moving from Director to Unity? Don’t look back! :wink:

And welcome to the forum back then!

Cheers!
Jeff.