Unity Flash Supprt and Wiimote Support

Hello all. I just joined this forum and I was wondering if anyone knows about:

http://www.wiiflash.org/

I read on this post that someone developed a hack for Unity to support the wiimote, but i didn’t see a link listed to where one can get this hack. Then I remembered that someone hacked it to work with Flash and since Flash’s ActionScript is based off Javascript and Unity supports Javascript I thought that it shouldn’t be that difficult to port the code over to work with Unity? And also, since I’m talking about Flash and I have a lot of experience working and developing content in Flash. I have a bit of concern. You see Flash is on the verge of having full 3D support. Several items exist already such as PaperVision and Sandy3D, both of which work with Flash Player 9 and can import Collada 3D files. Adobe has also officially announced some 3D effects that will be available in Flash Player 10. There are also a few 3D based Flash games now popping up on the net. So, my concern is that once Flash fully supports 3D how will Unity compete when Flash player is already installed on 98% of all web browsers? Would it be possible to support Flash inside of Unity? For example have Unity be able to import .SWF files ? That would be awesome for GUI interface Design and developers/designers who already use Adobe’s Creative Suite.

Well, as it’s the future you never can be sure how things really turn out until they happen but from what is known today and how things worked in the past i would say:

First: 3D!=3D The 3D you get in Papervision or Sandy3D isn’t hardware accelerated which makes it pretty slow compared to the 3D engines in Unity or even Director. Things could improve for the software driven engines as soon as dual-/quadcores are more common and people don’t use slower systems anymore. It could also be interesting in a long term perspective with Larrabee. The nice thing about all software driven 3D engines is that they just work and look the same on every system which is a great plus compared to the reality on those which base on 3d hardware were depending on which features you use in practice you always experience differences, glitches or even crashes.

I guess no one doubts that at a certain point Adobe will introduce 3D in Flash. If this will be 10 or 11 i don’t know but i’m pretty confident that when they do it they a) will introduce something which won’t be that featurerich like something in unity and b) it will just work because they can’t afford screwing up their most important web product.

This is an important point because 3D in Unity also often means that newly introduced features do not instantly run well, they often need a second or a third revision until they really work and make sense. It just works in Unity means more it just works compared to something like Torque but not in comparison to tools like Flash. This has pros and cons. Pro is that you get access to new features very fast and can make yourself familiar with them. If you have a certain aspect in mind and it works for this, then you’ll be happy. The disadvantage is that as a developer you can loose quite some time stumbling about issues, building your own workarounds and then when you’re product might be ready you get a new version with the fixes which makes all your work on that superfluous.

For some of these issues Otee is to blame for, others are due to the 3D hardware reality wich is way nastier than the 2D world and i don’t know how many ressources Adobe invests into this but their first concern for sure will be that it works on a wide range of cards as otherwise they would damage themself quite a lot. And this means less advanced but reliable stuff. I really would be very surprised if they’ll come up with a featurerich 3D engine. On the other side i hope that Otee will enhance in this aspect and come up with more reliable stuff in the future.

What you’ll want to use will most likely depend on your project as there simply is no right or wrong tool around. They just serve different needs. Flash is insanely well spread and in my opinion no other plugin will beat this in the near future and if they would feel attacked on some front Adobe has the $ muscles to fix that, at least if the management doesn’t screw it up like they did with Director.

You’ll want to use Flash for what it has been used till today. It will be the number one choice for anything which is video related due to on2VP6 and h.264 support in Flash 9. And you also will be able to use it for simple 3D stuff in the future like a webgame or were you have to show client models out of a database for instance, typical client work…

If the Director team doesn’t screw up Director11 and they succeed in coming up with a relibale update of shockwave3D and reintroduce an updated Havok then it’s likely Director will be used by quite some Director developers just because those developers are familiar with their tool, there does exist a very large code base, the plugin isn’t spread as much as Flash but still it has a lot of recognition, they have recognised to a certain degree that they are left behind and will start to offer Director 11 for $100 for educational purposes.

Director also has the advantages that it has a good realtime debugger integrated, it can access Flash’s capabilities and so is able to make usage of h.264 for instance which will be a big advantage over Unity were you just have support of the Theora codec which is good enough if you want to use video in your own game but it performs badly on slower machines and no one else uses it and so you can’t just stream video content available on the net. And as were talking about streaming, also this is working better in Director as you can stream on a per object basis and not just levels which is very important if you want to do something like a virtual museum for instance. [By the way is it only me who is experiencing freezes during the time streamed ogg content is decompressed in the background?]

