I am interested in moving into game development once my current project is done, as it's nearly at a point where it will pay my bills and allow me to hire someone else to take the driver's seat, meaning that, for the first time in my working life, I'll be in a position to devote a proper amount of energy to getting into game development, which has been something I've wanted to do for a long time but forced myself to wait on, as there are only so many hours in the day to devote to projects.

I am an experienced web developer (12 years) with most of my experience programming in C# and .Net (8 years). I am also a capable graphic designer. I have a surface knowledge of C++, though it's been 10 years since I wrote any C++ code. I also played with the DirectX 5 API back then as well.

I am happy to outsource graphics and sound, leaving me with coding, game design, level design and so forth.

  • Do I need to learn C++ properly, or can I rely on my C# and .Net knowledge?
  • If I'm going to leave C++ out of the equation, am I seriously limiting myself with regards to platform agnosticism?
  • Given that my memory of mathematics (high school level) is hazy at best, how much time I do I need to devote to pure maths self-education, or can I pretty much figure it out as I go?

In a nutshell, I'd love to get some idea of what the best approach for me would be, including DO's and DON'T's that might slow me down. I know that baby steps will be required at first, but it would be nice to get some advice as to what path I should follow to get myself up to speed quickly so that I am able to create decent indie games with nice looking 3D graphics, AI, particle effects and so forth.

  • 1
    \$\begingroup\$ This is many questions, all of which have been covered in the other "Getting Started" questions on this site, and many of which show up in the sidebar to this question already. \$\endgroup\$
    – user744
    May 6, 2011 at 13:40
  • \$\begingroup\$ Are you planning on selling these games and making a living off of game development, or is this mostly just a hobby that you're going to be pursuing? \$\endgroup\$
    – thedaian
    May 6, 2011 at 13:45
  • \$\begingroup\$ I've already been building a web-based business that covers my living expenses. I'd like to make money from my games though. \$\endgroup\$ May 15, 2011 at 13:06

2 Answers 2


The main focus when first getting into game development, especially if you are doing solo development, is choosing an approach which will allow you to finish a game. The world is littered with half-finished prototypes of every game genre imaginable, but bringing a game through to completion is much more difficult.

So, to expand on what void said, stick to what you know, and choose a game to develop that is both something you would enjoy playing and is a relatively simple concept. Bring it through to a fully playable state with a simple version of every subsystem in place (that is, as appropriate have some simple graphics, a frontend system, HUD/overlays, a save/load system, networking, whatever the game needs to be complete). Then you can upgrade each part of the game as you get more comfortable. Don't worry too much about your first game being your magnum opus, as you get more confident in game development you will know when the time is right to step up your work, start work on a new game with a larger scope, or start focusing on cross-platform development.

As for mathematics, your knowledge will need to scale with the specific tasks that you are trying to accomplish, and will also depend on how much you are trying to develop on your own versus using third-party packages to accomplish things for you. For example, manipulating objects in 2D or 3D space requires some knowledge of matrix algebra and vector math, but nothing too complicated. Creating an animation engine will likely require knowledge of quaternions. Developing a physics engine requires some knowledge of calculus - the more complex your physics engine, the more complex calculus you need to get into.

I would recommend looking into third party packages like ODE so you can sweep away some of the more complicated mathematics and focus on developing your game. Then later, if you decide to take on developing these underlying systems yourself, you can buckle down and learn the maths you need to develop effectively in a just-in-time fashion.


As you are just doing this for yourself and are not aiming to get employed as a game programmer, I would suggest sticking to what you know: Use C#. There seems to be a lot of movement doing gamedev in C# with tools like XNA and Unity3D. There has also been some cross platform games like SpaceChem delivered using C# on mono.

You can always try to do stuff in C or C++ just to learn something new, or fresh up on old knowledge. Low level programming is not going away, but it might not be your main focus.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .