What is the limitation of Actionscript 2.0? - actionscript-3

I would like to know if you have ideas about the LIMITATION of AS2.0? I've done some research about the difference of AS2.0 and AS3.0 but I need to have a clear understanding about the limitation of AS2.0 in order for me to confirm that AS3.0 is superior than its predecessor before I continue my study in AS3.0. Thank you.

I used to develop games in ActionScript 2. I was very resistant to ActionScript 3 when it came out - I didn't even touch it until about 2 years after it was released.
When I finally did make the effort to learn it, I became frustrated with myself for not learning it sooner. It was so much cleaner and more powerful. I was able to create actual libraries for future projects as I worked, and download libraries for things that I didn't have the brain to develop myself, like physics.
It is extremely beneficial for you to learn ActionScript 3 - first off, lets look at what's happening with the two:
AS2 is being removed from future releases of Flash.
AS3 is still being worked on. A noteworthy example of this is the recently developed Stage3D API, which grants extremely efficient rendering for Flash.
Here are some core advantages of AS3 vs AS2:
It's object oriented. This is almost mandatory when working with large applications or games.
Because of this, there are hundreds of libraries available for AS3 that cover things like physics, particles, animation, MVC concepts, rendering improvements, etc.
Much nicer to use.
Easier to extend your knowledge once you get a grasp of the basics of object oriented programming.
It performs a lot better.
Easier to recycle code for future projects.
Learning ActionScript 3 will greatly improve your chances of being able to pick up additional popular languages like C#, Java, PHP and so on.
Much easier to find support - take a look at the quality of answers on Stack Overflow between AS2 and AS3.
You can create AIR applications, which can be built for iOS and Android devices.

The only reason you need to care about is that it's an obsolete language. Don't waste your time with AS2. There's a quantum leap from AS2 to AS3, not only in terms of what you can do, but in terms of the quality of the language itself.
As someone who made the transition in 2007 to AS3 (after using AS2 since 2000) here are the main advantages:
Speed. When it was released, AS3 was 10 times faster than AS2. Today considering all the new features Adobe is introducing like Native Extensions, it's a lot faster than that.
Publishing to mobile or dekstop apps. Face it: browser Flash is slowly dying.
New features such as Stage3d or StageVideo.
Learning AS3 will make you a better coder

AS2 is no longer supported in Flash Professional, so if Flash Pro is part of your design cycle or you ever want it to be, that's obviously a big limitation. (Adobe has said that the Flash Player will continue to support AS2, though, so if you don't use Flash Pro to develop you can still get by).
In terms of functions/behaviors that exist in AS3 but not AS2, Stage3D is one. I'll leave it to someone else to make a list, but basically, AS3 is the better (and definitely faster) choice for any situation I can think of.

Related

Choice for multi-platform application development

I like actionscript very much and did a project with Apache Flex 4.12. Originally my mobile application was built in mxml and the performance was awful. Then I rewrite the application with single line mxml file and the rest of the project in pure as3, the performance is much better.
Now I have another project, it is an multi-platform informational application with some e-commerce capabilities target on both desktop and mobile platform and need to decide, on performance/flexibility/scalability wise, should I stick with Flex (mxml) / Flex (pure as3) / or Pure AS3 with Starling+FeathersUI+as3-signal?
I was thinking to shift into the Starling approach, however I see improvements from the Flex 4.14 release, anyone can give me a direction that which approach is more promising in long term?
Sorry for my bad English as I am not a native user. Thanks.
Please look into Haxe (www.haxe.org) and OpenFL (www.openfl.org) as an alternative to Starling.
Haxe is a programming language that is very similar to action script 3.
OpenFL - open flash library is a framework for Haxe programming language.
The benefit: of Haxe + OpenFL are:
Astounding performance
Fast and easy development
Non-existing learning curve for AS3 programmer ( you might need to spend 10 min learning about loops and casting though )
99% same API as the Flash API
I don't recommend Starling because: it's still AIR and you won't want it, the performance is below average, you'll need to re-write your whole code-base for Starling, you won't be able to port your game outside of Starling without rewriting it again and the fact that you won't be able to compile to many different platforms other than the currently supported ones.

About Adobe Gaming SDK?

