Becoming a Game Programmer

Discussion in 'I wanna be a Game Programmer' started by Alphabat, May 17, 2009.

  1. Alphabat

    Alphabat Lurker Not From Round Here

    Hello all, I recently created a thread on the IGDA forums asking for some advice. Hoping to reach a bigger amount of people, I decided that I should post it here too to see what you guys think.

    The post was:

    I had a few things that I wanted some advice on about becoming a game programmer.

    You see, I am currently scheduled to graduate in December with a degree in game programming. However, I feel as though the program isn't really teaching me all the things that I need to become a game programmer. Not that I'd expect the school itself to teach me everything there is to learn, but even with hours and hours of extra work on the side it seems like I'm going to fall a bit short come graduation.

    I feel that if these times were a little less rough I could technically still land a job in the field, but there would be little room to grow because I missed a lot of foundation stuff from C.S. We spent so much time becoming familiar with the artist pipeline and taking modeling, texturing and rigging classes that we missed out on the nitty gritty programming concepts like low level memory management, compiler theory and advanced math.

    I mean, I have the desire to learn all of those things, and I've been doing it on the side since I began school but, I'm graduating in December and I feel like I'm not going to reach the level the industry expects in time.

    So I'm looking into Master's degrees and even going back for a B.S in CS because if I don't get a job I won't have a way to pay my loans. Returning to school would at least delay those payments and allow me to become qualified in this field.

    The real question I wanted to ask then, now that you know my background a little, was:

    ---------------------------------------------------------------
    What is the FASTEST way that I can qualify myself to become a game programmer?
    ---------------------------------------------------------------

    Please don't think that my question implies that I want to take any shortcuts. What I really want is to become independent and get off my parents' back, allowing them to go on with their lives without having to worry about me. The sooner this could happen, the happier I would be. Naturally, I still want to be a game programmer and they're willing to put up with me until I reach that goal.

    Let me know what you guys think. Sorry for the long read and thanks in advance for any help you may be able to provide.
     
  2. m_hael

    m_hael Professional Coffee Drinker One Of Us

    * Write & self publish your own game(s)
    * get an internship with a games company
    * apply direct to companies and accept a low starting salary for on the job training.
    * program all the time, keep a wiki on it and document your ideas (no matter how stupid) and how you filtered them before implementation.

    this is what i would do if i was attempting to land a job direct from uni these days.
     
  3. Alphabat

    Alphabat Lurker Not From Round Here

    Thank you for your reply m_hael. Do you think that a big factor is how the economy is going these days? I have pretty much been following that path you mentioned...

    * Write & self publish your own game(s)
    Aside from the internship, I have also been doing this. I always have a side project that I'm working on. And I'm always trying to learn new things. You can see just a few of these on my website at www.wilandrade.com and let me know what you think.

    * get an internship with a games company
    I am actually starting my 3rd internship next week. I spent 1 year on the first one (getting paid) and 8 months on the second working pro bono. Unfortunately, the first never released the project I worked on. And the second still has it under wraps so I don't have anything to show for the work I've done once I graduate. The professional experience however, I consider invaluable.

    * apply direct to companies and accept a low starting salary for on the job training.
    I am okay with low starting salaries, but the problem is that the companies that I've talked to (that would actually answer back) have been saying that they need people with skills/experience I don't currently possess. I'm sure that if I kept trying, that eventually once the times got better that I'd be able to land the job. But I fear that I won't have the money to pay my loans by then.

    * program all the time, keep a wiki on it and document your ideas (no matter how stupid) and how you filtered them before implementation.
    Like I said about the games, I truly believe I'm doing this, it just seems like I didn't get the necessary skills while I was in school and now I'm looking for a way to remedy that. The school basically turned me into a jack of all trades, and as hard as I tried, I haven't been able to get up to speed on all the skills that I need to learn.
     
  4. yaustar

    yaustar Industry Professional One Of Us

    Huh. OP, did you post on my blog (How I broke into the Games Inudstry)?

    I agree with m_hael and in addition, you can read up on the areas you missed being taught on.

    http://ocw.mit.edu/OcwWeb/web/home/home/index.htm

    Can you post a link to the course you took just to get a better idea on what know?
     
  5. Sairon

    Sairon Ossom One Of Us

    In my opinion your course of actions depends on what you want to focus on. Game programmer, as in gameplay programmer? If that's your goal then I would just focus all my energy into creating games and use a decent engine.

    I see that you've used Unity and XNA for the 2 games on your front page, while I haven't tried those games, and I'm sure your learned a lot, I would actually try to use something which has a higher chance of actually being used at the companies you're going to apply to. I don't know of any serious studios for example which uses XNA, and sadly ( rightfully or not ), XNA at least to me does send a lower quality vibe, ranking somewhere between a fully fledged C++ engine and game maker. Unity suffers from the same problem, hiding to much of the gritty details that matters for learning purposes.

    If you want to focus on rendering, physics, etc, then the most time efficient learning will probably be had from diving into one of those fields, and perhaps even skip the game part entirely in order to create some nice portfolio worthy material.
     
  6. Marc Vaughan

    Marc Vaughan Industry Professional One Of Us

    An alternative approach to getting into the games industry would be to get a position within a related industry which has a strong cross-over with gaming.

    For instance I started out my professional career writing Flight Simulators for pilots to train on (both 3d visuals and simulation engines).

    You'll learn a lot of the skills you might feel you need to be a games programmer and it would also allow you to enter the games industry in a bit higher than an entry level position once you step across into it.

    (the other advantage of the Flight Sim industry if you're young and single is that there are ample opportunities for travel if you're working within it, I got to travel all over the world during my 3 1/2 years doing that side of things - plus 'cos you're working with the airlines a lot of the time you get to travel in style which is kinda neat when you've just left student skintness :D)
     
  7. yaustar

    yaustar Industry Professional One Of Us

  8. Alphabat

    Alphabat Lurker Not From Round Here

    @Yaustar yes, I'm the same guy. I was kind of looking for help in as many places as possible. Thank you so much for your help so far. The curriculum to the program I'm finishing is (Sorry for the big URL)

    http://www.artinstitutes.edu/SANFRA...6&subdiscipline=&command=Programs&program=392

    I'll kind of restate what I said on your blog for everyone else; my program spent a lot of time with becoming familiar with the art pipeline.That involved taking modeling, texturing and rigging classes but we missed out on hardcore programming concepts like low level memory management, assembly, compiler theory and math/physics. As I've come to find out, the program would've been wonderful if I wanted to be a technical artist. However, I'm really happy programming and would like to stick to it.

    @Sairon I'm indeed interested in gameplay programming and I want to thank you for going through my website to let me know what I need to work on. I spent a lot of time on the side getting the professional experience that is so highly desired through my internships. There I have been using better, meatier tools in C++, but the problem is that one of the projects I worked on got canceled and the other is still under wraps. Making my portfolio a little bit lacking. Currently, I'm developing a ray tracer written completely from scratch using C++. It's been a great way to practice linear algebra and graphics knowledge. Next, I will follow your advice and build another game before I graduate. Do you have any suggestions on what engine to use? Or should I make it with just OpenGL or Direct3D? A little while ago, I posted here on these forums asking for advice about what I should use for my game projects. Someone recommended Torque, so I thought Unity would be a good substitute.

    Thanks again for all your help!
     
    Last edited: May 17, 2009
  9. Alphabat

    Alphabat Lurker Not From Round Here

    That's something I hadn't considered yet Marc, thanks for that advice. Something I just mentioned at the IGDA forums is that I am blessed to be able to work full time on getting that job and becoming qualified for it. A lot of other people would be forced to move on and get a job in a different field if it didn't work out right away. This fact is why I was mentioning academic degrees a lot since they would allow me to work on it full time if I didn't get the job out of school. Its good to know that there are other ways in which I can constantly get better at programming. The fact that it also pays is only but I minor bonus :)
     
  10. Sairon

    Sairon Ossom One Of Us

    The problem is there isn't really easily accessible high quality free and complete game engine that at least I know of. I see you've dabbled some with Ogre3D, if you're feeling familiar with that then you could probably roll your own in a fairly short amount of time, depending a bit on your level of experience. A good combo in my opinion is Ogre3D, wWise, OIS and PhysX/Havok. Some of those comes with attached licenses, but that shouldn't be a problem unless you want to actually start making $$$ out of the games. Ogre3D have a huge community from which you can learn and get started, Havok is probably preferable now that it's easy to get a hold of. wWise is easily integrated and getting started with.

    This naturally means you have to invest some time up front, the plus side is that your experience with particularly Havok and wWise ( out of those picks ) would most likely make you more employable.

    I'd stay away from Torque, but that's just me :p
     
  11. Alphabat

    Alphabat Lurker Not From Round Here

    I experienced Torque in my first internship (they made casual games) and I'd like to keep away from it, at least for now :)

    I used Ogre before, but the shortcomings of it is that its not really an engine as much as its a wrapper around OpenGL and Direct3D. To really make a game I would need things like a level editor and other important tools. I could definitely roll my own for those too, but I'll only have so much time between now and December when I'm done. What with all my classes and the internship. You guys definitely have it easy in the industry. :) I see so many people complaining about overtime. Just try being a game student! You work as many hours as you would in the industry (unpaid... in fact, you spend money), plus you do things on the side because you're afraid as hell that you might not get a job once you're done :p

    I'm not sure what you meant by OIS, I don't know any tools that are called that. However, those other tools gave me a few good ideas on a project that I could do that would be within my time limit and skill level.
     
  12. Sairon

    Sairon Ossom One Of Us

    There's Ogre exporters for the major 3D packages, and there's scene formats and scene exporters as well. I only have experience with their maya pipeline here, and even if the Ogre plugin is a bit shoddy, it's quite quick to get a scene exported with some custom meta data. Using that method one can use maya as a level editor. Another option is to roll an easy format and create an in game editor, although that will take a tad longer. A lot of games don't really need a editor, especially if you're going at it alone, then a simple xml based format can be used and manually edited as long as the scenes doesn't become to large.

    http://en.wikipedia.org/wiki/Object_Oriented_Input_System , although if you're going windows then of course one can use xinput or direct input I guess.
     
    Last edited: May 17, 2009
  13. Alphabat

    Alphabat Lurker Not From Round Here

    Thanks a lot Sairon, I'll look into it.
     
  14. Brian Beuken

    Brian Beuken Boring Old Fart One Of Us


    good grief.....a relevent spam bot!!!
     
    Last edited by a moderator: Aug 3, 2009
  15. biswa1983

    biswa1983 Lurker Not From Round Here

    You can use Irrlicht engine and bullet physics for your game. Both the engines are really good.