A Flash Developer Resource Site

Results 1 to 11 of 11

Thread: XNA and Unity3D from a flash developer´s perspective

  1. #1
    Yes we can tomsamson's Avatar
    Join Date
    Sep 2001
    Location
    Team Titan Secret Lair
    Posts
    4,666

    XNA and Unity3D from a flash developer´s perspective

    Ok, since i meanwhile also got some pms on the topic, here´s a brief (haha) rundown on the different tech from my longtime flash developer view:

    First of all when its about some new promising tech coming up while one used something else for ages (after all in my case i´m with Flash since V3) there´s the question: Why should i care about that other stuff, i have done well with what i use for ages, well,for ages.

    To me it was like that, several other technologies came, some passed by again and there was never enough motivation to invest as much time into something else as i did with flash.
    I learnt to use php,xml,html,js,mysql,zinc and other wrappers, all sorts of graphic apps and what not all else but mostly for doing web apps,screensavers,commercials, games etc, in most cases flash related.
    Well, then things changed slowly though, i wasn´t happy with some decissions Macromedia/Adobe made and then also with some tools and flash/flash player versions they released.
    There´s way more to it but to just give a few examples in a nutshell:
    -I didn´t like it how the policy seemed to change towards flash ide not beeing the one tool for everything flash platform related anymore,instead there were other things released like flex builder, so suddenly flash ide should be the designer tool with no propper ondevelopment of coding related features and for everything else flex builder or some other tool should be used.
    -Graphical Editing features weren´t propperly developed on anymore, mayn new features seemed to be only propperly usable with code.
    -The performance of the flash player when rendering art or handling code was never raised to the degree i´d like and expected and any raises achieved seemed to be only useful in very specific use cases or go hand in hand with lower level coding manners or come with ridiculously high hardware requirements in return
    -I´m fine with coding oop and/or in lower level ways,also things like strict datatyping and what not all if its fitting for a project,its scope and budget but it seemed weird to me to HAVE to do things in certain way in flash purely to get any halfway reasonable performance when doing certain things,especially when if one codes things in similar fashion/language as in AS3 with another language/tool/technology performance is exorbitantly higher than in flash.

    The last point is probably the biggest reason that made me think about giving other technologies a more serious look.
    Funny, when one thinks about the point that Adobe/Macromedia probably introduced AS3 with the thought that they could attract more developers coming from contender technologies (and this also happens several cases surely). Its nice one can more seamlessly switch from one language technology to the other,but yes,just for me it also makes me look at the others and think when those could maybe be a better choice.

    Ok, this brings us to the actual views on the other two,again, from my view after trying both just for a short while, less than two months combined,there´s surely way more to them but i think it should give you a good first idea:

    So yeah,i then tried XNA for a while.
    For those not knowing XNA its basically the short term for various things:
    -An enhancment to Visual Studio, the Coding tool made by MS of which there´s a free smaller version called Visual Studio Express.
    -A framework of classes made specifically with focus on game development. There are various classes handling common tasks done in a game scenario.
    -A content/asset handling side,processors and importers, basically things you need to get your assets into your game and handle them as needed
    -An optional subscription system that allows to deploy games for testing on Xbox 360 directly (called the creator´s club membership)
    There´s more to it but i think those are the most important parts for us for now.

    So how does it work?
    Let´s say we download a feee copy of Visual Studio Express, Download XNA Game Studio,install all,maybe download a few example projects,too (some already come with it).
    Now we can start a new project or open an existing one and code things,import assets,test and deploy our game.

    Coding is done in C# (in Windows deploy one can also use dlls and other stuff made in other languages,this is not possible in Zune/Xbox 360 deploy since those only run managed C# code).
    What is C# like you may ask? Well, it is very similar in syntax and setup to AS3, sure there are various differences but overall its an oop based language,with classes,methods,variables,data types,the common things.
    Although its in several ways more strict than AS3 it was actually not that time intensive for me to get going coding something, mainly because the coding tool and debugger are much better than anything available for flash development.

    So let´s say we coded our game,what can we do with it now?
    There are several platforms onto which one can deploy XNA games,namely right now Windows powered machines,the Xbox 360 and soon Zune.
    For everything else it doesn´t look that great and even on older Windows versions one has to bundle the Compact .Net framework and other things with the game so the user can run the game.
    Since those things buckle up to a filesize that is bigger than most entire flash games and many smaller casual download games i wouldn´t suggest making standalone download pc games with it,unless its about retail games or you know that its a game type for an audience that is fine with loading bigger files.
    Next up,yup,also no web deploy as of right now with this.

    Let´s go through some more strengths and weaknesses quickly:

    plus:
    -Performance:
    In comparison to flash way better runtime performance. Not just code is executed much faster, on the artside one has access to pretty much full directX 9.0c capabilities and using the graphic card nicely that way, so graphic performance and feature set is far beyond flash limits.
    This also includes shaders etc, the nice mubmo jumbo that 3D cards are known for.
    -Testing and deploying to 360:
    One can get an optional Creator´s club membership (99 bucks a year) and then connect the pc and a usual retail 360 console and then deploy a game built to the console and test it there right away.
    Anyone who has played with the idea of getting into console biz and knows how troublesome it can be just to get a devkit (besides the costs also coming with that) will know how big a leap this is. Its really something quite special.

    Some downsides:
    -No visual editing of assets. Yup, don´t expect doing timeline animations,vector graphics,writing text or anything else related to graphical work here, you develop in a code editor with something like a library list added where one can see the names of assets, don´t expect anything more.
    -Its still a young thing, there aren´t importers and processors for various filetypes, mesh importers have various limitations and there´s not even support for some things taken as granted and basic with flash, like handling vector graphics or even just writing text.
    In case of text one has to write it using a bitmapfontplotter,similar to how one can do it with bitmapdata in flash if one wants to.
    One can write one´s own stuff and use things others made available and the community constantly does release nice stuff, but yeah,don´t expect nice functionality for everything out of the box.
    -Selling games: There are various limitations when its about wanting to sell a game. See above regarding making download or standalone pc games. Next up on the 360 you can test your game but then there is no way to let the general public play your game on the 360 yet. You can pass it on to other creator´s club members but not to the general usual 360 owners yet.
    (MS plan seems to be to do several things there:
    1.: Introduce a portal system towards the end of the year which will allow usual xbox 360 owners to download and play xna games for free on their system
    2.: some higher quality games will surely get the special treatment and get published as commercial titles on XBLA then
    3.: One will probably be able to buy xna made games for zune on the zune store, i can´t personally test this as zune isn´t available here.
    )

    Oneself could of course also do a very nice demo XNA game and then contact any Windows/Xbox 360 publisher with it, chances aren´t that bad they might be interested seeing the seamless deploy on the target platforms when its about retail games or XBLA games released by a publisher.

    So seeing the restrictions i listed above to me personally XNA is very teasing regarding making games for the 360 which can then be tested and in most cases run right away on the 360 (sometimes small changes have to be done between Windows and 360 versions), it has the potential for getting into console biz easier and in case one is into getting in there or even later learning C++ the language is closer, the reputation better among bigger companies and publishers.
    On the other side when its about not just learning things for fun or future usage or getting a retail pc or (download) console game gig going but instead making money for sure with your game right away once its done then things look worse than with flash right now. With flash we´re meanwhile used to the many portals and various other ways to make money with a game, if you´ve got a good game chances are high you´ll make some money with it in one way or the other if you know what youre doing. With XNA chances are there but not as secure and not that many and not with pretty much instant result.
    Next up regarding the development tool and asset handling limitations as of right now one could do a 2D game quite similar to a bitmapdata based game setup in flash, when its about developing 3D games the raw power is there but tools for handling and editing it are not really that evolved yet,so expect lots of custom own work just for handling the stuff before the step of writing your actual game or during it.

  2. #2
    Yes we can tomsamson's Avatar
    Join Date
    Sep 2001
    Location
    Team Titan Secret Lair
    Posts
    4,666
    Ok, so next up to unity3D

    Unity3D is again used as common term for several things:
    -A web plugin technology allowing to playback unity content in various browsers
    - a game engine and editor that allows to create unity3D content

    So how does it work? One downloads the unity IDE, available in cheaper indy and more expensive pro forms,also as trial.
    Once installed as flash developer one can expect quite a surpirse when opening the IDE (development tool) for the first time:
    It opens up with a demo project and one can see a pretty lush 3D island scene in the scene view.
    One can test the game right away which feels sorta like walking through a FarCry environment. Not exactly that level,but years further than other web technologies and regarding unity´s features one could basically do things on current gen console game level.
    There are several views in the tool, one for editing the content visually in the scene, one which is close to the flash library,so asset handling and overview, then there´s the game preview view where one can test the game at any point in development.
    There are also various other views,like also one for editing timeline animations or a baisc code editor.
    Overall though, yes,ts obvious at first glance this is a tool for highend game creation and heavily focussed in every bit on that usage.

    Coding:
    One can code in javascript aswell as in C# and also mix and combine both inside a project pretty seamlessly.
    At the end it doesn´t matter much which of the two languages are used because both are compiled down to machine closer level during build process.
    Javascript runs at better performance when one uses strict datatyping there,too, but overall no matter if one does that or not code execution performance and overall performance is way better than in flash.
    One can add functions in the script which are executed on Update or LateUpdate, sounds like onClipEvent EnterFrame to anyone?
    Coding feels very much like in a flash IDE AS1 project,for the good and the bad: One essentially writes script files and then drags them onto objects.
    So i´d more call it a symbiosis of AS1 coding manners (putting code directly onto/into display objects) and AS3 (usually writing seperate AS class files).
    As i said the syntax can be in Javascript,so close to AS1 or C#,so closer to AS3 depending on personal preference.
    What i like is that one can declare variables as publicly viewable in the IDE or not,in case one has it public one can select an asset with a scruipt attached to it and set the value of variables in input textfields etc, like setting parameters of components in the flash ide. One can also create project independently reusable versions of assets quite easily so its overall,yes,very similar to components besides one can edit them in nicer fashion.

    Graphics:
    On the graphical side unity has pretty nice downscaling of visual fidelity, one can use features of highend graphic cards but also have content scaled down to run on way older systems.
    Inside the editor graphical 3D content editing goes very seamles,one can nicely position and slightly modify visual assets.
    Regarding 3D models i liked it that it can handle way more formats than XNA and also that it has nice workflow functionality such as beeing able to set which frames of animation belong together,give them a labelname and then make the model jump to a certain labelled animation.
    Yes,sorta like gotoandplay,just with 3d models.
    This is a very simplified explanation though, there´s lots more to its model handling abilities, among those keypoints being one can ease from one animation to another,combine several ones together and give weights of importance to animations.
    To give a simple example we have a running animation for our model,a shooting animation,too and we can ease from one to the other,alos lay one on top of the other so the dude shoots while running etc.
    Also it has nice features for manipulating models,like moving parts,also on bone level if one wants.
    This is all done in a way that is a huge timesaver compared to doing all codeside with no visual clues in say handling 3d models in flash or xna.
    (One can do all codeside,too though,of course)
    I could go on listing various very nice features,like editing 3d heightmap terrains nicely or tons of other things, i most like the out of the box ageia physics support though.
    Realistic physics sims for any object out of the box on highest industry standard level. Yummy.

    Deploy of games:
    As i said there´s the web plugin, it has way lower penetration numbers than Flash or even Shockwave right now of course but i´m sure that´ll change soon and regarding what kind of impressive things one can do in unity compared to the other technologies and then if one uses those other technologies instead what kind of hardware requirements those other technologies then suddenly have due to the lousy performance they achieve on a certain level system i wouldn´t mind this point a lot if its about wanting to create highend grade 3D content for the web. Also penetration numbers are raising quickly and bigger portals already run one or some unity games or are getting into supporting them now.
    Next up there´s standalone deployment, as web deployment for Mac and PC.
    Then it was announced that now one can also deploy to the Wii (for that one also has to become a Licensed Wii developer though) and then they´re also working on Iphone support which should be available soon.

    Now there are also some restrictiosns and limitations as with pretty much everything in life:
    With unity to me the biggest one was getting a mac,since the IDE is not available for PC right now. One could run Mac OS on a PC but then has to expect various issues on all ends since yeah,its just not the real deal.
    Next up the pro version is for a seasoned commercially working developer affordable but to a small indy not exactly cheap,the Indy version lacks several key features the pro version has.
    Next up if you´re just into doing 2D games or other sorts of games for which flash would be perfectly suitable,then yeah,there´s the question why you choose a less widespread plugin techology if its about web deployment.
    There are also several minor and 2-3 a bit bigger issues i have with the ide,but since its all in all so much more advanced than comparable things i won´t list em lengthy now.

    So overall if you´re into doing medium-highend 3D content (and i mean console/pc retail game grade highend ) then unity is well worth a look.

    To sum up: No,none of these will be an instant flash killer or make flash completely worthless or anything similar.
    Each has different pros and cons and is suitable for doing different things on partially different platforms.
    Hope you got a small insight on these and found it interesting and i didn´t waste ages writing this for no reason

  3. #3
    Yes we can tomsamson's Avatar
    Join Date
    Sep 2001
    Location
    Team Titan Secret Lair
    Posts
    4,666
    Also almost offtopic, but interesting to those wondering about the background of some unity creators or the evolution of Shockwave or lack thereof, i found this post by Tom Higgins, former key member in the Shockwave staff, then switched to Unity crew quite interesting:
    http://blogs.unity3d.com/2007/12/06/one-year-ago-today/

  4. #4
    Senior Member Sietjp's Avatar
    Join Date
    Jan 2005
    Location
    Paris, France
    Posts
    711
    Thx Tom for sharing this. Great post.

  5. #5
    self-portrait Kianis's Avatar
    Join Date
    Feb 2004
    Location
    Stockholm, Sweden
    Posts
    425
    Yeah, thanks for sharing, this kind of information is invaluable. Thanks
    // Mazapán, my portfolio

  6. #6
    Knows where you live
    Join Date
    Oct 2004
    Posts
    944
    Have you done anything with silverlight?
    For me, XNAs lack of web deployment is the deal killer, and I don't have a mac for Unity.

    Java applets are a possibility, but they really are pretty sub par.
    The greatest pleasure in life is doing what people say you cannot do.
    - Walter Bagehot
    The height of cleverness is to be able to conceal it.
    - Francois de La Rochefoucauld

  7. #7
    Yes we can tomsamson's Avatar
    Join Date
    Sep 2001
    Location
    Team Titan Secret Lair
    Posts
    4,666
    I don´t like Java for games, especially web games a lot either.
    Regarding silverlight its not interesting to me right now because it is too similar to flash on weaknesses side (and then adds various more own ones), has too few additional and important strengths and overall seems too much in infancy state to be worth considering for me.
    MS sure has the force to be able to change all that in a rather short timespan,so yes, it could be more interesting in a year or two.
    If it can ever reach capabilities like XNA or Unity? I don´t think so.
    If it can become more interesting than flash when its about doing similar things as in flash? Hm,maybe, to me still not really likely.

  8. #8
    Yes we can tomsamson's Avatar
    Join Date
    Sep 2001
    Location
    Team Titan Secret Lair
    Posts
    4,666
    to Sietjp and Kianis:
    Thanks fellas, glad you liked it, i was already wondering seeing so many views and no replies for a while
    When i started writing this thread one reason was that i received several questions on these topics, another reason is that i´m quite busy with these and other things these days so i don´t get to post here often anymore and probably will have less and less time for it in the coming months, so i thought i should also give some insight what is getting me away from flash a lot these days.
    I´ll still check in as often as i can, also work on the level ed and other flash things, too when i get some spare time for em, but yeah, the day only has so many hours and i´ve got lots of work coming up.

  9. #9
    5+5=55 Schfifty Five's Avatar
    Join Date
    Jun 2006
    Posts
    698
    Great info, I don't really have anything useful to add to the discussion, but thanks for sharing!

  10. #10
    Yes we can tomsamson's Avatar
    Join Date
    Sep 2001
    Location
    Team Titan Secret Lair
    Posts
    4,666

  11. #11
    When you know are. Son of Bryce's Avatar
    Join Date
    Aug 2002
    Location
    Los Angeles
    Posts
    838
    Thanks for this rundown. I definitely have a better idea of how XNA and Unity work now.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  




Click Here to Expand Forum to Full Width

HTML5 Development Center