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++


closed as not constructive by MichaelHouse, michael.bartnett, Maik Semder, Josh, 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.

  • 2
    \$\begingroup\$ At a professional level, more often than not proficiency in C++ is required. \$\endgroup\$ – kevintodisco Oct 28 '12 at 5:56
  • 1
    \$\begingroup\$ He's talking indie, so that's not necessarily the case. Indies can and often do get by with the friendlier languages. \$\endgroup\$ – Engineer Oct 28 '12 at 6:17
  • 5
    \$\begingroup\$ "Serious Indie Developers" use whatever tools are with which they are able to best express their vision. \$\endgroup\$ – michael.bartnett Oct 28 '12 at 7:21
  • 1
    \$\begingroup\$ 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) \$\endgroup\$ – Markus von Broady Oct 28 '12 at 8:44
  • 1
    \$\begingroup\$ This question isn't constructive. See the faq. See also gamefromscratch.com/post/2011/08/04/… \$\endgroup\$ – Tetrad Oct 29 '12 at 16:15

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.).

  • \$\begingroup\$ What languages are easiest to port to multiple platforms? \$\endgroup\$ – Puedes Oct 28 '12 at 6:22
  • 2
    \$\begingroup\$ 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. \$\endgroup\$ – Puedes Oct 28 '12 at 6:29
  • 2
    \$\begingroup\$ Checking out Unity again, thanks for your help... Any other advice is much appreciated :) \$\endgroup\$ – Puedes Oct 28 '12 at 6:42
  • 2
    \$\begingroup\$ @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. \$\endgroup\$ – Engineer Oct 28 '12 at 8:07
  • 1
    \$\begingroup\$ @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. \$\endgroup\$ – Engineer Oct 29 '12 at 11:31

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.

  • \$\begingroup\$ Do you have a cross-platform C++ game library you would recommend? \$\endgroup\$ – Puedes Oct 28 '12 at 5:58
  • \$\begingroup\$ 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 bit.ly/SNdlXc \$\endgroup\$ – Sri Harsha Chilakapati Oct 28 '12 at 6:02
  • \$\begingroup\$ There's a site to teach game programming in C++. See cppgameprogramming.com \$\endgroup\$ – Sri Harsha Chilakapati Oct 28 '12 at 6:04
  • \$\begingroup\$ C++ is not really good for rapid development, and you don't want to create your game for 10 years. \$\endgroup\$ – Markus von Broady Oct 28 '12 at 10:40
  • \$\begingroup\$ Perhaps. I had no experience in it. \$\endgroup\$ – Sri Harsha Chilakapati Oct 28 '12 at 10:41

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.

  • 1
    \$\begingroup\$ 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. \$\endgroup\$ – Markus von Broady Oct 28 '12 at 10:39
  • \$\begingroup\$ 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. \$\endgroup\$ – migimunz Oct 28 '12 at 15:53
  • \$\begingroup\$ @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. \$\endgroup\$ – 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.


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