I have no programming experience at all. I've always wanting to know how to program games and have some fun with it. I started with Corona SDK because I heard it was really simple (and it was very simple), but I decided against continuing in it (I had only programmed a character to jump until I realized --> ) because I realized that when I advance in it, I am going to end up having to pay for it.
In my search for a new cross-platform sdk to learn (since I don't have time, like most people, to learn and program 15 different apps in 15 different native languages), I found Moai SDK. I was turned away from Moai since its target audience are people with prior programming experience.
Later, I found Adobe Gaming SDK. Although I doubt it is in any way as simple to pick up as Corona's Lua, if I figured if I have to learn something knew, I may as well learn something new that is as established as Adobe and their gaming SDK.
I have a few questions though...
1) What language does Adobe Gaming SDK use? (Pretty sure it is Action Script 3, but I do not know much about that either.)
2) Just how cross-platform is it? (Which devices?)
3) Where do I start!
4) Is it free?
#3 is the most important question for me since I don't have any programming experience, but I am willing to learn on my own. Honestly, I only want to learn how to program (2D) games; therefore, is there a source you can direct me to in order for me to learn from scratch and just gaming.
Any and all help is greatly appreciate!
P.S. If you have any other SDK or something that you think could suit me please help. Also, I am a cheap person, so i would prefer for resources to be free as well. Also, please check back if you answered my question because I sometimes forget a question or will have a follow question since I am a major novice.
THANKS!
1) What language does Adobe Gaming SDK use? (Pretty sure it is Action
Script 3, but I do not know much about that either.)
Yeah, it's ActionScript3. You can also code in C/C++ using CrossBridge.
2) Just how cross-platform is it? (Which devices?)
Using Adobe Integrated Runtime (AIR, for short), you can make your game available to several devices running iOS, Android and Windows, as long as they have the minimum requirements to run AIR.
Your game will also run on any browser with the Flash plugin, which includes Linux, Mac and Windows.
3) Where do I start!
There are plenty of materials about game development in Flash/Actionscript3, but I would recommend you to learn about a game engine first. It will make your life easier and will help you make a game faster (which will boost your motivation).
Two famous Flash game engines are Flixel and Starling. Start by checking these GamedevTuts+ guides: how to learn Flixel and how to learn Starling (there is an article about how to learn Flash/AS3 too).
4) Is it free?
Yes, all the tools you will need are free.
As a general advice, I would recommend you to take a look at GamedevTuts+. It has several resources about game development, from simple concepts to more advanced things. You will find articles for people with no programming experience at all. It's a great place to start as a novice game developer.
As a second advice, you could also use Phaser to create your games. It's an easy to learn HTML5 game engine, it doesn't require several tools to develop with (all you need is a code editor and a web server) and your game will run on any modern browser.

ActionScript 3 IDE which provides tools on Graphical Interface as well as Code

This is my first post on Stack Overflow.
Are there any IDE's for ActionScript 3 which can provide the following:
-Graphical Interface for drawing
-Writing code with good debugging, dynamic feedback, refactoring etc
I have recently rekindled programming flash games in ActionScript 3 and am using Flash CS3
as it provides means of drawing my graphical objects and writing the code.
I have noticed that:
1. Debugging is not particualr great
2. No dynamic feedback whilst programming (suggestion or auto populate)
3. No refactoring etc
I have looked into other IDEs such as Flex Builder and even looked at plugins for my favorite
IDE's such as Eclipse and IntilliJ but have not found my answer. They tend to talk heavuly about
how they provide good coding tools but not much, if any, tools on the graphical side of things.
It would also be ideal for me if what ever IDE I use I am still able to migrate the entire project
so that it can still be opened usign CS3. Additionally, I am a Windows user.
At the moment I am contemplating drawing my sprites in CS3 and doing the code in another but
surely there must be an easier, perhaps more sensable approach?
Many thanks in advance for any help.
No, there is no IDE like that, and given the decreasing popularity of Flash it's unlikely that something like that will ever be developed.
The coding environment has improved quite a bit in newer versions of Flash Pro, but it still doesn't approach anything like Flash Builder or FlashDevelop. It's not uncommon for people to create graphics in Flash Pro and do coding in another editor.
This is easy. FlashDevelop for code. Flash IDE for graphics. You may want to graduate to CS5.5 or CS6 (if you can find a copy)if you want to go mobile. Otherwise CC.

Resources for Learning Pure AS3

