Experienced coder/designer moving into game development - what's involved?

Nathan Ridley
  • Experienced coder/designer moving into game development - what's involved? Nathan Ridley

    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.

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

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

Tags
c++ c#
Related questions and answers
  • . Also, I'm aware of the previous conversations on this site regarding Qt for SVG game development. I'm hoping to avoid Qt because of the size and complexity of making it a requirement. Also, Qt does not seem to have joystick input support, which would require that SDL or some other library also be used. So my question can be summed up as this: What is the best way to get SVG and joystick...I'm looking into building a cross-platform opensource 2D RPG style game engine for ChaiScript. I want to be able to do all of the graphics with SVG and need joystick input. I also need

  • people can play my game once finished). I'd like to have it available on many mobile platforms aswell. (because I love touch input for some reason) I do know the XNA framework pretty well... don't really need 3D. The editor usability is a little worse than Unity3D in my opinion and it wasn't clear to me how to start programming. I think it requires C++ for coding, so that's a negative too. I...# bindings get dropped repeatedly. I'm not an engine enthusiast, I just want to make a game. I don't see this happening with Irrlicht. Ogre3D. Way too much work, it's just a graphics engine. Also no multiple

  • with C/C#. Most important to me would be that I could lear stuff that I can use later on for example in other Frameworks. This is important to me because I want to get deep into one thing I... use. So far I gathered three possible Frameworks, I want to list here: XNA with the OX-engine: I already have some experience with XNA and the Ox-engine seems to be the best possible open source engine I could use here. OGRE-engine: Always wanted to get a little deeper into C++ and the engine seems to be well documented. Cryengine/Sandbox 2 or higher: Well this one also needs C++ knowledge, seems

  • as drawable and updatable and I get a stack of screens handling my battle graphics. While I haven't been able to get the screen manager to work perfectly yet, I think I can with some time. My...I've been working on a 2d RPG for awhile now, and I've come to realize I've made some bad design decisions. Theres a few things in particular that are causing me problems, so I was wondering what sort of designs other people used to overcome them, or would use. For a little background, I started working on it in my free time last summer. I was initially making the game in C#, but about 3 months

  • Say I develop a game for mobile platform running OpenGL ES 2.0. I have done 2D part, and now I wish to import some 3D objects. The imported 3D objects must contain the following: Vertices positions Normals UVs Texturing information Animation information Collision mesh Maybe some other things... I am aware, that I could and (maybe should) create my own file format that brings these data from..., that will let me import 3d meshes into my game, ready to use? The solution/middleware should be: easy to use easy to port efficient not consuming too much memory with unnecessary things containing all

  • this summer and I have a good grounding on the web side of things. I've also done some very basic c++ (what i would consider basic). My c++ skills basically comes down to different tutorials on things... I take and the language that I base my first decade of programming on. This is important to me so please do not dismiss it as another student who likes games and wants to code them. I'm a hungry young... would have the most insight. So just an introduction to myself and the problem. Basically Im in my final year of my degree and rather than do a thesis we do a final year project that has to be crisp

  • ... that's the latest my graphics card supports), but I'm having trouble getting set up. Here's some information about my development environment: Windows 7 64 bit Eclipse Helios CDT Mingw Toolchain C++ I've tried building SDL 1.3 and following this tutorial. This ended up being a pretty big pain and I gave up amid a stream of compile errors - I'd prefer to not go this route if possible. I know also that GLEW/GLEE or some do-it-yourself extension function pointers will be required. So basically: is it possible? If so, what is the best/easiest way to make it happen? Thanks!

  • experienced programmer who recommends that I take the C++ route to gaming, and that OpenGL and SDL would be a good way to go. He also recommended that I start using versioning control with my programs (Git...The short and sweet question I'm new to game programming in general, so how do I go about making GOOD QUALITY opensource games? What I have come across There are a multitude of games that I have played on Linux that are just downright shameful. The graphics are terrible, the AI is lacking, and the replayability is little to none. Don't get me wrong; I have played some good opensource games

  • intelligence, aggressivity, etc..) ..another assets.. Can I kindly ask for a hint, how to construct my custom file format. How to organize data within my files, please? Does anoybody have a good adivce on exporting animation information, especially when the mesh changes its geometry? I would be thankful for advices that could point me into right direction. It would be nice to save some time instead...After careful consideration to use middleware, I have decided on creating my own 3d file format format to export meshes from 3D authoring application (Softimage) into my game. I will need to export

Data information