What resources (books or website/tutorials) are available, that cover game development using pure Actionscript 3 code? By pure, I mean not using Flash CS4 and its timeline, and not using Flex MXML components. Everything done using only Actionscript code.
In another question, I asked about using certain objects of the Flex SDK for simple games, and the consensus was that I shouldn't use it at all, but only Actionscript for a game. Sounds reasonable, but the books/website tutorials that I have found on the subject of games, all use AS3 in the context of Flash CS4. They assume your objects will be movieclips, with timelines, etc.
I realize that you can learn game programming from books in other languages, and/or ignore the Flash aspect of AS3 books. I guess what I'm looking for, is whatever information is specific to AS3, such as best practices for AS3-only games, how to make architectural/design decisions, etc. If it exists, anyway :)
You may want to take a look at Flixel.
What is flixel?
flixel is a completely free collection of Actionscript 3 files that helps organize, automate, and optimize Flash games; an object-oriented framework that lets anyone create original and complex games with thousands of objects on screen in just a few hours.
Flixel is licensed under the MIT license and the site has quite a few tutorials to get you started.
Flash Adventure Game Tutorial
series shows you how to create a
Flash adventure game with Flex and
ActionScript.
FlexFighters
shows you how to make a shoot'em'up
with Flex and ActionScript.
This is a tutorial series that shows you how to make a 3D Flash game with Flex and Away3D
A site that is basically all about using just pure AS3 and that now has game tutorials centered around his pure AS3 game making library is www.actiontad.com.
Your games may be smaller using only AS3 and the SDK, but you loose the ability to animate with a timeline, animations made with the timeline in Flash will perform better, than say sticking a whole bunch of .pngs together, which is a technique actiontad uses, but that site is coming into it's own now with the library he recently released, if pure AS3 game making is your thing it's worth a look.
If you want to deploy your games on mobile (iOS/Android) you should take advantage of Starling (http://gamua.com/starling/), 2D rendering engine built on top of Stage3D, which gives you GPU raw power.
Related
I'm new to this ActionScript language, however I have 2 questions.
So you code in ActionScript (2 or 3) in Adobe, and then export it as a (I believe) a .swf file, which you can upload to newgrounds or something as a game?
I would like to know if this is the process? Or if that is not, what is the process?
Have there been any bigger-name games that were developed with ActionScript? I know most games are parsed over to different languages.
1) Yes, that sounds about right. You code in AS2/3 (I like 3) and compile/export to a swf. That swf is an "executable" that will run in the Adobe Flash Player. That swf may rely on external resources such as sounds and images, or they can be packed inside the swf. I'm not sure about newgrounds' process, but in theory if you pack the resources into the swf you should be able to simply upload the swf and be done.
2) There are more flash games on the web then you could ever begin to count. Newgrounds, miniclip, and similar sites are good places to start, but web based games are not the only flash games. Flash games can be packaged as standalone PC games and even as iOS and Android apps. As far as big-name games, that really depends on your definition of big-name. Farmville is a huge multi-million dollar revenue game made in flash. The original Super Meat Boy was done in flash, though I think the retail version was redone in something else. Flash/AS3 is pretty powerful and totally acceptable for big-name games, as long as your game is actually good and you avoid/workaround a few of flash's drawbacks.
1) Adobe Systems is the company name. The Adobe software to create 'flash' games is Adobe Flash and Adobe Flash Builder.
However, there are multiple open source and/or free development Environments that use the free ActionScript libraries. You can, for example, use Flex and FlashDevelop to create industry standard games.
Like always, Google is your best friend when looking for tutorials.
2) There have been relatively big games produced with flash. However it is traditionally a 2d platform, so no real AAA games.
I have a successful kids educational maths game made in Adobe Flash ActionScript 1, its a fairly simple game but there is animations for example a plane crashing into our logo and breaking it apart.
Could I use HTML5 and tools such as PhoneGap and get it to work like it does now in an iPad App and get Apple to accept it on there App Store? I'm drawn towards HTML5 because its non-propriety and has a promising future but will it be able to replicate the game. I've noticed the featured games on the PhoneGap website aren't very interactive/game like compared to Adobe AIR app examples.
Thanks
You could definitely recreate the game in HTML5 and use PhoneGap to package it for iOS. As long as you follow the app store guidelines, there's no reason why the game wouldn't be accepted by Apple.
The game logic seems straightforward enough and should, therefore, be relatively easy to translate to JavaScript. However, I think there may be significant effort involved in reproducing the animations you have, to an acceptable level of performance, using standards-based web technologies.
There are a few avenues I can think of which it might be worth your while exploring:
Google's swiffy will convert SWF files to HTML5 so you can use them on devices which don't support Flash. I have used it successfully to convert a reasonably complex Flash animation, however the performance of the animation on the device, when it was packaged as a native app for iOS using PhoneGap, was significantly worse than the Flash version. I'm not sure whether the tool would be capable of converting the whole game (definitely not if it's pulling in dynamic data), but you could certainly use it to translate the individual animations of the game.
Adobe Edge is an animation tool similar to Flash for creating animations in HTML. I've not used it so I don't know whether it's any good. However, it is still a relatively new product and a quick search for character animations using Adobe Edge wasn't particularly encouraging.
The CreateJS toolkit for Flash Professional is a free extension which will convert Flash animations to JavaScript using the open source CreateJS framework (which looks superb and may be a good starting point for rebuilding the game should you decide to convert it).
Convert the game logic from ActionScript 1 to ActionScript 3.0, reuse all your existing animations as is, and package the game for iOS using the Adobe AIR packager. Inevitably the performance won't be comparable to native, but I think it should be acceptable for this type of game.
I think in your case I would probably go for option 4, primarily because you'll save yourself the effort of recreating / converting existing animations in another technology. I would definitely encourage you to embrace HTML5 and associated technologies but would suggest you use them on a new project which will allow you to plan around its particular strengths and weaknesses.
I have an android game thats basically completed and I want to start porting it to iOS.
I'm completely foreign to objective c and I have no idea where to start. In android I have a surface view, canvas, and a game loop which draws and posts the canvas. What's the iOS equivalent?
First, be very careful of trying to transliterate between languages. You can't just pick up Java idioms and "do the same thing" on iOS in many cases. Many things are done with a completely different approach (threading is a major example; drawing is often done differently as well). You should spend some time learning the platform first or you'll get something that "almost" works and chase bugs and performance problems forever.
That said, the tool you probably want to study is Cocos2D which is a very good 3rdparty toolkit for building 2D games on iPhone. This is generally a much better approach than trying to build it up from scratch and should have a lower learning curve for game dev.
It's difficult to know how you should port without knowing the nature of your game but most iOS games are written in OpenGL which is very extendable. It has some optimization tricks that can play a big role in how you architect your rendering pipeline though.
If you decide to go with OpenGL you should check out this Stanford talk presented by NGMoco on how to do this...
http://www.youtube.com/watch?v=VNr5I3ZRecE
I would like to have a go at making some simple games for personal/learning purposes. By simple games I mean games like platform, maze, arcade games for example. I would also one day like to create a platform game with a simple editor to allow others to edit and design their own game levels.
I am not sure if Delphi is the way to go though, I don't see or hear many people writing games in Delphi, but Delphi is the only language I understand on an intermediate level.
If Delphi is acceptable to create simple games as I mentioned, am I right in thinking that I would require some libraries that would help me do this, maybe Direct X for example?
I am using Delphi XE, I wish I had waited and upgraded to Delphi XE2 instead as it seems that includes some built in Drawing libraries.
I look forward to hearing your responses on this.
Thanks.
Check out Asphyre
And to encourage you; Soldat, C-evo and many more quality games were built with Delphi, Game Maker too.
There are to many options ...
If you are really new to this take a look at this site and get some good examples from children that try to make games Pascal programming for schools ...
If you are one level up here some library's that give you the a great start for small and big games... this is for new and very advance pascal programming...
GLScene just get the svn version... (Windows,MacOsX,Linux and hear for android and iphone ;) ) -- 2D,3D,isometric........
CastII Great engine (Windows,MacOsX,Linux) -- Mostly 3D....
Asphyre Sphinx 2 One of my favorite i allready start a big big game with that library... NOW (Windows32-64,MacOsX,Linux,and IOS) with DelphiXE2
ZenGL Fantastic and quite easy to use (Windows,Linux,MacOsX and i hear android too) --Mostly 2D but i hear 3D is in way out...
Castle Great library for me not to easy... (Windows,Linux,MacOsX) compine great with freepascal and lazarus...
Andorra 2d This is going to be the best but suddenly stops ... 2d programming at its best...
there are many other libraries and i here a few of them come out before the new year...
But if you go deeper you can try the hard way... the headers so ...
for opengl use the header from here delphigl
for SDL use the Jedi-SDL header (great by the way)...
for directX use the clootie and good luck...
But the most important thing in the game programming is the paper...
Every think write in the paper is the most value object in object programming...
Hope that helps...
Delphi is great for games! Here is a very good resource to get you started: http://www.pascalgamedevelopment.com/
It has a friendly forum where you can ask questions.
I have personally used Delphi for graphics programming for many years and written a free open source game engine in Delphi called ZGameEditor.
azrael11
GLScene doesn't support Android(work in progress as I know)
Cast II works only on Windows
Asphyre Sphinx 2 doesn't support Linux
ZenGL supports also iOS. Android - work in progress. 3D - I'm not interested in it currently, so only fast 2D is main goal.
I have used PyGame for a while now, and quite enjoyed doing so, but only 2D experience is not going to cut it when I apply for video game jobs, and besides, I have a number of ideas I want to try out in 3D. What 3D library should I go into first? I was considering Irrlicht, which will also force me to work on my C++ again, but I was also looking towards XNA, as it would be cool to write 360 games. Any suggestions?
You can try Unity3D http://unity3d.com/. In the fall they released their engine for free that is cross platform (Mac, Win and possible Linux) and it can also be targeted for iPhone and web browser and is starting to build an open community and looks promising.
I've done some XNA stuff and the Unity tools look pretty good in comparison making it easier to get content into your games.
In my opinion, going with Irrlicht or OGRE is a good idea. It will help you get back in touch with C++ and experiment with 3D without making it too easy. It is a good idea to learn XNA as well and build a few 3D game prototypes there.
Summary: Do both, eventually. Learn OpenGL/DirectX later.
All the best.
XNA Game Studio is a fantastic framework and let's users jump into creating games quite quickly if you are comfortable with the .NET Framework.
However, if you decide that you want to move to the 3D world, you have 1 more dimension to take into consideration and it makes things exponentially harder. Simple collision detection, isn't so simple anymore. However, with the vast amount of information available for XNA Game Studio, you should find yourself getting to grips with the 3rd dimension quite quickly.
If you haven't done the whole Nehe type tutorials, it's probably best to play with the API, so that you get comfortable with it.
Create a Triangle
Spin the Triangle
Color the Triangle
Load some assets (models and textures) and render them
Try your hand at Alpha Blending
Take into consideration that XNA Game Studio does not have a fixed function pipeline and you will have to use Shaders (HLSL).
I have personally used Irrlicht, Ogre3d, Unity & Xna. Because you want to do this to help for when you apply for jobs in the game industry in my opinion I would suggest Irrlicht as you will want to work on your c++ skills. I also suggest Irrlicht as it is a 3D engine not a specific game engine which will allow you to work on your physics and maths skills as well which are highly sought after in the games industry.
I would suggest avoiding Unity if you are looking for experience to take to industry as it is a package that handles a lot for you and as such could limit your learning.
Ogre3D is a viable option as it is similar to Irlicht, maybe look into the tools available to help you make a choice between those two.
Xna is another interesting choice, it will give you a lot of chances to learn as Irrlicht could and there are a huge amount of resources to help you learn but at the same time you lose the c++ experience that comes with irrlicht.