Similar question: Best Resources for Learning AS3
I am interested in learning AS3 and have downloaded FlashDevelop and played around with it a bit, learning some of the fundamentals. However, when I attempt to start on any relatively simple project (eg. a multipage document) I get completely lost and have no idea how I should build my project. Are there any resources, tutorials, 'cookbooks' etc. that teach actionscript 3 through example projects. I keep finding books that explain the fundamentals of the actionscript syntax or tutorials that explain how to use actionscript to complete a task in the Flash IDE but this is not what I am after.
Where can I learn how to create projects in pure AS3 without the aid of the Flash IDE or Flex? I don't mind if I have to create assets in the Flash IDE that I then compile to .swf or .swc for use in my actionscript code.
My advice is: learn Flex focusing strongly on MXML, or learn Haxe.
AS3 is verbous, unexpressive and unproductive compared to those two.
edit: you can check out the AS3 cookbook. nonetheless, after rereading your post, I've come to understand, that your problem is not learning AS3, but you're rather having design problems. Am I correct?
edit2: "Is it uncommon for people to work in pure AS3?"
I wouldn't say, it's uncommon. I'd say it's even common, i.e. a common mistake. Why? It's inefficient. I think, I can tell, because I did that a lot.
the main role of pure AS3 is to create libraries and frameworks. To create actual apps, it is really the hardest way one can choose. In all handmade apps, GUI turns out to be the most time consuming part. Laying out GUI using code is a nightmare.
Now MXML is really great for normal GUIs (a graphical editor is even better of course). And the Flash IDE is great for creating funky animated things. The best thing you can do with AS3 is take ASWing and their GUI-editor. As nice as ASWing is, its ugly and a pain in the arse to skin. But, you can.
The advantage of Haxe is, that its a more powerful language than AS3. You effectively write less code, and its signifficantly more typesafe, so you run into less errors and spend less time debugging. Also, another advantage is, that you can use the same language for creating a serverside backend for the app and pass objects transparently to it, using Haxe remoting, which cuts the transport layer down to nothing. All validation and business logic can run both on client or server. Plus it's open source and it evolves very fast. AS3 was a great thing when it came, but it has stalled eversince, which is nearly 4 years now.
So while there's nothing wrong using pure AS3 per se, you always have to compare it to the alternatives. Pure AS3 is inefficient and for geeks. Flex is highly efficient. Haxe is more efficient than AS3, and is for the really cool geeks.
Have you checked out Essential ActionScript 3.0 by Colin Moock that was in the other question? here is a preview on google books

Pros and Cons of Gaming Frameworks

This question is directed to anyone out there that is just starting in hobby game development. The first thing that comes to ones mind is:
Which language/framework should I use?
List of solutions:
Adobe Flash -> done
Allegro
Apocalyx
Blender Game Engine
Blitz3D
Devkit Pro
Game Maker
Gosu
IndieLib
jMonkey Engine -> done
Microsoft Silverlight
Microsoft XNA -> done
Multimedia Fusion / Games Factory
OGRE -> done
pygame -> done
pyglet -> done
RubygGame
SDL -> done
SFML
Torque 3D
Unity 3D
Custom -> done
Answer template:
Framework Name (Linked)
Pros:
Pro1
Pro2
...
Cons:
Con1
Con2
...
Microsoft XNA Game Studio
Pros:
Uses .NET languages; managed memory, ease of the Visual Studio environment, etc.
Good mix of high-level and low-level
Supports both 2D and 3D very well
Is proven; look at the Xbox Live Arcade, all of those games are made with XNA
Games can be easily run on a networked Xbox
Cons:
Uses .NET languages; can't use Java, C++, etc.
Not too many resources (i.e. books) out yet, though it is easy to learn and use so that may not be an issue
Windows-only. Mono (on Linux) doesn't support XNA at all.
XNA 3.0 was released less than a year after 2.0, and now we're at 3.1; frequent changes like these can hinder documentation, i.e. books get outdated quickly and many things break when upgrading a 2.0 game to a 3.0 game.
As of 2014, discontinued.
If you have the time, do it all yourself. It's worth the experience and you'll learn a lot, instead of how to work with framework X . ;^)
Pros
Full Control
Strong Learning Experience
Consistent code between game engine and program
Tends to be well-suited towards the application it is applied towards.
Supports any language/environment
Cons
High difficulty
No online documentation
Generally, less generic. Harder to apply to other games.
Harder for other people to use.
Probably buggier than more popular frameworks.
Not well-tested.
Harder to get help.
jMonkeyEngine
Pros
Uses Java; managed memory, highly supported in many mature IDE's (Eclipse, NetBeans, etc.), highly portable
Good mix and high-level and low-level
Modern 3D scenegraph
Built atop LWJGL, a very mature and well-working game library
Very lightweight; doesn't add very much overhead
Built in 3D model loading in a variety of formats.
Built in modern node-based 3D scenegraph.
Easy to use.
Open source; constantly evolving and improving.
Includes culling, collision checking, etc.
Has the option to save and read its own ultra-compact, ultra-fast binary model format.
Full list.
Cons
Uses Java, so compiles JIT and can therefore be a bit slower than C++ and other options.
Hasn't been used in many commercial apps (and therefore not as "proven").
Has no attached editor of any kind, everything must be done in pure code.
Difficult to do 2D games (for that you could try Slick).
pygame
Pros:
Easy to get started and create something visible.
Cross-platform.
Lots of open source games available to inspect the source.
Python language's pros (flexibility, dynamic typing, strings/arrays/tuples, etc.).
Cons:
Performance-wise does not scale to very large games (which hobby game development rarely is).
Mostly suited for 2D, although 3D is possible.
Difficult to distribute as closed source.
Also SDL could be inserted as pros and/or cons.
OGRE (Object-Oriented Graphics Engine)
Pros:
Tons of 3D features
Cross-platform, uses DirectX or OpenGL
Plugin architecture for even more features
Does not try to be an everything-engine, only a graphics engine (doesn't even try to handle input, as many graphics libraries tend to do)
Cons:
Uses the Singleton pattern
Very hard to do 2D or primitive rendering (individual polygons, lines, etc)
Tons of code makes the learning curve quite steep
pyglet
Pros:
Low difficulty
Cross-platform
OpenGL accelerated graphics by default
Further OpenGL graphical enhancements easy to add
Python language
Cons:
Less well-known than pygame
Game 'loop' is a bit unconventional
OpenGL knowledge required for advanced graphics and to maximise performance
SDL
Pros
SDL officially supports Windows, Mac OS X, Linux, iOS, and Android
It is used by video playback software, emulators, and popular games including Valve's award winning catalog and many Humble Bundle games.
Open source
SDL is written in C, works natively with C++, and there are bindings available for several other languages, including C# and Python.
Cons
No special IDE like Unity
A bit low-level
The pros of any framework (gaming, web, etc.) is that they remove the unnecessary boilerplate code you'd have to normally write.
The cons often come up later on, once you want to go beyond the capabilities of the framework it can become very difficult. With many of the more complex frameworks, extending their functionality to make it do something it wasn't designed to will results in you having to write a lot of your own boilerplate code.
just starting in hobby game development
You should program a few games before attempting your own framework, otherwise you don't know what to put in it and how to write it. You'll end up endlessly rewriting it to "get it right", when really there are lots of good (and bad) ways of doing it, depending on what it is used for.
"Frameworks" can also be a pain, as they offer a partial solution to a problem. E.g. you just extend a few classes and boom, you have a game. But if your game doesn't suit the framework design you just end up fighting with it and hacking it. The "toolbox" approach tends to be a better approach as it just supplied functionality without forcing you too much into how you should use it. E.g. the standard C libraries are are toolbox and don't force you to structure your code in a certain way.
To start off with you have to ask yourself:
what sort of games you'd like to write.
what you'd like to develop for?
Web browser?
Facebook?
PC?
PC and Mac? i.e. cross platform
Console?
iPhone and iPad?
which language you'd like to use (but this may be set by the platform you chose)
The learning curve for writing games can be quite steep as you might have to learn:
how to program in a new language
how a new API works
how to do the graphics and sound
how to debug it
perhaps how to hook it into other system
Don't be put off it this sounds like a lot of work! The key to writing good games is sticking it out and having the determination to carry on and finish. Have you seen the film, Indie?
My advice:
Start simple - There is a lot to learn, if you take on too much to start with you will be scared off and think it is to hard. So...
Easy language - You'll hear lots of people ranting on the internet about how great certain languages are. Well, they all have their pros and cons. Some are easier to learn that others. E.g. Python or Lua are quite easy to learn. They are scripting languages, which are a lot more forgiving and less complicated to games together with. They don't have things like pointers, memory allocation, etc to worry about.
Python tutorial.
Lua has a tutorial (which I wrote!)
Just make a game! - You'll hear other people talking about patterns and singletons and data driven design etc. None of that matters when you start out. You aren't trying to impress anyone with your code. People will judge you on the end result not the code! Trust me, some of the best games you've played on console etc have terrible code!
Use a small, well maintained library. I'll make it easy, there are other choices, but:
if you want to choose Python (a good choice!) use pygame. Use Eclipse (for Java Dev) with PyDev. Magic and free!
if you want to use Lua (a good choice!) use Love
Look for other game examples - Pygame has tons of examples and games using it. Check the license and if you are allowed, just rip the code. Patch, splice, but put a comment about where you got the code, it is polite, and may be necessary according to the license. Don't ignore the licensing.
Look at Ludum Dare. Tons of great examples and source code to see how it is done quickly.
Then once you have made a few games consider the more complicated libraries and languages. Then you can ask more specific questions about how to solve certain problems. Have fun!
Flash
Flash is a great tool for those who have limited programming or art experience, but want to start cranking out a game.
Pros:
Symbols make graphical creation and manipulation very easy
Symbols have built-in bounding boxes; bounding boxes have built-in collision detection
Ports easily to web
Built-in layers and display architecture make displaying content simple
Lots of support, documentation, libraries
Vector art is easy to create
Cons:
Relatively slow
No method or operator overloading
Requires a purchase, either Creative Cloud or buying Flash outright
Pixel art must be ported in, which can be aggravating
I highly recommend flash if you have access to it, its one of the programs I use most often.
Pro's for XNA in my opinion are that XNA apps can run on Xbox360 in addition to PC, and you can pick your favorite language from anything supported by the .NET Framework - which is quite many.