Game Development: Flex or Flash IDE? - apache-flex

Which would be more comprehensive for game development?

It depends.
Are you working by yourself or in a
team ?
Are you more a designer or a
developer ?
What's your level of comfort with
actionscript ?
If you're just starting with actionscript, you're somewhat
comfortable with the Flash IDE and you want to make fun indy
games for people to bash buttons and destroy mice, go with Flash.
The look will weigh more at this stage and interaction will be simpler.
Never the less you can create some addictive games with very simple interaction.
If you're more of a developer, I would suggest using Flash to generate your assets
(characters, animations, etc.), or have your designer do that for you,
but use a proper IDE to write your code.
As Flemish Bee Cycle mentioned, you can try Flex Builder or if you're on a PC,
Flash Develop is an awesome IDE( free, lightweight, fast )
You could try to write you're own mini game engine, or use an existing one, like the PushButtonEngine.
As far as I can see SWF is the dominant output for online games:
Miniclip
Kongregate
Nonoba
MochiMedia
FlashGameLicense
HTH

Use Flash for games. Games involve more animations (suits flash) than data driven user interface controls (suits flex).

Since HTML5 is the future, you might also want to check out Processing.js, if you don't mind considering alternatives to Flash.
Processing.js uses Javascript to draw
shapes and manipulate images on the
HTML5 Canvas element. The code is
light-weight, simple to learn and
makes an ideal tool for visualizing
data, creating user-interfaces and
developing web-based games.
HTML5 aims to reduce the need for proprietary plug-in-based technologies such as Adobe Flash, Microsoft Silverlight, and Sun JavaFX. (Wikipedia: HTML5)
In this case, you would have a vast choice of Editors or IDEs.

Do the code in Flash Builder, as it is a better tool for coding; and the graphic resources in Flash.

flash is aimed at designers.
flex is aimed at programmers
so it depends on your function in the game team.

The editor in Flash is terrible. Flex Builder is based off of Eclipse, so if you're used to / or like Eclipse, you'll probably like Flex Builder. But I'd say neither, and give http://www.flashdevelop.org a try.

you can use flex as there are many inbuilt UIComponents for Tabs and mobile phones.It reduces overhead of many design like like touch scroller.It is better for game development in terms of programmer

Related

Why people write Flash video players in Flex not in Flash?

One common hebavior I observed in my slow Internet connection is that most sites on the Web embedding Flash Video, their player is always written in Flex. I can tell by the extremely long loading scroll bar that Flex defaultly provides. From my experience Flash loads faster, Why do people stop writing stuff in Flash anymore?
Are there any fast loading yet rich feature Flash video players>
My experience is that the components provided by default in the Flex framework are more stable than the ones provided in the Flash IDE. So I'd prefer to use the Flex components simply because it means less time debugging problems in the actual component code. It is however true that players based on the Flex framework tend to be heavier in terms of download size. But since video is bandwidth heavy and people who watch video over the net tend to have good bandwidth these days, I guess the conclusions most developers come to is that the extra download size is an acceptable tradeoff for less time spent in coding boilerplate.
Personally, if the requirements state that the player has to load fast and be light weight then I always roll my own in pure AS3 and just implement exactly as much as is needed. But if there is no such requirement, then I'll use the Flex-components as a base and do customization from there.
As for the second part of your question, sorry can't think of any open source fast loading feature rich flash video players right now.
Flex produces a flash movie (swf), so the end result is still flash.
As for the reason behind it, not everybody has or wants Adobe Flash (Studio) or any of the other timeline based studios.
Flex enables anybody to create a flash based application or widget using XML and the free Flex SDK.
There may also aesthetic reasons such as standardised controls.
Try Flowplayer, JW FLV Media Player and the last contender, but not the least from Adobe - Strobe Media Playback http://www.osmf.org/strobe_mediaplayback.html
From my experience Flash loads faster, Why do people stop writing stuff in Flash anymore?
When done correctly, there's no difference in how they work - in fact, I'd argue that stuff done in Flex (specifically, using the Flex SDK) give you more freedom to control how loading is done.
But to answer the question, people stopped using Flash just because there's much better stuff out there. Flex Builder, FlashDevelop, FDT - they're all much better tools for any serious coding and debugging. I used to love the IDE, but now I can't fathom how would anyone do anything serious on it, even when using external code editors.
Flash still works when you need vectors, or to create a library with some embeddable assets, but that's pretty much all it's useful for nowadays.
I am a flex developer, see flex is somewhere flash, here flex has two frames, preloader stage(first frame) and creationComplete stage(second frame), the same frame concept as flash has, but flash has more than two frames and layer concept is also there
Major differneces comnes in the ease of using the components in flex, in flash, altho flash is one of powerful tools that has changes the web,
but flex gives the freedom, i m using flex, so i know that i can give more time on business login development, rather than concentrating on design aspects,
but it's also true, i have to see the design aspects as well in flex,
so happy flexing

