I have been learning and fine-tuning the way I program games for some time now in Actionscript 3 and I feel that I have hit the limits of what the language can do for me in terms of the types of games I can create with it. (AIR doesn't even have joystick support )

I have an Associates degree in programming, a Bachelors in game development and I know (at least) the basics of a lot of the common game development languages, including C++, C#/XNA, Java, (etc, etc, etc). I plan on making a living creating games and would like to start focusing on a language that can help me make a career out of game development.

Recently, I have been interested in choosing a language to replace AS3 as my main language. C#/XNA was the first thought in my mind, but then I read that Microsoft won't be supporting XNA any longer.

I would like to create multi-platform (Mobile, Console, PC/Mac/Linux, Web) games and I've heard that Monogame is capable of doing most of the target platforms. I am independent at the moment, but I would certainly like opportunity for this skill to help me land a job in the future.

Does any happen to have experience in this area and can lend me some advice?

Disclaimer: I am basing this information off of what I see in the jobs market and what I gather from the community. I am not a professional games developer.

Though I tend to loath it, I would recommend focusing on C++. If your goal is to get a job as a games developer, C++ is probably your best bet as far as likely open positions. I will say though that based on the job openings I've been seeing, this is changing. Lots of studios seem to be beginning to use other languages on the back end. The problem is that there are so many languages in use in that arena that it's hard to target one specific: Java, C#, lua, python, and even Erlang (League of Legends seems to be built on it).

If you want to reasonably cover all your bases for non-web games or back end and middleware, I'd suggest being proficient with C++, and competency with one dynamic scripting language (python, ruby, lua, javascript), and also a managed language (Java or C#).

The GameInput class is the entry point into the GameInput API. You can use this API to manage the communications between an application and game input devices (for example: joysticks, gamepads, and wands).

The GameInput class is the entry point into the GameInput API. You can use this API to manage the communications between an application and game input devices (for example: joysticks, gamepads, and wands).

Yeah, but that simply isn't good enough

AIR profile support: This feature is supported only on AIR for TV devices. See AITR Profile Support for more information regarding API support across multiple profiles.

When you mentioned cross platform support, the first thing that came to mind was Unity. You can program in C#.

Has support for Windows, Mac, Linux, and Web Player for free. You can add on licenses for Android, iOS and Flash. There's also a pro license for more advanced features, but you generally don't need those.

Any of the languages, C++, C#, and Java which you mentioned, would be powerful and flexible in game source code.

Your challenge is:

1) Deciding if you need to build a game targeting existing frameworks which are native to the operating system, such as .NET Framework. Mostly I recommend Java for this to be fully cross-platform and tap the OpenGL API and related APIs.

2) If you really like C#, then you could still find ways of using OpenGL or you could go the Mono or Monogame path to get cross-platform. SharpDX is great for only Windows cross-platform implementation and compatibility.

3) Choose an existing game engine and much of the work is already done for you. For example, Unity 3D is Mono based (Surprise! ... to a lot of people). There are many game engines, including Java, C, C++, and C# ones - among others: http://en.wikipedia.org/wiki/List_of_game_engines

4) Making your own game engine or using a 3D engine and extending it are other options, but obviously add probably years to your first development cycle.

I am personally recommending Java and OpenGL in your case, using an existing game engine to start such as jMonkey or other. If you get very good with OpenGL, OpenCL and so on, then you could possibly get a system going of porting a core game source code to various platforms.

For many beginners, C# and Unity 3D would be my top recommendation, with SharpDX or Mono close behind.

However, your decisions might heavily depend on the type of games and basic game struct which you plan to create, so look at game engines for inspiration and the types of games created with them.

By all means, work hard, have fun, and keep at it!

Clinton

Edited by 3Ddreamer, 28 December 2012 - 11:10 PM.

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.