Question about being getting into game programming

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Question about being getting into game programming

      Hey folks,

      I finally made it and registered here. In the past I just read some posts here occasionally, but now I may or may not have some questions for you. Since I know that some of you guys work in the gaming industry on AAA game productions I want to ask especially those of you some questions and hope you can answer me them. Not knowing if someone else ever came up with the same questions as I.

      First of all I want to give you some introduction I'm currently living in Germany and am about to turn 22. I'm studying computer science at an university (not a "real" university don't know if there is any word for it in english... its more oriented on practical training than theoretical topics).

      Ever since I began playing around with the first computer I dreamed of creating my own games or at least being part of the process of creating a game. I guess like nearly everyone else on this bulletin board, too. Thus I looked around what I needed to do in order to fulfill my dream. At some time I had to choose between the path of an artist or of a programmer. I picked the second path since I already was envolved in creating websites and started learning php (which doesn't mean I am not interested in photoshop and 3D software such as maya, z brush and so on)

      My questions is how did you guys get into the gaming industry with no experience of game coding because all those developers have such tremendously high expectations that I can't imagine how I can meet those critieria. How can I obtain five years of professional game developing experience if I can't even get into the industry? Another point is the fact that I am living in Germany and the game industry here is rather weak besides Crytek and two or three other AAA developers. My current plan is as follows I hope to get into some some work experience during my studies at maybe Ubisoft. They are located about thirty minutes with the train from my location and are the guys, who developed Settlers if anyone of you know the games, but as mentioned above the only real AAA developers are Ubisoft, Crytek and those who are currently developing Risen 2 and I can't relocate to the United States just so. So how did you guys get into the business?

      Another questions is about the daily jobs you are facing I mean I started programming with php since I found C++ very frustrating as a beginner and never really got into it till now. So I stayed a long time on the web software road (I guess) and learned alot about OOP and stuff till I found the really exciting XNA Framework. XNA was my first real start into game programming from there on I started playing around in 2D (created my own little RPG Framework and Level Editor but never finished stuff) but still hated C++. Six months ago I started a project with a good friend of mine and started getting into 3D Stuff. We wanted to create some kind of space shooter and looked for some 3D Artists and 2D Artists but it failed because it seems that I can't count on the most people out there. Now I'm alot smarter and I wouldn't start another project with people I don't really know.

      We are currently developing a little compendium of games for metro on basis of c# afterwards we plan to develop a 2D Jump'n'Run in C++ and DX 11. This is my plan to finally get into C++ programming, but this is a bit off topic now I just wanted to give you a bit context. Back to the question: I mean I can imagine what you guys need to do but I haven't got any problem solving problems on my own. The only time I ever asked something on any forum out there was about three weeks ago or so since there is nearly now good resource available about Windows 8 and Metro Applications, but I always need some starting point where I can get information from. Example: I wouldn't come up with any AI algorithm for complex behavior of FPS NPCs or so. Even if I would find resources about how the algorithm works it would be far easier for me to work through existing code and adapt it into my program. Afterwards when I fully understood what I did there I can easily expand my knowledge and come up with my own ideas but as mentioned before I need some kind of starting point. How is this treated in the gaming industry I know that there is a team of programmers and I would always be able to come up and ask another person who might have some other idea but I just want to know how the workflow works for you guys.

      Another short background information I'm programming for eleven years now and it is very easy for myself to get into another programming language as though I still have alot questions about c++ ;P, but I guess I'll be able to answer these myself by just developing. I haven't got any problem going into the united states and won't have any issues with the english language since I was raised in english and german, but still have no real clue how a programmer's job in the gaming industry differs from one at where I would be programming some sort of desktop software I mean from the level of complexity.

      I hope you guys can answer me some questions and thanks for reading through all this stuff :)

      Best regards
      Gavin
    • RE: Question about being getting into game programming

      Originally posted by gbarnes
      I finally made it and registered here. In the past I just read some posts here occasionally, but now I may or may not have some questions for you. Since I know that some of you guys work in the gaming industry on AAA game productions I want to ask especially those of you some questions and hope you can answer me them. Not knowing if someone else ever came up with the same questions as I.

      Hi Gavin, welcome to the boards! I'm happy to answer any questions you have. :)


      First of all I want to give you some introduction I'm currently living in Germany and am about to turn 22. I'm studying computer science at an university (not a "real" university don't know if there is any word for it in english... its more oriented on practical training than theoretical topics).

      Sounds like what we call Trade Schools, though perhaps more in-depth. Most trade schools here only last a couple years the most.

      I'll give you a brief introduction as well. My name is Rez and I'm the lead AI programmer on The Sims at EA. I've been in the games industry for about 7 years as an engineer and about a year or so in QA & tech support, with a few years in-between at non-game companies (those are the dark years). I'm also the co-author of the book you're reading, along with Mr. Mike. I've worked at Maxis, Microprose, Super-Ego Games, Planet Moon, Slipgate, PlayFirst, and EA. I've worked on kids games, adventure games, platformers, an MMO, casual games, and simulation games, with a bit of RPG on the side. As far as platforms, I've worked on PC, PS3, iPhone, DS, and Wii. The last game I shipped was The Sims Medieval and the Pirates & Nobles expansion for it. The project I'm working on now hasn't been announced so I can't say much about it. I've worked on teams as small as two people (just me and an artist) and as large as over 200 people (like the project I'm on now). I've led teams of engineers, spoken at the Game Developer's Conference half a dozen times, and regularly do talks with schools about this very subject.


      My questions is how did you guys get into the gaming industry with no experience of game coding because all those developers have such tremendously high expectations that I can't imagine how I can meet those critieria. How can I obtain five years of professional game developing experience if I can't even get into the industry? Another point is the fact that I am living in Germany and the game industry here is rather weak besides Crytek and two or three other AAA developers. My current plan is as follows I hope to get into some some work experience during my studies at maybe Ubisoft. They are located about thirty minutes with the train from my location and are the guys, who developed Settlers if anyone of you know the games, but as mentioned above the only real AAA developers are Ubisoft, Crytek and those who are currently developing Risen 2 and I can't relocate to the United States just so. So how did you guys get into the business?

      I work at EA and do a lot of talks for people just like you. They're college kids who want to know how to break through that paradox of needing games experience before anyone will hire them. The answer is simple: you make games. Sit down and write five different games. Don't half-ass it either, make sure you actually complete the game. It should have interesting and fun gameplay, a UI or HUD, AI if that's appropriate to the game, etc. It can be programmer art if necessary, but it should be a complete game. When you send your resume (or CV as I believe you call it over there) to companies, make sure you include links to your games. People doing the interviewing will almost always play them (I always do before the interview). They may even ask you questions about it (I always do). How did you write the jump mechanic? How did you render the terrain? How did you implement the enemy AI? Are the animations based on a skeleton? This gives you a context in which to communicate.

      I broke into the games industry by coming through QA. I did QA (game testing) for Sim City 3000 back in 1998. Later, I moved to Microprose and actually started to carve out a design/production path for myself on Master of Magic 2. I remember when they were going to cut diplomacy and I managed to convince them otherwise. :) After that, I was out of the industry for a while working more boring jobs in IT. You see, I'm a self-taught programmer. My degree is computer/electronics technology, not computer science. I had to taught myself C++, and some x86 Assembly Language because I wanted to make games. It was a lot of fun, but it left some major gaps in my knowledge. I couldn't tell you how to balance a binary search tree or what a race condition was. So while I was working these sad jobs that I hated, I spent all my free time forcing myself to learn and fill these gaps.

      I remember back in late 2004 & early 2005 I was SO frustrated with my life. I hated it. My relationship was failing, I hated my job, and I had no motivation to even get out of bed. I was wandering around on some job sites and I found a position for a game programmer at a company called Super-Ego Games. I send them my resume, mostly out of anger and frustration. I was shocked when they replied and sent me a programming test. I took the test and they called me in for an interview. The interview went pretty and a week later I had a job offer for a very low salary. They needed someone to automate their build system (which was my job at the time) and said that I could jump into game code if I proved myself. Within two weeks, I was adding features in the AI systems.

      I found out later that I was one of three people they hired in that round, and that there were about 30 people competing. Why did they choose some kid with no experience and no degree? The reason is two-fold: I had passion, and I had Farmer Bill's Almond Farm.

      Farmer Bill's Almond Farm is the first game I ever wrote. I made it back in 1997 for DOS. It was about 5500 lines of C++ & assembly and is extremely crude. It plays like the old Sierra adventure games before the point & click interface (although there's no text parsing). They played that game and were impressed by the fact that I could make something on my own from beginning to end. I showed promise.

      By the way, Bo Lasater, the guy who wrote my forward in the book, was the Head of Studio. He tells the story of how and why they hired me. ;) I was there for a little over two years, shipped one game and almost shipped another. Once you've been employed for a year or two and shipped a reasonably large game, you get your unspoken membership card. I haven't had much trouble finding work since then.

      Regarding your location, you might be a bit stuck. As you said, there aren't a lot of AAA game studios in Germany. If you're ok with moving outside of Germany, you'll find a number of studios in the UK. Lionhead, Media Molecule, and many others are located out there. Part of finding a game job is having to move to where the jobs are. I'm not sure what your situation is, but moving might be unavoidable at some point.


      Another questions is about the daily jobs you are facing I mean I started programming with php since I found C++ very frustrating as a beginner and never really got into it till now. So I stayed a long time on the web software road (I guess) and learned alot about OOP and stuff till I found the really exciting XNA Framework. XNA was my first real start into game programming from there on I started playing around in 2D (created my own little RPG Framework and Level Editor but never finished stuff) but still hated C++. Six months ago I started a project with a good friend of mine and started getting into 3D Stuff. We wanted to create some kind of space shooter and looked for some 3D Artists and 2D Artists but it failed because it seems that I can't count on the most people out there. Now I'm alot smarter and I wouldn't start another project with people I don't really know.

      I'm not sure how to answer that. Every day is different. If you're playing around with XNA, I think that's a great starting point. XNA is a wonderful framework. Keep in mind that you really do have to learn C++. C++ is the dialect of the games industry. If you don't know C++, you're pretty much screwed. Even if you're not using it every day, you need to understand the things C++ forces you to learn, like memory management and hardware interfacing.


      How is this treated in the gaming industry I know that there is a team of programmers and I would always be able to come up and ask another person who might have some other idea but I just want to know how the workflow works for you guys.

      At most companies, engineers are in constant communication. Junior engineers are mentored by more senior engineers and even senior engineers talk to others about designs and architecture. For example, I complete rewrote all the math behind the utility function used in the AI system for The Sims. I worked it all out, wrote it out on my whiteboard, and then called over two or three engineers and walked them through it. One of them pointed out something I hadn't considered and I changed my scheme to account for it. This sort of thing is very common. Even engineers with 15+ years of experience will often write a technical design doc and post it for other people to read and critique. This is very important because, in the end, it's a group effort.

      Another example, whenever we want to check something into our source control, we get code reviews. The reviewer goes through the diff on each file and comments on the changes. This keeps our code base consistent and catches those little mistakes people tend to make.

      Feel free to post any other questions that come up. We're a friendly group. :)

      -Rez
    • Hey Rez,

      foremost I want to thank you for this great and very long answer. It really inspires me to keep up and follow my path.

      Don't get me wrong I would love to move away from Germany to the U.S. or to the UK (since I have relatives in Nothern Ireland).
      Just to clarify some things do you really have that much overtime? I know that its very common in the advertising industry as I've worked there a very long time. I mean I've no problem working longer than the average of 8 - 9 hours but you don't need to work at weekends right or at least not every one? ;P (its a silly question but you can hear alot about the harsh condition within the gaming industry).

      Howsoever I guess I'll just start making some games on my own or with two - three friends and follow your advice.

      For the future would you recommend working alot with the new metro ui stuff in connection with dx or opengl or would you recommend me to stay with the traditional win32 stuff? I now there is another thread about this topic but I guess you would have better insights about how the industry is moving into this subject as though there is still plenty of time for me as I will not be finished studying until 2014 thus the focus on those subjects might still shift around a bit.

      Thanks in advance for your time :)

      The post was edited 2 times, last by gbarnes ().

    • Hi Gavin,

      I feel like i'm in the same situation as you. I graduated with a BS in Computer Science in 2010 and got an internship at the IS department of a major Nuclear Plant, which then translated into a full time position. While my situation is actually really good; I have an above average salary for entry level software engineer positions, and the cost of living is so low here that I actually bought a house because it was way cheaper than renting. However, I find more and more that I don't really enjoy my job, and that I need a change. Do you know anything about Business inteligence? Talk about a snooze fest...

      I've been looking at job postings for game programming positions on Gamasutra.com, and it seems like they all want someone with 3-5 years experience on 1 or more shipped titles. I have to admit, its a bit frustrating seeing that and knowing that the only way I can get there is if I basically give up all my free time outside of work and devote myself to making an indie game. But then again, i'm basically doing that already since I geek around with the GCC code :D

      That being said, I have been seeing a glimmer of hope recently. I've been considering applying for the internship program at ArenaNet. Which is funny, because it would be a pretty sever demotion at $14 / hr with no benefits. But the experience would be invaluable. There's also the occasional Junior level position that I see pop up, which i'm sure are all highly contested.

      Anyway, good luck. I hope you succeed in finding that dream job. :D
    • Good to see somone is in the same position as I am ;) That's exactly what I am talking about all those job positions expect that you already shipped a game. How would one manage that if he can't even get into the business? Many of them even expect that you have shipped an AAA title.

      Besides have a look at Naughty Dog's job offers those seem to be very kind with their prerequisites. (the sentence sounds odd to me ? can I say it like that :D?) naughtydog.com/site/careers/gameplay_programmer1/

      WA = Washington right? The state in which ArenaNet is located isn't it? Wondering that houses are that cheap because here in Germany houses are very expensive at the moment. ^^

      Btw. I'm looking forward to play Guild Wars 2 ;)

      The post was edited 3 times, last by gbarnes ().

    • Yep, i'm in Washington. Its amazing how much the housing market differs just between cities. I'm on the east side of the state, while ArenaNet is in the Seattle area on the west side of the state. It would not be a huge transition to move over there, but the cost of living is so much higher. I would have to downgrade to an apartment, and possibly get a roommate.

      Besides have a look at Naughty Dog's job offers those seem to be very kind with their prerequisites. (the sentence sounds odd to me ? can I say it like that ?) naughtydog.com/site/careers/gameplay_programmer1/


      Those requirements do seem better, but I think it is just how it is worded. For instance, I don't know how you would have Playstation 3 development experience without having worked on a AAA PS3 title. Although, I guess you could always hack your PS3 and work on homebrews, but that is probably not the experience they are looking for.

      Although, Sony did just release their Playstation Suite SDK, but it only lets you develop for Android devices and the PS Vita. gamasutra.com/view/news/168822…ailable_to_the_public.php

      I'm also looking forward to Guild Wars 2, I have my copy pre-ordered! 8)

    • foremost I want to thank you for this great and very long answer. It really inspires me to keep up and follow my path.

      No worries. :) I try to be the resource I wish I had back when I was in your place.


      Don't get me wrong I would love to move away from Germany to the U.S. or to the UK (since I have relatives in Nothern Ireland).

      Work visas can be hard to deal with. I don't know the details, but I know it ends up being very limiting because most companies aren't willing to deal with the hassle of a work visa on a junior engineer when they have literally hundreds of local juniors to choose from. Your best bet is to either move somewhere else first, or try to land a job locally.


      Just to clarify some things do you really have that much overtime? I know that its very common in the advertising industry as I've worked there a very long time. I mean I've no problem working longer than the average of 8 - 9 hours but you don't need to work at weekends right or at least not every one? ;P (its a silly question but you can hear alot about the harsh condition within the gaming industry).

      Every company is different, but crunch is an expected part of life in the games industry. We're not the only ones; ask a doctor in his residency or a lawyer preparing to go to trial if they work late hours. I've pulled over 100 hours in a single week (there are only 160 total) and I know Mike has done the same. There were many times while working on this book that I was up late enough to see the sun rise.

      When I was at Planet Moon, 10 - 12 hours was average. The really late nights were 18+, which could go on for weeks. At PlayFirst, I routinely worked 14 - 18 hours almost every day. Here at EA, it's much better. There were a few 14+ hour days when shipping The Sims Medieval, but it's mostly been reasonable. This week pulled a 13 hour day to get this Situations system in, but that was only one day.

      There are two kinds of crunch that you get. The first is self-imposed. No one asked me to work late last Monday, I did it because I believe in the project and I wanted to get this system done. I could have cut corners but I refused and pushed forward. Making games is something I've always done in my spare time. I love my job, so working late isn't really an issue. Sometimes it's the thing I want to be doing most in the world.

      The other kind of crunch is the Death March. This is when a producer says "we're in crunch" and you have mandatory 12 hour days plus weekends. Sometimes this lasts for 6 months or more. A big part of why I left PlayFirst is because of the death march. I believe strongly that the enforced death march only hinders the project and ends up slowing everything down. You introduce more bugs because you're not at your best and morale tends to take a nose-dive. Any experienced game developer can tell you their war stories.

      We all have our ways of dealing with crunch. The lead engineer at Super-Ego Games literally lived in the office for a week to get a build out. He brought camping supplies and just camped out at his desk. I slept on a stuffed alligator in the server room once. Personally, I handle crunch in two ways. First, I take a decently long dinner break. If I can, I actually go home and cook something delicious. Crunch food makes me feel awful, so I make sure to get something I like. Second, I never sleep at the office. If I lose an extra hour of sleep each day, that's fine. I would rather get 4 hours of sleep in my comfortable bed than 6 hours of sleep on a couch. Third, I don't work weekends. There have been a few exceptions, but I fight for my weekends as much as humanly possible. Sometimes it means working 18 hours a day instead of 14 or 16, but if I get my weekends to recover, my stamina improves.

      One last thing: As a junior engineer, I would expect to work later hours than the seniors. You are easily replaceable so you need to stand out. You'll be given tasks that fill your day, but the people who are promoted are the ones that go above & beyond. Like any other job, you have to pay your dues. As a senior engineer, EA wants to keep me happy. They are paying me for my years of experience and if I'm unhappy, I'll start replying to the recruiters who email me daily (literally) asking me to come work for them. That's not to say that I don't work insane hours at times, just that I don't work insane hours in an effort to prove myself.


      For the future would you recommend working alot with the new metro ui stuff in connection with dx or opengl or would you recommend me to stay with the traditional win32 stuff?

      If you're interested in it, go for it. It's not something you'd really do in the industry, at least not yet, but working with new technologies is something we do all the time. If your goal is to play with new technology, I'd say go for it. You wouldn't be wasting your time. If your goal is to learn a skill that will be useful to your job, it's not as good.


      I have to admit, its a bit frustrating seeing that and knowing that the only way I can get there is if I basically give up all my free time outside of work and devote myself to making an indie game. But then again, i'm basically doing that already since I geek around with the GCC code

      That's exactly right. You have to prove that you are willing to give up your life in service to the Art. When you work as a professional, you will be asked to do this from time to time. When the game I'm working on gets close to ship, I will say goodbye to my friends and family and enter the world of crunch. My posts to this board will be more infrequent and come later and later at night. I will live only to work, sometimes eat, and barely sleep.

      We work hard, but we also play hard. I'm leaving two hours early today to go to an improv acting class I'm taking. I'm not going to make up those two hours because I don't need to. Who cares? I get my work done. EA doesn't care if I take off early every now and then as long as my stuff is done on time. Every other Friday I run a table-top RPG game for a bunch of co-workers. It starts in the afternoon. Again, it doesn't matter as long as I get my stuff done. Sometimes I play Left-4-Dead 2 with my friend during lunch. The games industry isn't all grueling crunch and terrible food. The perks are great. And when you see your game sitting on a shelf (virtual or otherwise) for the first time, the sense of pride and accomplishment you feel will stay with you for a lifetime.

      The games industry is a paradox. You have to break through that in order to get your membership card. By the way, don't discount non-engineering roles. QA is a perfectly valid place for an engineer to start as it gives you the opportunity to prove yourself. Anything that gets you in the door is good.

      -Rez
    • I found out later that I was one of three people they hired in that round, and that there were about 30 people competing. Why did they choose some kid with no experience and no degree? The reason is two-fold: I had passion, and I had[BOLD] Farmer Bill's Almond Farm.[/BOLD]


      aHahaha I remember that.. xD haha I played it for alittle while it was quite funny xP

      It was ages ago... There was a thread where people were posting some of their early games.. and you posted that.. :)))

      I have a really bad memory when it comes to 'when' things happened.. it might not of been that long ago or it could have been several years ago, lol
    • Hello!

      My name is Andrey. I'm working as a web-developer now, and I really satisfied with my current job. But I always want to try myself in gamedev. This is like a boy's dream: "Wow! Computer games so cool! When I grow up I'll write my own game, and it will be the best game ever!". But now I have a wife and a daughter, and I have understood that big gamedev is not only fun and joy - this is hard work first of all. And I can't understand how you spend so much time at work. Yes, it could be interesting sometimes, and some deadlines happens, and so on... But you talk about it like this is normal situation, and I had a few questions about it:

      1. Does employer companies pay for this overtime?
      Of course, our countries has different laws. In Russia employer can't force an employee to work overtime without employee's agree. And employer can't fire employee if he did not agree. And overtime must be paid at double the rate.
      Everyone has the right to manage their personal time.

      2. What families of game developers think about that?
      One weekend per week may be not enough for building strong family relations, and for friends, and for hobbies (except gamdev).

      Some month ago my family moved to other city for 30 days, and I started to work by 12-14 hours per day at some important project. And when I finished it, I was completely exhausted. It needed whole week to recover.
      Of course, I read books, write programs and so on out of my job. But this is like hobby - nobody oblige me, I take no responsibility, and I can stop this activity if I need to do something more important (for example, if my daughter ask me to play with her).

      The post was edited 1 time, last by andjey ().

    • Crunch is a normal part of life for game developers, but it's not a constant part of life. Every company is different, but most companies don't ask you to crunch during most of the development of a game. There are late nights sprinkled here and there, but nothing that's not manageable. I worked a 40 hour week this week. Last week was the same. Next week will likely be the same. I probably average 2 - 5 late nights (10+ hours) per release (a release is 4 sprints, and a sprint is 3 weeks, so that's 2 - 5 late nights in a 12 week period). That's typical for production.

      When the game starts pushing towards alpha, those 10+ hour days start getting more common. That's when you get 80+ hour weeks and tend to come in on the weekends.

      Every person has their own limits. I know a lot of people who have left the industry because of the late nights. Finding a developer with 10+ years of experience is a rarity. Remember, it's not just games. Lawyers, doctors, actors, and any number of creative & professional fields demand long hours. Pushing to launch a game or tighten up the build for a demo or playtest is no different than a lawyer preparing for trial.

      The other thing you have to realize is that we all LOVE making games. It's our passion. Ask a painter if painting for 18 hours a day is hell? I've worked 12+ hour days before with absolutely no deadline; I did it because that's what I most wanted to do in the world. With this also comes an interesting power. I don't punch a clock. If I feel like leaving early or stopping to play an hour or so of some game, I can. As long as I meet my deadlines, no one cares how I spend my time. There's a level of trust there you don't get at a lot of other places.

      Some companies do expect constant crunch. I was at PlayFirst for about 7 months and probably crunched for 5 of them. And by crunch, I mean constant 14 - 18 hour days. It was rough. And guess what? They lost a lot of really good people (including me) because no one wants to work those kinds of hours. Now I work for EA where the crunch is very manageable.

      As for your specific questions:

      1) Not usually, no. Software engineers are salary, which means we get paid a flat rate regardless of hours worked. This means unpaid overtime. It also means that when I take a half day, I get paid for the full day. At EA, junior engineers are paid hourly so they do get overtime. I've never seen that at another company though.

      2) Depends on the family. Everyone manages it in their own way. One of my co-workers (he's married with two kids) comes in at like 7am (or earlier) and leaves by 5pm. If he needs to work later, he'll sign on from home. I think he stayed in the office past 6pm less than 10 times during the entire development of The Sims Medieval.

      When I was at Planet Moon, I lived with the girl I was dating at the time. She had an early schedule that caused her to go to bed by like 10pm. So I would work a normal 8 hour day, go home, eat and spend time with her, then I'd log on from home and work another 6 hours or so before bed. A lot of people I know do something similar; they go home in the evenings to spend time with their kids and then log on after they go to bed.

      A designer friend of mine used a trick whenever he interviewed at other companies. He would ask them if they had kids. If the leaders of the company had kids, they would understand things like baseball games, parent/teacher conferences, working from home because your kid is sick, etc. Remember what I said about flexibility? I leave a few hours early every Thursday to go to an improv class I'm taking. That could just as easily be a soccer game or anything else. When you ask someone to work 100 hours a week (which Mike and I have both done), you can't really tell them to work through their kid's school play.

      Personally, I handle crunch by utilizing my weekends. I refuse to work weekends. I'll work 18 days all week as long as it means I don't have to come in on Saturday or Sunday. In my whole career, I've only had to work a weekend on maybe half a dozen occasions. Having those two days is crucial for me.

      -Rez
    • Hello Rez!
      I too have some questions to ask to you...
      Some background info: I'm still a high school student, and have one more year before I finish high school, but I'm concerned about my education. In my country(Albania, don't know if you've heard of it) there are only computer engineering universities, no CS at all. So what should I do, shall I go for computer engineering?
      I like game programming. I have read more than half a dozen books on this subject, and GCC4 is on it's way, so I can actually learn game development on my own, don't need a school for that. But is it essential to have done some courses about this topic?
      Also, in my country, and in like all the neighbor countries, there are no game development studios at all, and maybe, there are just a dozen of ppl in my country who have knowledge of this topic(I've never actually met anyone who knew what directx was). So what can I do? How can I get into the industry?
      Thanks in advance!
      Mess with the Best - Die like the Rest
    • I'm just going to throw this in here, I learned programming on my own over just about a decade, I dropped out of high school in grade 10 and am now 21. I would likely be in university about now if I had stuck it out in school which was a dumb decision to quit.

      Guy's who come out of university or whatever know stuff I wouldn't even begin to understand, stuff like little endianess and the sort. But I have a firm understanding of the C/C++ language and a ton of other less complex languages. I encourage you go to university, but it is not a requirement, if you wish to work at a big game studio they may wan't to see a bachelor of science or something like that. But not all are going to likely need that, show them potential and they won't say no (Games you have worked on etc.)

      You could also decide to work on your own or with a small team, you can look at the numerous guy's, one is humble bundle, they make unique game's and sell them for a super low price called the 'humble bundle'. They have a counter saying they have sold 92,550. If they sell their bundle at 5$ alone they have made 462,750$ . In a world wide market, even if you make something cool and worth 5$ even, selling to 1000 people you'll still have 5000$ in your pocket (shouldn't be hard with 6.5 billion people or more).

      I would say however you will lack the large amount of professional resources such as a factory of artists, modelers, designers, etc. But you will have the ability to express yourself creatively by designing entire game concepts and implementing them, like the next Shiguro Myamato think thats his name.
      PC - Custom Built
      CPU: 3rd Gen. Intel i7 3770 3.4Ghz
      GPU: ATI Radeon HD 7959 3GB
      RAM: 16GB

      Laptop - Alienware M17x
      CPU: 3rd Gen. Intel i7 - Ivy Bridge
      GPU: NVIDIA GeForce GTX 660M - 2GB GDDR5
      RAM: 8GB Dual Channel DDR3 @ 1600mhz

      The post was edited 1 time, last by mholley519 ().


    • In my country(Albania, don't know if you've heard of it) there are only computer engineering universities, no CS at all. So what should I do, shall I go for computer engineering?

      Personally, as a potential employer, I wouldn't care. I would grill you on the programming concepts I think are important, like basic coding skills, data structures, software architecture, etc. Our lead gameplay engineer has a physics degree (I think). I know several great engineers with math degrees as well. I have an electronics degree. In the games industry, your degree isn't as important as your demonstrated knowledge. You need to build some demo games to prove to people like me that you have the chops to take something through to the end. That's the key. The degree certainly helps, but it's by no means required.


      I like game programming. I have read more than half a dozen books on this subject, and GCC4 is on it's way, so I can actually learn game development on my own, don't need a school for that. But is it essential to have done some courses about this topic?

      Nope. Most of my co-workers have never had any formal training in making games. You learn that stuff when you work for a company with a bunch of veterans. This is true for pretty much any industry.


      Also, in my country, and in like all the neighbor countries, there are no game development studios at all, and maybe, there are just a dozen of ppl in my country who have knowledge of this topic(I've never actually met anyone who knew what directx was). So what can I do? How can I get into the industry?

      This is where it gets really tricky. You basically have two options. The first is to join the indie game dev crowd and try your hand at making small indie games for mobile, facebook, Steam, XBLA, or something similar. This is a great way to build up your portfolio of games, but you won't make much money doing it; certainly not enough to support yourself. If you make something great it may catch on and let you fund your next project, but be prepared to hold down a full-time job while doing it.

      The second road is to work at a game studio, which will require you to move. I don't much about international work policies, but my understanding is that work visas are typically only granted for "experts in the field", i.e. working professionals. Meaning you have to be a professional game developer to get a work visa to another country making games. There's a bunch of red tape the company has to go through and most companies aren't willing to do it for a junior engineer. If you can find a way to move to another country where game development is present (the UK and US are two places with lots of studios; Canada has a few too and there's always Japan, though you may have to learn Japanese), that's your best bet.

      Mike may have more info since he's run studios and has likely had to deal with hiring people from other countries.

      -Rez
    • Originally posted by mholley519
      I'm just going to throw this in here, I learned programming on my own over just about a decade, I dropped out of high school in grade 10 and am now 21. I would likely be in university about now if I had stuck it out in school which was a dumb decision to quit.

      Honestly, it depends on what you do with it. I dropped out of high school when I was 16, took my GED, and went straight to college. I graduated college with a 2-year degree when I was 17. At the age of 21, you're still VERY young. You can easily get your GED (the test was trivially easy) and enroll in college.


      Guy's who come out of university or whatever know stuff I wouldn't even begin to understand, stuff like little endianess and the sort. But I have a firm understanding of the C/C++ language and a ton of other less complex languages. I encourage you go to university, but it is not a requirement, if you wish to work at a big game studio they may wan't to see a bachelor of science or something like that. But not all are going to likely need that, show them potential and they won't say no (Games you have worked on etc.)

      I've interviewed college grads who don't know the first thing about practical programming. They break down when you ask a trivial data structures question, like "when would you use an array over a linked list and vice-versa?". A degree does not necessarily mean the person is smart, it means they passed. I tend to ignore it, for the most part. You shouldn't go to school for a degree, you should to school to learn what they're teaching you. That having been said, it tends to help you get your first job. After that, it's all about work history.


      You could also decide to work on your own or with a small team, you can look at the numerous guy's, one is humble bundle, they make unique game's and sell them for a super low price called the 'humble bundle'. They have a counter saying they have sold 92,550. If they sell their bundle at 5$ alone they have made 462,750$ . In a world wide market, even if you make something cool and worth 5$ even, selling to 1000 people you'll still have 5000$ in your pocket (shouldn't be hard with 6.5 billion people or more).

      One problem with the indie market is that it's very saturated with crap right now. There are a LOT of really BAD games on the app store. There are so many that your really good game could easily get lost in the shuffle. It's a hard dance. Honestly, if you are passionate about making games, you'll find a way to do it. I make games in my spare time even though I work at EA because I love it. Ask yourself: if no one would ever play your game, would you still make them? If the answer is yes, then start making games. If the answer is no, you might want to think about your career direction a bit more.


      I would say however you will lack the large amount of professional resources such as a factory of artists, modelers, designers, etc. But you will have the ability to express yourself creatively by designing entire game concepts and implementing them, like the next Shiguro Myamato think thats his name.

      It's true, when you're an indie developer, you tend to have limited resources. You also have to do everything, which is a very useful thing. You'll learn about graphics, physics, AI, UI, etc. On a huge triple-A game, a junior engineer will not often get to do that. One nice thing for me working on a huge project is that I spend all day working on nothing by AI. AI is my passion. I personally don't like working on graphics or physics or UI, so it's nice to have my corner of the universe to play in.

      -Rez
    • I grew up alway's having a computer way behind it's time, so I love the classics, games like UFO Defence, Star Control 2, etc. I loved these games because it wasn't just another company trying to get me to buy their product but rather artists wanting me to experience the story and atmosphere of their creation. That's what has me inspired to make games I have a ton of idea's that I wan't to come to life some day.

      I have thought about university or college, and I am not sure. I am married with 2 young kids so I have a very hard road ahead of me if that is the way I wish to go. I have alway's been interested in joining the air force, and I may go that way and serve for 10 years or something, they will pay for my university tuition, and also give me a paycheck while attending school. One way or another, college or not, I am going to be a game programmer, I have over the past year broken out of just being a C++ programmer who has experience attempting to make a game, and have been going full tilt on a game engine based on the architecture discussed in this book.

      I technically already have 1 game...in a sense, I have a ball on a rolling platform where you press the 'c' button to drop crates, they will hopefully with the right timing stop the ball from rolling, not exactly a game that people would seek to play, but an interactive simulation with a goal to achieve. :D
      PC - Custom Built
      CPU: 3rd Gen. Intel i7 3770 3.4Ghz
      GPU: ATI Radeon HD 7959 3GB
      RAM: 16GB

      Laptop - Alienware M17x
      CPU: 3rd Gen. Intel i7 - Ivy Bridge
      GPU: NVIDIA GeForce GTX 660M - 2GB GDDR5
      RAM: 8GB Dual Channel DDR3 @ 1600mhz
    • Originally posted by mholley519
      I technically already have 1 game...in a sense, I have a ball on a rolling platform where you press the 'c' button to drop crates, they will hopefully with the right timing stop the ball from rolling, not exactly a game that people would seek to play, but an interactive simulation with a goal to achieve. :D

      It's a start. You should have seen my first game. ;)

      -Rez
    • Hey Rez!
      Thanks for your reply...HELPFUL as always ;)

      Btw, since we're talking about this kind of stuff, could you tell us how the work is organized in a large studio such as EA? How do you guys work? What compiler do you use? What software do you use? How is the work divided?

      Also, one thing,(if you don't wish to, dont answer :) )
      What can I expect from the salary? Can I earn myself a good living with that salary(like buy a house, a car, and live well)? Also, if you can say some exact digits, it would be helpful :)

      Thanks in advance!
      Mess with the Best - Die like the Rest
    • Originally posted by thedarkcoder
      Btw, since we're talking about this kind of stuff, could you tell us how the work is organized in a large studio such as EA? How do you guys work?

      Every company is different, and every studio within EA is different. EA is generally organized into large divisions, each reporting directly to John Riccitiello (CEO). These are VERY broad divisions. One of those divisions controls all game development across EA Worldwide, and there's a VP (called the VP of Labels, a term that will become apparent shortly) who is in charge of all of this. If you want a game green-lit, he's the guy who have the money and power to do it.

      This division is split into different "labels", each acting as an autonomous company. When EA buys a large company, they are often given their own label. Smaller companies are absorbed into other labels. For example, Bioware has their own label. I'm in the Maxis label. Under each label are one or more studios. Maxis has three or four studios. The one I'm in is at EA's headquarters in Redwood Shores and is called The Sims Studio. Each studio can have a number of projects going on. There are anywhere from 2 - 6 projects at any given studio, depending on the size, most are not announced.

      Each level of this hierarchy offers a different level of autonomy. Labels are treated like separate companies. In fact, if I wanted to transfer to another label, I'd have to interview just like anyone else. However, transferring projects within the same studio or even to another studio in the same label typically doesn't require any kind of interview.

      Each project is run differently, according to the whims of the producers and DD's (Development Directors; more on them below). We're typically split into groups by discipline and area of the game. There are engineers, artists, animators, audio, producers, DD's, QA, and probably a couple other groups I'm missing. Each group has its own hierarchy as well. As an example, let's break down engineering. There are two tech directors which are mostly interchangeable. Under them are the leads of each major engineering group. We have a Gameplay Lead, a Client lead, and a Systems lead. We may have more high-level leads for things like Create-A-Sim or Build/Buy, but I'm not sure. They may be under the client and system leads, respectively.

      I'm in the gameplay group and answer to the gameplay lead. He makes the high-level technical decisions for everything going on in gameplay engineering. Under him are leads for each major gameplay system. There's a lead for objects, one for socials, one for the low-level gameplay systems (lots, persistence, aging, etc), one for AI, and one for interactions. I'm the lead for AI. Each lead is in charge of their little world and is assigned other resources, typically more junior engineers (though not always; there's a senior engineer on my team at the moment).

      As the AI lead, my job is to get Sims to behave appropriately when left alone. They make reasonably intelligent decisions to do things like not starve. Part of the fun of The Sims is watching your Sims do whatever they want, so it has to look good. I also handle the stuff that ties it together, like relationships, special events (sims can throw a party), NPC generation, and more.

      Each feature, no matter how small, if given a producer as an owner as well as a designer who writes the design docs. An engineer who will likely do the work is assigned as well and the appropriate DD is also involved for scheduling. The producer's job is to make sure we all talk to each other and that it drives forward. He's also in charge of making the decision as to which features are more important than others, with the direction of senior production. When a feature is cut, you can thank a producer.

      Once the designer and engineer have agreed on the body of work, the engineer tasks it out, often validating with other engineers. The tasks are estimated and the producer works with the DD to fit it into the schedule. We use agile development, so we split development up into Releases, which are in turn split into 3 week sprints. Every day, we stand up at a board and move tasks around to show our progress and talk about any issues that have come up. It's a sync point for everyone who cares about the thing being worked on.

      Does that answer your question? I could go on, but I think I'll let that sink for now. ;) Feel free to ask any questions about it.


      What compiler do you use?

      Visual Studio 2010.


      What software do you use?

      Tons. It takes half a day just to install all the software for the dev environment. Many of the programs we use were written internally. We use VS 2010 as I said, and we use Eclipse with PyDev for Python (our scripting language for this project). The tuning tool used by the designers was built in-house.


      How is the work divided?

      Usually by having producers and DD's get together and see who's light on tasks. New systems are usually given to the person with the lightest load who is free. That person is assigned to one of the leads as well. For example, I own the Role System. I wrote the technical design doc and architected the system, but I didn't write any of the code. One of the engineers who was assigned to my team did. Other systems, such as the core AutonomyMode classes (the heart of the AI system) were built entirely by me.


      Also, one thing,(if you don't wish to, dont answer :) )
      What can I expect from the salary? Can I earn myself a good living with that salary(like buy a house, a car, and live well)? Also, if you can say some exact digits, it would be helpful :)

      Personally, I don't care about talking about salary or how much I make, but it's such a hush-hush subject in most companies that it's not something I'm willing to discuss on a public forum. If we were having beers at a GDC party, I'd probably tell you outright.

      I will say this: If your goal is money, don't join this industry. You can make at LEAST 20% more at a "regular" company, and often as much as 50% more. That having been said, I do make good money. I have a 2011 WRX that I bought new and live in a very sought-after area of Berkeley with zero room mates. I live quite comfortably. But then again, I'm also a relatively senior engineer. I make over twice what I made when I started out.

      -Rez