User Interface Design in Flex

I'm familiar with Actionscript and Flex. But when it comes to design the interface in Flex, I find myself that do not know where to start. I like to know what are the online resources/books to create the cool user interfaces like TweekDeck and Adobe Digital Edition.
UI like in the ones like TweetDeck are done by custom skins. You need to look into skinning of flex components. If you are using flex 4 i.e, the spark components, its more easier to skin them. Also you can use Flash Catalyst if you are finding it difficult to skin using Flash Builder.
You have to have design skills to make cool interfaces. #jase21 is correct that the spark components are easier to use (once you understand how to do it, which may mean unlearning a lot of Flex 3 habits you may have acquired). But just being able to skin components doesn't mean you will have great-looking interfaces. If you don't have those skills yourself, try to hook up with a designer who can make the comps in Photoshop or another graphics program, then you can implement them in Flex.
Look into Flex Catalyst. It is still green -- not nearly as capable as Expression Blend on the Silverlight side -- but it is a pretty good start. Catalyst is the tool that designers can use to apply their Illustrator/Photoshop art to the skins in your app.
Unfortunately a lot is not skinnable via Catalyst. It is also one-way at this time (the two-way beta is far from being useful IMO) which makes the Dev/Designer workflow cumbersome at best. That being said, I have an amazing looking app based on work my designer is doing in Catalyst. It takes some work to get it over into your app, but it can be done, and the results can be fantastic.
Flash Builder has a "design view" mode... although honestly ever since version 4 it has been a little picky and buggy.
Without that, you could try this, but I've no idea how it is:
http://flexible.riaforge.org/
Basically these are WYSIWYG gui editors, drag and drop components into a preview screen. They're nice when they work correctly, but it's tough to do.

Develop games with pure actionscript or adobe flash cs4 professional

