Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

This question is for dedicated independent game developers:

My dream is to be a game developer. I am a senior in high school who has taken Computer Science for all four years. I have used Java the whole time, but last year I started using PHP and ActionScript 3 (with Flixel). I also used Game Maker for a brief period. I apologize for this, I wanted to get that out of the way and clarify the fact that I have experience of some kind with game development.

I am stuck at the moment because I don't quite know what language to use to develop games at a professional level. I am seriously interested in becoming a dedicated game developer, but this issue is really bothering me. I would like to know what the best option would be for my case, based on your experiences. Any advice is appreciated.

Things to consider:

  • I am only interested in making 2D games (I am not worried about 3D support)
  • It would be ideal to use something that can be ported to multiple platforms (so as not to run into this problem later)
  • I can't seem to figure out what the industry likes to use

So far, this is what I have:

  • I can't decide if it would be wise to stick with ActionScript 3, or move to C++
  • I know Flash would be for browser games, but what if I want to make a downloadable game, like Plants Vs. Zombies or Super Crate Box? Would Flash be a smart choice for standalone games, or did they use something else?

Thank you for reading this, as I would like to stop worrying about this and make some games! Also, I hope this wasn't all over the place :)

tl;dr Should I move ahead with AS3 or use something else i.e. C++

share|improve this question

closed as not constructive by Byte56, michael.bartnett, Maik Semder, Josh Petrie, Tetrad Oct 29 '12 at 16:15

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

At a professional level, more often than not proficiency in C++ is required. – ktodisco Oct 28 '12 at 5:56
He's talking indie, so that's not necessarily the case. Indies can and often do get by with the friendlier languages. – Arcane Engineer Oct 28 '12 at 6:17
"Serious Indie Developers" use whatever tools are with which they are able to best express their vision. – michael.bartnett Oct 28 '12 at 7:21
I have a hard time coming up with a Flash game that could be described as "game made by a serious indie developer". I can give some examples of Unity much easier: Castle Story, Project Eternity (Project Eternity is as serious as indie can get) – Markus von Broady Oct 28 '12 at 8:44
This question isn't constructive. See the faq. See also… – Tetrad Oct 29 '12 at 16:15
up vote 8 down vote accepted

Flash is dying. Whatever some Flashers may tell you, HTML5 is slowly taking its place. Slowly, because HTML5 still isn't really production ready in many senses, for full-fledged and straightforward game dev. You can see solid stats for the shift over the last year if you look (for example) at those jobseeking sites that record these things, Flash demand is falling fast. And that does include games. The main reason? Mobile compatibility. There is the possibility of using Mobile AIR apps to continue developing in AS3, but the shift to HTML5, Unity or native apps seems stronger at the moment. Flash's semi-retirement has contributed to lack of visibility for Mobile AIR.

But, for now, at least on the desktop, Flash still provides a solid, fast, even GPU-accelerated (as of FP11) platform for game building, and for rapid prototyping of ideas for larger games -- say those that will later be built from the ground up in C++. The best part is it's old hat, you can easily use vector or raster graphics, if using Flash IDE you can code and draw in it... etc. All these things make development vastly more rapid than HTML5 (for instance).

More important is not to tie yourself too closely to one language, TBH. There are some benefits to being a specialist, but I think it's better to score 9/10 on 5-6 languages than 10/10 on 2. In many ways, that makes you a better programmer, because you become more focused on assembling patterns than on assembling syntax. In other words, it abstracts your understanding, which is always good.

As for what else you might choose? That's going to depend on your research and specific needs (eg. raw speed, web deployment, GPU capabilities, mobile support etc. etc.).

share|improve this answer
What languages are easiest to port to multiple platforms? – Puedes Oct 28 '12 at 6:22
I had considered Unity previously, but I couldn't figure out how to make 2D games with it. I might not have looked at it long enough. Also, I have a good friend that uses Unity and UDK for 3D development, and it looks quite different. I saw flowchart-type things. – Puedes Oct 28 '12 at 6:29
Checking out Unity again, thanks for your help... Any other advice is much appreciated :) – Puedes Oct 28 '12 at 6:42
@Sidar Flash is not supported on iOS, nor will it ever be. Android 4.1 no longer supports Flash. Whether you like mobile or not isn't the point. Whether you like Flash or not isn't the point (I do). Adobe Edge is replacing Adobe Flash for obvious reasons. A good portion of my bread and butter as a contracting indie is mobile. I'm not the only one. This is what we call supply and demand. HTML5 will soon do everything Flash does, so you write once, deploy everywhere. No point getting sentimental about old tools. – Arcane Engineer Oct 28 '12 at 8:07
@NemoStein Re mobile, you're right. I'll include this in the answer. However, looking purely at supply and demand trends, I think you will see that Flash is falling out of favour. – Arcane Engineer Oct 29 '12 at 11:31

I'd recommend you check out Haxe. It's a language very similar to AS3 but with major improvements, so you'll be on familiar grounds. The main thing about Haxe is that it compiles to many different platforms and source targets, some of which are:

  • cpp for windows, linux and even iOS and Android (and others)
  • neko
  • javascript
  • flash
  • a few more which aren't as useful for games

Haxe has a library very similar (if not identical) to the flash API, called NME, which works on all of these platforms. There are also flashpunk and flixel ports and they are very up to date with their as3 counterparts.

I've been using it for the past few months and I like it, though it has some non-serious quirks. The documentation is mostly good and the community is awesome and helpful.

share|improve this answer
Can you link to any serious project made with Haxe? I ask, because some time ago I was interested in it, but wasn't really content about number of libraries to use in it. – Markus von Broady Oct 28 '12 at 10:39
I can not, except for the ones in their showcase. The libraries OP mentions though, especially for flash game dev, are available. I've played around with haxeflixel and I'm currently working on a game with haxepunk, I'm pretty happy with it. – migimunz Oct 28 '12 at 15:53
@MarkusvonBroady - I know it's 2 years later but... How about "Papers Please"? That's Haxe. Grapefrukt also use Haxe for indie games. Still, If anyone is reading this I'd be more inclined to suggest C++ and Cocos2d-x engine for 2d games. – null Jul 7 '14 at 4:26

You will have to learn multiple languages, so don't worry about this. Indies often code something in Flash first, then rewrite it in Unity/C# or ObjectiveC or Java or even C++ if they want to deploy to different platforms. Learning new programming languages is relatively easy when they're as similar as the above ones. The hard part is understanding the concepts and being able to make a good game with one.

So while you're still learning, just make the games. When a game is good enough to sell, then you can start thinking about what sort of platforms you want to be on, which starts to dictate the languages you can use.

share|improve this answer

Flash (as3) is ideal for web games though there are flash players which allow them to be bundled into a native application. In this way, you'll mess up with using different players for different platforms, which may not be guarenteed to run consistent on every platform.

My opinion is to use a cross-platform game library with C++ though I'll stick with java. It's your personal preference over which method to use.

share|improve this answer
Do you have a cross-platform C++ game library you would recommend? – Puedes Oct 28 '12 at 5:58
I have no experience in C++. I know only C# and Java. That's why I said it is your personal preference. But googling it gives several engines. See – Sri Harsha Chilakapati Oct 28 '12 at 6:02
There's a site to teach game programming in C++. See – Sri Harsha Chilakapati Oct 28 '12 at 6:04
Thank you for your help – Puedes Oct 28 '12 at 6:09
C++ is not really good for rapid development, and you don't want to create your game for 10 years. – Markus von Broady Oct 28 '12 at 10:40

Not the answer you're looking for? Browse other questions tagged or ask your own question.