So far I've done web design/development and applications programming and of course video games has always been one of those things that I've wanted to take a stab at but never tried outside of a few minor and failed incursions. The only notable game programming I can say I have done was a little puzzle-ish game for the NES written in 6502 assembly so that doesn't exactly count for much.

Basically, what would be a good jumping off point for me? I do know C++ and Java if that gets me anywhere.


4 Answers 4


The only notable game programming I can say I have done was a little puzzle-ish game for the NES written in 6502 assembly so that doesn't exactly count for much.

Don't say so, if you had had to make one game, then you know "how" game programming is different from conventional programming. And i guess, it might be the reason you want to make more. Cheers!! In my opinion nobody was born as a game programmer, everybody started with some application programming language like c, c++ or java.And I feel becoming a game programmer is like getting a promotion from your current designation called programmer. So if you know these languages thoroughly , you can make a great start by first learning the distinctions of a Game versus an Application.

You should read this, it is a really good fundamental guide page. And this is one page i just completely adore.It provides you with the inspiration and tells you to start with what. Best Wishes

  • 2
    \$\begingroup\$ modetn object orientated gui application development is not actually that different from games programming, the toolkit is just doing a lot of the work for the programmer. In gamedev the effeciency of a more custom solution for the main event loop (game loop in gamedev terms) is important. And so the developer codes it himself rather than relies on a generic toolkit provided variant. \$\endgroup\$
    – ewanm89
    Commented Nov 4, 2010 at 9:03
  • \$\begingroup\$ @ewanm89: i disagree with what you said game programmers are equivalent in skill to general programmers. In an ordinary programmer's coding life, whatever he does is atleast a concept that is well-defined in the software programming universe be it sql updations or web application development. But a game programmer has to "invent" each and every line of code in his game which according to me is a lot more tougher than conventional programming \$\endgroup\$
    – Vishnu
    Commented Nov 4, 2010 at 10:09
  • 2
    \$\begingroup\$ If an app developer depends on writing his sql updates or web frameworks from scratch, sure there's not much thinking - but these days frameworks takes care of that tediousness and the focus is on solving the business problems that no-one else has solved - which requires creativity and a lot of work to be done well, just like games. And then try writing high-frequency trading systems where nanoseconds count and then come back and say it doesn't require as much or even more skill than general game development... \$\endgroup\$ Commented Nov 4, 2010 at 10:24
  • 4
    \$\begingroup\$ Vish, that's a pretty conceited argument to be making. Not to mention, utterly false. Game programming, application programming, web service programming, Os programming, high-performance large-scale programming etc all have their quirks. All measure success in different manner. If anything, time pressure and a certain only-the-results-matter-we-don't-need-to-maintain-it attitude ensures that game code is among the worst piece of spaghetti-infested crap I've ran into. \$\endgroup\$
    – drxzcl
    Commented Nov 4, 2010 at 10:38
  • 1
    \$\begingroup\$ Links are dead... \$\endgroup\$
    – goji
    Commented Oct 2, 2013 at 7:24

It sounds like you're in the same boat that I was in a few years back. I wanted to dabble in game development, but my professional experience was mostly with enterprise/line-of-business applications. I decided to ease my way in by choosing a game of a familiar genre could be built using similar architectural principles to what I was used to.

I ultimately decided on a "simultaneous" turn-based strategy game (similar to Master or Orion or Birth of the Federation) for the following reasons:

  1. TBS games are highly stateful, and there is very little "ambient" processing. Almost all logic executes either in direct response to player commands or as part of the "turn processing" phase following each turn.

  2. The synchronous, turn-based nature of the game lends itself well to a client/server system in which all logic/processing takes place on the server, with the changes later pushed back to the clients. There is no real-time interaction between players, so clients can issue orders locally and then transmit those orders in a single batch at the end of a turn. Since the turns are synchronous, the server will not process the turn until all clients have transmitted their orders. It becomes almost trivial to avoid synchronization/currency issues between clients: do all processing on the server and have each client download a new game state at the beginning of each turn.

  3. Most network communication occurs at the beginning and end of each turn, with clients downloading the game state and transmitting orders, respectively. There is very little network traffic in between. Thus, there is no need for the kind of high throughput, low latency networking system that realtime games often require. A service-based design built with WCF would be sufficient, and it would also free me from having to do any low-level network programming.

  4. My design called for a detailed and highly interactive UI not unlike those required by many enterprise applications. The design was also heavily 2D and was not very demanding in terms of graphics capabilities. I built my client using WPF (then code-named "Avalon"), which enabled me to create a highly stylized UI (something that looked like a game) while leveraging a very rich set of controls and APIs for input processing, eventing, and commanding. I followed the same UI architectural patterns that I would use for any other application (MVP or some derivation thereof).

  5. Since I would be building the game using the same language and framework that I use for my day job (C#/.NET), the project could double as a sort of "sandbox" for trying out new development tools and frameworks in a "real world" application that was not also a "mission critical" application.

Long story short, my decision worked out very well. I've been working on the project for a few years now (in my spare time), and I'm pretty happy with what I've come up with. Moreover, I learned a lot, and not just about game development--I took every opportunity to get hands-on time with new development tech, and I've become more effective at my day job as a result. A lot of code originally written for my game has evolved and found its way into some of our enterprise applications.

So I guess my advice would be to choose a project relevant to your existing skill set, and then use that project as a vehicle to dive deeper into game development.


Since this is a hobby project, pick something you want to do. If you are motivated, it will be easier to pick up the skill you will need.

Beware of projects that require a lot of art and content. Things like adventure games etc. consist for a disproportionate amount of artwork and level design. Especially for a developer starting out, these can be the kiss of burn-out death.

Pick something with a defined scope and measurable goals in between. The sense of accomplishment you get from finishing every little milestone along the way will go a long way in keeping you motivated throughout the project and into the next.

For me, this advice led to re-creating a 3D version of a popular 1980s game. But your interests are different, so you will most likely end up somewhere else.

I would say, think about it for a while and come up with the simplest possible project that you still find compelling. If you need assistance figuring out what technology/platforms to use to make it, just post another question. We love arguing about technology around here ;)


As other told you, my advice is to start from something simple. For example a 2d scroll based game, maybe using pre-done art found with Google Images, or OpenGameArt.org. Use a framework/library. XNA for Windows or SDL for cross platform development. Look also at SDL.NET if you want to do your game in managed C#.


You must log in to answer this question.