I want to develop a simple race car game.
A user will see his car from above and can use right and left arrow keys to navigate in the track and between other cars.
What is the correct way to develop a game?
Do I use pure actionscript with FlashDevelop or the Eclipse plugin?
Do I use Flex3?
Is it better to use adobe Flash CS4 Professional?
The advanced version will also include 1-on-1 or multiplayer game.
Do you recommend a separate XMPP server to send real time data between players
or is there a flash server suitable for this?
A book about games in flash and links to tutorials will be appreciated.
Thanks
Man are you on the verge of a brave new world, ha.
Alright, so basically everything that you're mentioning is a viable option. A lot of it is going to come down to personal preference, honestly.
If you are a very visual person and it helps you to see things on the stage as you control them, go with Flash. It's not quite as powerful as Flex when it comes to dealing with data, but allowing you to link up your classes to sprites and movie clips in your library is huge and honestly underrated by a lot of "serious" developers.
If you're going for multiplayer, you might consider looking into Adobe LiveCycle Collaboration Services. It's a hosted solution from Adobe that takes a lot of the work out of setting up a multiuser environment, though it's not free.
Finally, if you can wait a few months, Flash CS5 will allow much tighter integration between FlashBuilder (the upgrade to Flex Builder) and Flash. Basically you'll be able to use both together very easily.
If you want to get started learning this stuff, I strongly recommend Lee Brimelow's excellent site gotoandlearn. The first few on there are AS2 so feel free to skip them, but just watch all of his AS3 examples in order and when you're done you'll be a flash developer.
You can also check out the Adobe Flash/Flex Cookbooks to look up specific questions, or google "Flex in a Week" to learn flex.
Good luck!
In the 'good' old times I used to make small Flash games in Flash IDE with AS2. That was really fast. (Though, code was quite ugly.) Since AS3 is available, I use Flex. If graphics matter, I use Flash IDE and Flex Builder parallel (Build/compile/draw in Flash, code in Flex Builder). Of course, it's not the best, but I just hate how Flash IDE handles code.
For the multiplayer mode, I suggest taking a look at this article: http://www.flashrealtime.com/basics-of-p2p-in-flash/ It uses Adobe's Stratus server to do P2P communication. It's quite easy to setup and use.
Books: http://flashgameu.com/ - basic level, but good for beginning
And of course: http://oreilly.com/catalog/9780596526948
My favorite tutorial site: http://active.tutsplus.com/
first of all: there is no correct way to develop games ...
one advice I'd like to give you is: do not use CS4 for developement ... CS4 is a great tool to create graphics and animations, etc., but is terrible for programming ...
if you want to develop a proper game (or any sort of web app), that you don't want to scrap within months, you need to layout an extensible, flexible and robust architecture, which can only be done with rock solid code, and than plug in all you nice graphics and effects (which can be made in CS4 of course) ...
Flex is probably the fastest way to get UIs up and running ... if you are for example creating a strategy game, which requires a lot of forms and overviews etc., then you should use Flex for that, altough ASwing and other frameworks are reasonable alternatives ... I do not like Flex for a number of reasons, but I guess in the end they're all a matter of taste, so it is up to you to decide what you'll use to create all the standard UI your game will need to have ... the more UI to create, the more I'd advise you to use Flex ...
when it comes to servers, most people tend to use Red5 and SmartFox, which both perform quite well, yet in my opinion have quite a lot of unnecessary overhead and impose a lot on your networking engine ... still, you can start with them, and might find out they're just what you need ...
here comes my personal advice: use Haxe ... it allows you to use one language for servers and clients ... also, it is a great language, once you get the hang of it ... I used AS2 and AS3 for a lot of time, but since I finally had the courage to switch to Haxe, I don't want to go back ever again ... although the languages appear to be similar, they are not, so do not expect them to ... once you got your head around it, you'll understand what I mean ... check out ThreadRemotingServer for creating servers easily ... check out haxelib (more info here) to get some helpful stuff ... and don't be shy to post on the mailing list ... Haxe has a great, friendly, helpful and enthusiastic community ... there's also a forum (which is not used so much) and an IRC channel to get support ...
hope this helps ... ;)
I'm only answering this for points. Dude, you have a lot of work to do if you are serious about this (which i doubt, since you don't even now how to use a search engine or wikipedia). Anyway, here you go...
http://en.wikipedia.org/wiki/Adobe_Flash

Flash versus Flex