Now to Unity. Unity has it’s strengths on anything which is games related. It’s the much more advanced 3D engine, amongst others integrates a fast and reliable (but limited) physics engine, comes with mutliplayer (at least for those who need it) and features a lot of handy concepts which make your life easier when you want to do games or 3d related stuff. Additionally they aren’t only on the web. You can also publish 3D content as standalones and publish from one source for different platforms (win,osx) which is something Director 10 even wasn’t able to do correctly if you were dealing with XTRAs. In the future it’s likely that they’ll add support for more than just the Wii platform, so if you’re interested in making a 3D game in a small team or so and want to utalise the possibilities which are available in todays 3D cards or target a console then Unity is for sure the better solution. And as they are moving quickly forward there is more interesting stuff to come and don’t forget all this is available now. So if you have a project now you can just use it.

Another point were you have to differ is, if you’re doing your work or if you’re doing client work. Unity is more about your work as for client work they are missing quite some functionalities which would be important to have. As i already said streaming is not perfect, you can’t configure the startmenu for you personal needs (non games related), there is no fullscreen support without a annoying splash screen, shadow-support also for low range cards and so on. Things which can be in your way when you have to deal with serious non game clients at a certain size. At this point Web for Untiy often means portal stuff but not implicitly client stuff.

Different tools for different needs. Sadly none of them is doing all things right at the moment. I think there is place enough for more than just one plugin and you’ll have to choose according to your project’s needs and decide what you need and how advanced you need it. Sometimes you’ll want to go for fancy stuff and squeeze out what’s possible and sometimes you’ll be find with more simple things. Think of Apple’s hardware basis as an example. Most of the computers Apple is selling are notebooks and there most of these notebooks are PowerBooks which means GMA950/X1300. You don’t really want fancy shader stuff on these machines but if you’re heading for something else things can look quite different.

Hope it helps,

taumel

Thanks. You raise some great points and I forgot all about Director and it’s W3D format. Why didn’t they ever upgrade that? I remember being really excited about it a few years back and then they just didn’t do much with it.

Now I have a much more interesting thought… What if OTEE developed a Unity plug-in for Flash? Maybe a Unity component for Flash developers to access all of Unity’s features. Or if Unity added Flash output as another option for deployment? Imagine Unity being able to export to .swf file.

Why didn’t they ever upgrade that? I remember being really excited about it a few years back and then they just didn’t do much with it.
<<<

I have no idea. It’s not the first time they’ve invented great technology which they killed by a weird licence and not maintaining it. Maybe a combination of shortsighted and too greedy.

Now I have a much more interesting thought… What if OTEE developed a Unity plug-in for Flash? Maybe a Unity component for Flash developers to access all of Unity’s features. Or if Unity added Flash output as another option for deployment? Imagine Unity being able to export to .swf file.
<<<

I don’t think this will happen and i doubt that a lot of people want this. If you have a Mac you really can give Unity a chance and test it, it doesn’t bite! :O)

“If you have a Mac you really can give Unity a chance and test it, it doesn’t bite! :O)”

Good point. I am giving Unity a shot. I’m just starting to use it now. I went through the Marble tutorial and now I’m half way through the new third person platform tutorial. I’m already blown away at how powerful Unity is and I’m incredibly excited and eager to learn everything I can about Unity. Actually, I haven’t felt this much excitement and sense of possibility for a piece of software since the early days of the Amiga 1000 platform. The new Unity 2.0 island sample scene is simply incredible and very inspiring. I also already know Maya and MotionBuilder and Photoshop so Unity is like the missing link. I just need to really work on my programming skills. Fortunately though a lot of it already makes sense since my Flash ActionScript background is based primarily off JavaScript and Unity Uses JavaScript. Most of the code I’ve seen in the tutorials thus far seems almost identical to code of written for Flash. Objects, public and private variables, classes, etc… all the same in Flash ActionScript 3.0 Flash is case sensitive though and I’m not sure yet if JavaScript is because I’ve seen game objects referred to in the Unity tutorials as both gameObject and GameObject and both seem to work? Maybe I missed something?

Unity’s Javascript is case sensitive and it uses a naming convention which depends on the capitalisation of names, so it’s quite important to keep your wits about you in this respect.

GameObject and gameObject are two different things. GameObject is a type (a class, in this case), and gameObject is a property that gives you a reference to the GameObject on which a component is residing. You can’t use them interchangeably, and you can’t use other permutations such as gameOBJECT.

This applies to several other things as well. For example, Transform is a type, but transform is a synonym for GetComponent(Transform). You can see a list of names for which this applies in the Component documentation.

Thanks for the clarification!