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
Related
What does a web designer need to migrate to Flex quickly?
A: tell me how I can get good fast
B: tell me why it would be unrealistic to learn Flex quickly
I want here both sides of it. Maybe web designers are not qualified, I'd
honestly like to know what it would take.
Thanks,
TELL ME WHAT I NEED
• Projects I need to complete in Flex
• Tutorials
• Key concepts
• Other technologies in a nutshell (webservices, SOAP, AJAX, HTML5 etc.)
MY SKILLS
• I code JavaScript (including HTML, CSS, XML, not much AJAX)
• Flash (hand code ActionScript 3.0 in classes, reasonable OPP skills)
• I'm a designer 'no computer science degree'
This Flex reference should include everything needed for beginning Adobe Flash Builder 4
To be honest, the tenor of your post is a bit irritating. Nothing worth doing comes easily or without some level of work. "How can I get good fast?" implies you either don't have time or don't possess patience to do things right. I doubt that's the case, however, and thus here are a few thoughts to your questions/bullet points:
A: tell me how I can get good fast
I don't know what you know, and thus cannot tell you how long it will take you to become a solid Flex developer. If you want to get good, you'll probably need at least some time; if you want to be fast, you can pick Flex up rather quickly, and your application may end up a buggy mess. Depending on your definition of "fast" (and what you already know, of which, as I've said, I'm completely ignorant), you'll probably have to take your pick between the two.
Growth in any area usually comes with experience, instruction from superiors, and learning from ones' mistakes. Getting "good" quickly is a concept which doesn't take these into account.
Your knowledge of Javascript, CSS, and design will certainly help, and I don't want to denigrate your current experience. Seven years of design is outstanding and a great gateway to Flex. Those skills, however, likely came with time and effort, and you should expect the same with most new technologies.
B: tell me why it would be unrealistic to learn Flex quickly
Of course you can learn Flex quickly. I picked it up in a few days, and have spent the last 2 years of my life writing Flex applications full-time. I consider myself well past proficient, and I still have quite a bit to learn. The basics aren't terribly difficult (esp. since you have ActionScript experience). Learning enough to be good, however, creates an explosion of new material to cover. Consider these questions:
Do you know how to architect a web application? Not just assembling a quick and dirty web-page with a few basic controls -- do you know how to build a full-fledged web application which is extensible, scalable, and robust in its communication with a remote data server?
Are you working with established data servers, or do you have to implement your own?
Do you know how to manage large data sets efficiently?
Do you know solid software design/development techniques and principles (DRY, YAGNI, KISS) and how to implement them in your code?
If you can't answer these questions (or answer them negatively), you probably have a way to go. If you can answer them positively, you're at least on the right track. There's still a plethora of things to know about Flex (some listed below), and each one will take some time to pick up.
• Projects I need to complete in Flex
This question is a bit vague. If you're referring to tutorials, you're repeating yourself (see your next bullet point). If you're asking what applications will facilitate writing Flex apps (e.g. FlashBuilder 4), you haven't done enough homework. If you're asking what programs we think you should write, you're asking the wrong people. See my next point...
• Tutorials
There are many tutorials for Flex development. Start with a basic Hello World program and add simple features to the page (e.g. user controls, multiple MXML and ActionScript files, packages, styles, etc.). You said you're a Javascript developer with HTML and CSS: why not attempt to rewrite one of your previous applications in Flex?
We don't know what topics you need to cover because we don't necessarily know what you'll be doing in Flex. If you never plan on performing HTTP requests, you probably don't need to learn this functionality (at least not immediately). If you will never work with server-side notifications to your app, BlazeDS and LiveCycle Data Services might not be important.
• Key concepts
Man, where to start? Data binding, Code behind patterns, MXML vs ActionScript, Flex Skinning, working with XML, MVC frameworks, the list goes on. No list of "key concepts" is going to make you good fast.
• Other technologies in a nutshell
(webservices, SOAP, AJAX, HTML5 etc.)
Here are a few things you might want investigate, depending on your needs:
BlazeDS
LiveCycle Data Services
Flex and HTTP
Asynchronous Requests in Flex
Mobile Application Development
My recommendation is to start with the basics, and see what you're up against. Build a "Hello world" app and extend it to include various other features. Then assess what you hope to build with Flex, and how you expect to retrieve data from a back-end server. These two points will help you decide what you'll need to learn next. From there you can research each new topic you're trying to address and how to do it correctly.
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
I'm a C# developer looking to branch out. I want to try either flex or flash. Any recommendations on which to go with and why?
Flex is a framework for Rich Internet Application development. It extends Flash with controls and namespaces for UI, data, etc.
If you want to venture a little out of your comfort zone, experiment with Flex. If you've ever worked with WPF it will feel familiar. If you want to get really wild and crazy, add Flash. You can combine Flash assets with Flex projects to create some visually zingy applications. It's worth experimenting with both to get a feel for what they can do together, which is quite a bit. Flex Builder is a good tool for both Flex and ActionScript projects.
I encourage you to try Silverlight as well, since you already have the C#. Both platforms have lots to offer.
Silverlight! :D
Seriously, if you already know C# and you want to leverage that for rich internet applications, that's your best bet.
That said, if you're wanting a programmer-friendly non-C# way of doing things, I'd recommend Flex over Flash. Flash is..... shudder.
This link might help you in your decision.
I gotta argree with Dr. Dredel. It's really hard (not impossible) to access databases and other server side stuff in flash. I took a flash class in high school, worst 18 weeks of my computer life.
You guys are forgetting that Flash is installed on 98% of all computers, while not even Bill Gates himself knows how many computers Silverlight is installed on. You should keep your audience in mind when deciding on what platform to experiment on. Also, remember that linux does not support Silverlight.
I think a good analogy to your question would be saying "I'm thinking about trying something new, should I learn how to bake or ballroom dance?"
Flash is primarily a client building thing. It has lots of hooks and bells and whistles, but at the end of the day 98% of what you build is sitting on a client and displaying stuff, not running on a server.
flex is, on some level, an alternative to things like JSP.
Commercially there's a lot of need for Flash, while Flex is just catching on. So, that might influence your decision making to some extent.
I want to start developing Flash and Flex applications so that I can put all of the concepts floating around in my head into action. The problem is that I have never done any programming nor dealt with code...ever. I have worked in the graphic design industry and a lot of the storyboarding features in Flash are intuitive to me. Additionally, I've gone through some tutorials on Flex through the Adobe website, and although I pick up on the concepts well and can do the assignments, I'm not fully understanding the language (it's only been a week though).
My question is this: Should I just keep going with the Flex tutorials and work my way through MXML and ActionScript? or should I start by learning a different base language first? I've learned several languages in my life (Spanish, French, Italian) and with those, I didn't really understand the language until I jumped in, went to the country, and just struggled through it. Is it the same with MXML and ActionScript? Should I just struggle through it? Or do I need a base first? If I need a base, what would you suggest?
It depends on where you want to go.
If you're aimed towards making "application"-like content - that is, buttons, pulldown menus, tab and accordion frames and so on, then probably you should keep on with the Flex tutorials. Flex is a framework, remember - it will spare you more of the gritty details if what you want to do is aligned with it.
If you want to make more generally expressive content - games, unique menus, highly interactive experiences and the like, then learning Flex would probably be a sidetrack. You'd be better off focusing on ActionScript itself.
Since you're starting from zero, you should also consider how far you plan on going. If you hope to eventually be able to handle complicated, heavily script-driven content, then you'd be better off learning ActionScript 3 and pretending AS2 doesn't exist. However, if you need to learn "enough" scripting to get the job done, but you don't plan on getting married to it, then you might prefer to do the reverse. AS2 is much more ad-hoc, and less strict. It has more whippituppitude, as they say. But for complex work AS3 is far better.
As for learning other languages, I'd say not so much. AS2 is very similar to JavaScript, and AS3 is very similar to Java, but you'll understand much better how to make good Flash content if you learn the scripting together with the authoring tool, and you'll come away more able to grok Flash's internal structure and the attendant possibilities and limitations.
JavaScript is a good language to look at if you want to learn something similar to ActionScript, but if you are really interested in using Flex and Flash, you might as well just dive into it.
As you get more experience you'll find that you will also be able to read code in other languages and learn from examples of core concepts in most popular languages. Like spoken languages, the rules are pretty consistent, the grammer and vocabulary just change.
I have always found working through a language and researching when I have specific questions makes the process faster, plus I tend to remember the things I struggled on a little better.
I currently do a lot of work in ActionScript 3.0, I also love to program in Java. Is JavaFX perfect for me? What is the general feeling on JavaFX, will it become a power house, or go down the same path as Java Applets? Could the designers I work with become comfortable with JavaFX to the same extent they are comfortable with ActionScript and JavaScript?
Just wanted to add my $.02... I've been working in JavaFX for the last 4 days on my first little side-project using it. As some background, I've been programming professionally for about 9 years, starting with C, and have been doing Java and C#/.NET for the last 6 yrs.
IMO, JavaFX its way more frustrating that it should be. Here are some gripes:
The syntax is just odd at times. It could easily be more like Java, since its JavaFX. But the syntax isn't an easy transition from Java.
The order of items in a .fx file actually matters, which means you run into stupid circular reference errors, and "oh you can't use this variable yet because it hasn't been initialized" problems that the compiler should handle with ease, but doesn't.
Random things just don't work. Actions/events on Swing controls don't always work, for example SwingSliderBar's onKeyPressed/released don't seem to be called.
Error handling is just bad. If an exception occurs that isn't handled, there is no real way to tell other than the Java console, and UI elements start to react funny. For example, make a SwingText box and bind its value to a variable. Now trying to edit the value in the text box will throw an exception because you cant edit the bound variable. However in the UI, the text box just starts having funny things happen. some characters only 1/2 paint, sometimes backspace does nothing, sometimes it deletes a character, sometimes you can press 2 keys ont eh keyboard like "1" and "2" and the text box will end up having "21" entered in it instead of "12", etc...
Although my absolute #1 problem with JavaFX development right now is Netbeans. It is pathetically bad at JFX. Can't debug, errors display wrong in the IDE (I've had it flag comments as errors!), the intellisence only works like 40% of the time, event he code templates preprogrammed in the IDE for drag & dropping controls aren't correct. I forget which one, but one of them drops a "&" at the end of the inserted code that is never valid and always has to be manually deleted... its just plain awful, and is unacceptable for a company like Sun.
Another gripe is general documentation. Its just lacking. Somehow the JavaFX API doesn't even come up as the #1 search result on google when searching for methods/classes. Tons of "examples" out on the web don't work any more as every version has major refactoring changes, and classes removed or renamed.
Overall, I give JFX a 4 out of 10. I want to like it, but JFX 1.1 just doesn't cut it... its definitely not what I would consider "production ready".
A resounding "meh".
When I looked at it a year ago, they had a one-way SVG to JavaFx conversion tool. Great, so you can author your visual content once, mark it up with a lot of behaviour, and then the next time you want to make it look good, then what?
If you take a look at this tutorial you can see what I mean. We're drawing stuff by dragging shapes from a palette into source code. OMGWTF. I am not showing that to my graphics department.
I hope I'm wrong about JavaFx, but I don't think they get it. Please, won't somebody at Sun give us a presentation layer that doesn't have its tentacles inextricably intertwined with code?
I left my last job to move from Java to .NET development.
There were a number of reasons for making the move, but the single biggest reason was that I was sick and tired of trying to build 1st class UI software with Java & Swing. It has been six years and I'm so glad I moved on. I see no reason to believe that Sun finally understands UI development with JavaFX.
I am convinced that Microsoft is finally in the process of giving us a platform to build rich interactive applications in the browser. I say that after having built commercially available software which was delivered as a Netscape Plugin 13 years ago, followed by ActiveX controls and Java Applets, and seeing all of these platforms fail to become ubiquitous in the enterprise for one reason or another.
I realize that Silverlight 2 is still lacking in depth and maturity, but Microsoft has shown me enough commitment at this point that I believe it will be the dominant RIA platform in a few short years - at least for projects which require a "real" programming language. I am sure Flash et al. is not going away anytime soon, but Flash is not appropriate for the kinds of software my company builds.
The icing on the cake for me is the fact that I will still be able to use Visual Studio, C# and a large percentage of my current code base (the core engine which is entirely separate from the UI). Of course, if you are coming from ActionScript, this would not help you.
One more important point is the fact that Silverlight and WPF share so much in common. Our plan is to share a large amount of implementation between Silverlight and WPF versions of our software. It is only a matter of time before WPF is the standard for Windows applications – I don’t know whether that is a couple of years or ten years, but it will clearly happen over time. Being able to target the most popular browsers / OS’s with Silverlight and Windows from the same code base is a tremendous advantage IMO.
If you know Java then moving to C# is a piece of cake. And unless you are using one of the nice (not free) Java IDEs, then even the free versions of Visual Studio will be an improvement over what you are used to. The hurdle will be learning the new way of doing things with XAML – but it’s some pretty cool stuff so you might actually enjoy it.
Although it appears fairly powerful in terms of capabilities, I'm kinda blah about JavaFX because of its structure and implementation. It seems like a really half-hearted attempt at getting into the Flash/Silverlight market. Too scripty.
I would argue in favor of going the Silverlight 2 route, but I'm primarily a C# developer so I'm a little biased there. If you don't like that route for whatever reason but still want a richer UX for your users, I'd suggest Flex; it seems much better organized than JavaFX to me.
Just my two cents on the subject.
If you know Java but want to do the stuff you thought was only feasible in Flash - then yes JavaFX would be good for you.
Without a doubt it's going to be much more easier to merge your Java knowledge with the design stuff.
And I believe the tooling will only get better which will make it simpler to use.
Unless you’re working on an internal app I would stay away from it. Users generally don’t want to have to deal with another program that accomplishes the same thing as Flash. I don’t think its install base is large enough yet to make it convenient for end users.
I've been developing Flash Applications with Flex for about 2 years now and I decided to give a try to JavaFX because we are constantly getting user complains that they cant use the applications from their IPhones (and I love Java).
That's one strike for Flash (no wide mobile support).
To be honest I was quite impressed with JavaFX (in a very bad way).
The documentation is incomplete.
The script is simply awful; its this weird hybrid between JSON and R with a feeling of a Java-deja-vu.
I spent the first 3 days painting polygons and making gradients with CODE... WTF!!
I tried to convince my graphic department to try it and they simply don't seam to grasp how the production suite is supposed to work, they keep complaining that Flex skinning is way easy and looks better in the end (Which is absolutely true).
The "CSS support" is simply a bad joke.
It generally feels like a mediocre attempt to offer an option for RIA frontend.
I can only think of a couple of good things about it:
It can be run from an IPhone / IPad and almost all mobile devices.
You have access to all the Java code you want which is great considering the limitations that ActionScript has (no overloading, no private constructors, etc). This is a great thing for us the programmers, but lets remember for a second that this is a frontend/presentation technology... that means that users will have to actually see the thing, so if it doesn't look good and have cool animations / effects they wont dig it.
The Script is way less verbose that MXML files are (with the cost of being unintelligible).
Talking about performance... Flash Player is this huge green blob that keeps growing and growing until no RAM is left compared to how JavaFX runs (JVM rocks! unfortunately this has nothing to do with the actual JavaFX API its just that the JVM... well it rocks!).
It has this cool feature where you can drag the applet outside the Web Browser.
In the end, Im happy I have an option to go mobile but this is light years way of the matureness that Flex/Flash has accomplished regarding RIA applications. The future of Flex/Flash as a wide distributed web technology is not clear (it may end up being used only for annoying banners and online games), no one wants to depend in a close technology as the Flash Player is, that's why the whole Web community is striving to get Flash out of the picture (HTML5 video support, No Flash Player for Apple devices, etc). So an attempt to have an open one is always welcomed, it's just that JavaFX feels like this incomplete rushed beta version of something that Sun felt obligated to come up with in a weekend during a bad hangover.
I Hope this is useful to someone (and offensive to someone at Sun/Oracle =p ).
I've spent the weekend 'playing with it. I see nothing useful in it. It's a iteration of swing / awt. I guess it will be nice for mobile devices but beyond that its nothing useful.
Ideally I'd like to use flash but find it painful to intergrate with a backend of any type.
Well, the syntax of both ActionScript and JavaFX seem to share a lot of similarities, so maybe "Yes".
I'm learning JavaFX script at the moment and I actually like it. But what I don't like, and is maybe it's biggest drawback, is it's awful documentation, which is often not up to date or incomplete.
I've been working on a JavaFX application for several months now. Personally, I love the language. They seemed to me to have made some very smart decisions in choosing the syntax and language constructs (I can bore you with a list if you'd like). I've been programming in it for a few months now and it seems like a very efficient and even enjoyable language to program in.
I think its best use right now is for desktop applications and/or applications deployed through webstart. On the desktop it has a rich set of features and can still make use of the other features of Swing and the rest of Java. From what I hear applets are still slow on some systems, and without Android support the mobile capabilities are non-features. The applet/mobile/TV/web support seems to me more like a bonus for desktop developers then as key features that would get you to use the technology.
So it really all depends on what you plan to use it for. If you are building desktop applications that you want to run on the Java VM that can make use of easy multimedia and rich ui controls, then I think there are good reasons to look at the language. WebStart has improved quite a bit and makes for a nice deployment tool. If you are looking to build web applications, then it might be interesting, but for now I'd say HTML5/ajax are more relevant (you might want to look at ZK in this case). However even with HTML5 ajax has its limitations, and if you find yourself running into them then JavaFX may offer you options. For mobile platforms it won't be relevant until there is stable Android support - in that case I'd just stick with the Android platform itself for now.