I've tried looking everywhere for a concise list of the advantages and disadvantages of using Flex vs. Flash.
Coming from a programming background, I absolutely love Flex. It's easy to pick up, and since it can use flash classes, why would I want to use Flash without flex?
Flex:
Pros:
good for RIA development
provides many user-input options out of the box
Build in lay-outing system
the MXML is easier for non-programmers
You can quickly combine components to create small applications
components can provide an advantage in large-scale projects because of their modular
nature.
can be developed using linux
has a nice component lifecycle for validation, etc.
Cons:
increases the size of your .swf
Customizing the look of components can take a lot longer than anticipated, depending on the visual style you're looking for
when you find out you need a custom component that doesn't exist, you might need to go back to Flash to do the real programming work and packaging of the component
The "flexibility" of Flex means you will be reading a lot of documentation
Bugs in the Flex framework
You eventually will need to compromise with the architecture of the Flex framework
Flash
Pros:
good for making movies/animations
Timeline can be easier for designers/animators to conceptualize
when working from scratch, provides a great deal of control.
easier for someone with a programming background
You can program whatever you like; no compromises with existing frameworks
Cons:
only provides basic user input (text box) out of the box.
timeline can be daunting for programmers (although you can quite safely ignore it)
Development of certain types of applications will be slower than with Flex
can't be developed using linux
user input validation must all be handled in the code. No built-in validation.
need to implement your own lay-outing system
Please correct me if I missed anything said so far.
Flash and Flex both use the same underlying rendering engine, just with different front-ends. Flash is better suited for making movies and animations. Flex is better for application development.
From a programmer's viewpoint, the big difference between Flash and Flex is not so much which IDE/application you use for programming, but whether you program in ActionScript (AS) only, or use the Flex framework and MXML to program your applications.
I would say pure ActionScript is better for programming (whether you use Flash IDE or Flex IDE is not that relevant), and MXML is better for non-programmers to combine the components programmed in AS.
I would add to your list these pros/cons:
Flex:
Pros:
Easier for non-programmers to get into application development
You can quickly combine components to create small applications
Components can provide an advantage in large-scale projects
Cons:
Customizing the look of components can take a lot longer than anticipated, depending on the visual style you're looking for
When you find out you need a custom component that doesn't exist, you might need to go back to Flash to do the real programming work and packaging of the component
The "flexibility" of Flex means you will be reading a lot of documentation
Bugs in the Flex framework
You eventually will need to compromise with the architecture of the Flex framework
Flash (or Flex IDE in ActionScript project mode):
Pros:
Easier for someone with a programming background ;)
You can program whatever you like; no compromises with existing frameworks
Cons:
Timeline can be daunting for programmers (although you can quite safely ignore it)
Development of certain types of applications will be slower than with Flex
In short: pick the right tool for the right task.
Flex is a library of code written in ActionScript3, so it adds lots of capabilities and standard-library-like stuff to Flash. The downside is that it a is a huges amount code that gets included into your application. If you use any Flex at all in your app, the download size of the SWF goes up by 100's of K.
If your application has any kind of user interface widgets, then you almost have to use Flex as Flash itself only has the most basic things like text boxes. Flex has a whole XML GUI with layouts, data binding and XML setup etc.
Doing that in flash, you end up having to write from scratch things like list boxes...
In my opinion, the most important feature of the Flex framework is the component lifecycle, which provides a really elegant model for validation/invalidation of properties, component size, and hierarchical rendering.
The benefit to developers is that it creates discrete application phases for business logic and rendering, avoiding expensive geometry & rendering code until the last possible moment before drawing a frame.
Here's a really good presentation, explaining how it works:
http://tv.adobe.com/#vi+f15384v1002
The model is so well-designed that the component lifecycle remains almost entirely invisible during the majority of Flex development, when you're using the framework default components and containers. You only need to learn the inner-workings when you start developing your own components.
Developing in the Flash environment, or in pure Actionscript, you don't get any of that. Anyone developing pure AS3 applications either needs to code very carefully to separate business logic from rendering, or will suffer severely decreased performance.
[...] why would I want to use Flash without flex?
Flex is a new product, whereas Flash existed from the Macromedia days. Designer, animators and most anybody who is not brought up on a staple diet of programming education will probably find Flash easier to master than most other such solutions.
Target is different.
Flex is more dedicated for programmer while Flash is more friendly to Artist / web designer.
Flash is the IDE used (generally) to create animations and things that work well on a timeline.
Flex works better for creating internet applications which have interactions more akin to a desktop.
Why use Flash? Well, if you need to do something more specifically attached to a timeline, of course!
I see Flex as more of a solution for doing RIA applications where you need to develop application based solutions. There's quite a lot you get right out of the box with using Flex but it also comes at a price in terms of file size, granularity, etc.
If on the other hand you are working on a totally custom solution such as a game then perhaps Flash is the way to go because you can start fresh with a blank canvas. Many people still use Flash because they don't need all the app based bells and whistles of the Flex platform.
I like the freedom of Flash, and its really simple to embed assets in Flash, a little more confusing to do in Flex.
One thing that I love about flex is the ability to make a fluid application with minimal effort. Which would take forever in Flash.
Anything you can do in flex you can do in flash, just may take a lot longer to do. You can't do everything in flex that you can do in flash though.
Flex takes care of all the UI programming for you and lets you focus on the business logic, with flash you will spend a majority of time programming the UI.
You can develop Flex applications under Linux easily but with Flash you simply can't.
Another solution that was not suggested at here, will be to use them both. You can add flex components to flash movie clips using ContainerMovieClip. And you can add flash movie clips to flex components using SpriteVisualElement. Another thing that wasn't mentioned was lay-outing your application. It will be flex pros against flash disadvantage, because you got build in flex lay-outing system. But again when you are using them both, you can layout your movie clips with flex lay-outing system.
Also flex become Apache top-level project. And it become more and more excepted by the community now.
Flash and Flex are 2 complete different things, one is a design tool with support for action script, the other one is a framework that also has action script but is maily built around MXML which is a XML based UI definition "Language".

What features distinguish Flex from DHTML?

I just got started using Adobe Flex SDK. I was very excited because it's the first time I've found a good, free way to create Flash applications. But then I noticed something: Flex doesn't seem to be much about making animations or designs. It seems more like an application to build forms and menus and the like... which I can already do in (D)HTML.
What features does Flex have that make it better than HTML in some cases?
Also, are there any techniques/software programs that would allow me to add the flash/design components that I mentioned earlier?
Thanks!
Flex, like Silverlight, is marketed for the creation of something called RIA = rich internet application. The idea being that (D)HTML isn't really well-suited to create large-scale, well-responding applications on the web. I'm not sure whether this is really (still) true but historically, it fits.
Flex and Silverlight attempt to correct this by providing two things: a different, extensible technology along with a large library and an adapted toolset for the creation of applications. The disadvantage in both cases is the dependency from further (non-free, non-standard) components. The advantage is a potentially much more productive workflow and better performance.
Flex has a cohesive component model, and the basic building blocks were designed to support applications. HTML, on the other hand was designed for displaying text, and the DOM is a sorry excuse for a component model -- and it was most definitely not designed with applications in mind.
There is a plethora of JavaScript libraries that try to implement a workable platform on top of the DOM, and to even out the differences between browsers. While these work fine in many situations most of them don't come near the richness of the Flex component model, or even the more basic Flash API:s.
However impressing libraries like Dojo, YUI and jQuery are, they are limited by the platform, and it is limited indeed. Flex has all the benefits of the Flash Player platform, like vector graphics, remote objects, video support, cross-domain loading, sockets, font embedding, etc. but also a very good component model, data binding and skinning capabilities, to name but a few. If you're writing rich internet applications Flex is as rich as it gets.
Flex is a layer on top of Flash, and was designed from the ground up for building applications. As such it has very powerful capabilities when it comes to interface construction and data manipulation. If you are interested in movies and animation sticking with Flash is more appropriate.
The advantages of Flex over DHTML (AJAX) include:
- Faster prototyping
- Better cross-browser support
- Better support for data management
- More "serious"
Disadvantages include:
- Stuck with a single vendor
- Requires the Flash plugin
You can do audio and video in Flex/Flash vs DHTML.
Some more details and comparisons are in this The Top 10 Things You Should Know About Flex article.
If you're interested in leveraging the graphics potential of Flex, why not go check out Degrafa which is an open source graphing and general graphics api. It's pretty cool, very well documented, and quote - "Adobe has asked if the Degrafa team would consider helping directly contribute to the Flex Graphics open source effort." - which they are!
It's not just all about charts and graphs.
Just a quick clarification - to be clear, Flex is built on top of Flash. What that means is that anything you can do in Flash, you can do in Flex when it comes to programming. Flex Builder does not come with any tools that let you make animations with timelines or vector art or anything like that, but all of those elements are still usable provided you have the tools to make them elsewhere.
Flex is really about bridging Actionscript 3 as a language and Flash as a runtime into an environment where application programmers can feel truly comfortable with it.
As stated above, "Better cross-browser support." That's probably the biggest factor right now for me.
A few more...
It's a lot easier to get "pixel perfect" designs in place.
It's really easy to integrate Flash content into Flex. Which makes it easier to work with designers.
Actionscript is better than Javascript (go ahead and flame me!)
There aren't any really good alternatives to buying the Flash product for making timeline based animations.
The bad sides:
Sometimes, html is just plain easier / more powerful
Make sure to pick the right tool for the right job. Sometimes DHTML, sometimes Flex, sometimes Flash, and many times a combination of those.
What you're talking about is Flash versus Javascript. Flex is Flash, DHTML is Javascript.
Flex allows for rapid prototyping, an alternate IDE for building Flash .swf s, and fits nicely into Air - Javascript only runs in browsers, includes less animation support by default (although there are plenty of well-established libraries that provide that functionality) and doesn't require a plugin to work.
Also with Flex you don't have to deal with JSON, XMLHttpRequest, compatibility issues and the likes... Everything works like magic.
Unless you need a lot of animations, HTML will feel more lightweight than Flex.
No "loading" screen.
On OS X performance of Flex is abysmal. Even DHTML animations are faster! (see GUIMark).
HTML has wider compatibility than Flex. It may not be as easy as writing for single implementation from single vendor, but OTOH you're not limited to that single implementation:
No problems with iPhone or 64-bit Linux.
With graceful degradation basic functionality might even be accessible from Lynx or BlackBerry browser.
HTML is better integrated with the browser and OS:
Form elements can have native look'n'feel.
Text has preferred type of anti-aliasing, no problems with ClearType.
Keyboard shortcuts, context menus and text selection work as expected.
Browser extensions can improve DHTML apps, but Flex is impenetrable.
Accessibility tools have better support for HTML.

Resources