Skip to main content
GameDev.net gamedev.net
🔒 Locked

Question a grizzled and not yet bitter veteran

Started by JeffLander Nov 7, 2005 at 7:44 PM 199 replies 85.7k views
Original Post
JeffLander
JeffLander
I am doing a recorded Q&A session with a friend about game development and the kinds of things people want to know. I would like to have some good questions and answers ready so I thought I would practice here and try to hand out some knowledge as well. About me, I have been professionally making games for over 10 years worked on all sorts of projects from good to bad. Run my own independent company, worked for the big publishers and the little guys. Programmed about every game console and computer system at one time or another. Current work mostly on console games PS2/Xbox etc. but love the PC still. While programming is my thing I know enough about art and design to be dangerous. So anyone have anything they want to know direct from a code jockey's mouth?
CRACK123
CRACK123
Hi,

I have worked in the game insustry in India and many seem to give less time for deadlines than little extra from what is required. Some claim that this is due to the fact that publishers and contractors will look away if you give a longer deadline. Is this really true and as an outsourced agent how would you handle a situation when you want to specify more time.

Secondly can you give me an example of how exactly would you calculate the time required based on an hypothetical game ?
The more applications I write, more I find out how less I know
silverphyre673
silverphyre673
I would like to know how lucky the people in the field consider themselves. Are you just the lucky few who made it through the job interviews relatively unscathed, leaving the other legions of people who spent hours a day programming outside the door? Or would you say you are one of the few who actually had enough dedication and a good enough portfolio to get a job? If so, during your formative years as a programmer, how much time, as a rough estimate, would you say you put into programming? What was your portfolio like for your first interview?

I'm 16, been programming from 3-4 hours a day, give or take, in C++ for that time. I feel like I'm learning pretty fast, and I would really love to be a professional game developer. Out of all the things I've done in my life (playing piano for 8 years comes to mind), programming is what I enjoy the most, and feel that I have the most talent at. What this boils down to is this: I'm a teenage insecure ameteur who wants to know his odds of landing a job in game development with the amount of work I've been putting into it.

Thanks!
my siteGenius is 1% inspiration and 99% perspiration
JDUK
JDUK
Question:
How stable are jobs in the industry? I've heard the odd story, here and there, about it being a pretty rocky road with no long tearm security... or are those days over thanks to the, ever blooming, state of the industry at present?
JDUK
JDUK
2nd Question:
As some one who can swing dramaticly between agonising for quite some time about optimising his code to getting really frustrated and saying "Blahhh, sod it, that'll do!" depending on the project at hand..... its of intrest to me as to what balance the industry normaly strikes between really good code and time to market.
Are people more likley to wait for your master peice or put up with your rushed work?

Idealy everyone would want great code, fast and cheap ... but that triangle deelee they showed us in software engineering does not like that!

you know the one that looks somthing like this:
           Great ProgramCheap Program         Quick time to market


Where by, if you have two you sacrifice the third.
So you could have good code, fast but it would cost the earth or Cheap code, fast but it would be crud or great code, cheap but it would take forever... so on and so forth.

So where does the industry balance?
I'm guessing any one of those configurations where Cheap or Fast is included with cheap being the priority?
JeffLander
JeffLander
Good questions everyone.

Crack:
Lowball bidding is common with local freelance and indies as well as offshore outsourcing. There are many people that are looking for the shortest time, lowest bid, etc. However, often those very same companies will be the ones burned when the lowball contractor they hired can't do the job. The best tack is to build a strong reputation for quality and reliability of work. Explain the reasons why you came up with your figures. And always hit your dates. Most people would rather someone who realistically hits the target rather than someone who promises something they can't deliver. You don't want those second type anyway. You may need to do some bargain deals to get started but once they see the quality and see you take deadlines serious, you should be doing well.

When I budget projects, I have people in mind for the tasks needed (1 lead programmer, 2 others, lead artist, etc.) I know how long they take for a given task roughly, I usually pad 10%-20% on individual time depending on the person. I then have a rate for them, plus overhead and such on a sheet. There is a lot of experience and feeling that goes into it but at the end it is just numbers in a spreadsheet that I work until it looks right to me and the project manager.

Silver:
I think most in the biz love what they do. Some days it isn't fun and games, it is just work. But most of the time I know I for one am very happy doing what I do. Challenging, creative, and rewarding. I would say I have been lucky but have worked hard to get where I am. I started at around your age playing with an Apple II working on character editors for Ultima which I would ziplock up and sell at the local computer store. From there it has been a long journey. I think for programmers it is easier to get in the door than some of the other jobs. You have a skill they need in large numbers and have a way to show that skill. I have always been into doing demos and sample programs (not full games mind you). Those are great because they show a good sample of skills and interests without getting bogged down in all the minor details of a game you wouldn't be doing on the project anyway. That is how I first starting getting gigs. Had a portfolio of sample stuff I was into. I picked cool stuff that interested me and was usefull for games and have been doing it ever since.

You sound like to me you have the right mindset and goals. I would put your chances at excellent for getting into the biz. Set reasonable expectations (you won't be a lead right away) and practice your skills. If you have local game companies ask them if they have summer interns. Never to early to start building contacts. Go to local IGDA meetings and talk to other developers about what they are looking for. Join up with a game mod crew and start messing with mods on a pro project. They didn't have that when I got started and it is just great for people learning. Just do cool stuff and have fun.

JDUK:
I personally have found it very stable. That may be just me but given the number of friends I have still in the biz, I don't think so. There is certainly some burnout and some companies are better than others. But there is a ton of work out there and I always tell people, if they aren't happy one place, move on. You have skills they need and you need to find a place where you mesh well with the team. Of the leaders I work with most are 10+ year vets and aren't showing signs of quitting yet. The biz keeps growing and growing so there are opportunities out there for a lot of people. It is also getting more and more critical that companies keep there good people so as the business matures you will see companies consider quality of life much more in the future.
JeffLander
JeffLander
JDUK Question #2:
I personally find the balance falls on someone who can accurately tell how long something will take and does it fast and flexibly with that restriction. Flexibility means the code has to adapt to the ever changing needs of the project and is clean enough that it works well with others. Some people keep strict code standards and put a priority on that or on fastest execution. That can be important if you are writing the low level most inner loop stuff, but for most applications, give me clean and flexible over fastest. I have seen people spend way to much time optimizing and complicating code that runs only once in a while and has no impact on frame rate. Sure it is fast but no one can use it. I personally don't get hung up on styles but on a team it is important to mostly go with the flow.

Particularly when teams are getting so much bigger, you get bonus points in my book for well thought out and commented code that does what it is supposed to.

But as I said, deadlines are king so whatever you do, it has to be done when you said it will be or you will not make me happy.
EmperiorRune
EmperiorRune
I never quite understood what can get me directly into the game programming field. I've seen alot of job openings for experienced/senior game programmers. How does someone new to game development get noticed without going all "I have a game company"? And.. what is the most effective way to get the skillset to be a "experienced" game programmer?
JeffLander
JeffLander
Emperior:

It is true the ads for jobs almost always say "senior programmer with 2+ next gen titles" blah blah. Of course that is what they want, less risk, known quantity. Truth is there is not nearly enough of those people to go around. That is why there is so much poaching from one company to another. There are almost always opportunities for skilled junior level people as well. The important thing is you have the skills. We recently had a "senior" level person come interview, they had done the character coding for a sports title and had no idea how to do simple matrix and orientation operations. They had just used their library.

If you are starting off, look for jobs like junior/tools programmer and gameplay scriptor. Once you work on a project as say a gameplay or level scriptor, you often will move right to core programmer.

Skillset depends on what your interests are. If it is graphics, animation, or physics, strong math skills are a must. Understand how a matrix and orientation reps relate, how to turn to a direction, stuff like that. For AI and other specialties it is different. I really like to see programming demos in your field of interest. I have seen things like an uber explosion simulator (a hyped up particle system) with lots of control slides for different effects. A fractal terrain system with erosion model was also pretty impressive because it went beyond what you normally see and showed an insight into the research and implementation abilities of the person. Game mods are also a great way to show those type of skills. As I said before, hook up with an artist friend and work on a game mod in the style you like. Give it a hook that shows some cool tech thing you are interested in. Devs love that stuff.
EmperiorRune
EmperiorRune
One more question if I may? When I look at game programming I see it as a process that includes one field. More research, particularly on this page seem to explain the different parts associated with game programming, and how people can specialize in specific types. My question, is how do you know what aspect of game programming suits you best? What if you want to try to be good at more than one area? Is there any particular Game Programming role that is overlooked, or highly needed? (Graphics programming for example?)
Gor435
Gor435
Hey Jeff, I am 21 and working on my associates of arts in computer science. I have been programming for years in basic and visual basic and have only within the last year or so decided that I wanted to be a game developer and learned C++. I knew for a long time I loved to program and loved games and I feel that becoming a game developer would be the perfect job for me. My problem is that I am a busy guy IE: I work full time, go to college full time and recently got married and my wife and I just had a perfectly healthy baby boy. So as I am sure you can tell it is hard for me to stay motivated and start or finish a project. Do you have any tips that may help me get the motivation I need?
Emmanuel Deloget
Emmanuel Deloget
The Jeff Lander? The one of "Physics on the Back of a Cocktail Napkin"? OMG. Gamedev.net will never cease to amaze me.

I have a question about the long-term future of game development. As of today, games are more and more expensive, mostly because they need more and more resources - better 3D models, textures, and so on. TES4:Oblivion, for example, has been in development for years, and the Oblivion team was just enormous (if it looks like the Morrowind team, then nearly 200 people worked on this game). The estimated cost of this game is probably along the line of "Way too much".

In ten years, today's graphics will be outdated. Models will be even more complex, and textures will be bigger (because the technology will support it). As a consequence, games will cost even more than now. But the cost of the game development can't increase continuously - because the price of a box can't increase at the same pace (who will want to pay US$200 for Quake 6?). As I see it, it seems that there is a problem - it seems that the industry is playing a snake-like game.

What are your thought about the long term evolutions of games, and more widely abou the evolution of the game industry?

Thanks for your time!

Damnation
Damnation
how hard is it to get into companies that have game departments?

the reason i ask is because i have spoken to a fair few game developers the ones who have made it, all have degrees.
whereas the others i speak to that don't have degrees, are stuck at home dreaming.

i live in the uk, i am out in the sticks, where i live there is a pub that is the last pub in britian and the first in wales. because the pub is on the border.
i was wondering do you have to be able to get to the office to be a programmer for a company, i see alot of companies that are from usa etc, but not so many in the uk, and none near by, and i don't drive. would that affect things?

i am a beginner although i have been programming for years. i started off in a scripting language, i then move onto c++, then to c. read books on both, but never did anything with them. i then turned to hla (high level assembly) then to fasm assembler. i couldn't find a place to sit and live basically, i only recently whilst cleaning my living room scaned through a few of my books and realised that my directx books started at beginner level, well atleast some of them, before i "thought" i needed a strong background in programming to start with directx or opengl.
with a programmer background, how long would you think it would take for somone to become a use in c++ and directx? i spend between 3-11 hours on a computer a day.

is math required, i mean advanced math for graphics. i barely and i mean barely remember my high-school math. i am tempted to aquire some books on math to get me up to speed, re-explaining the high-school stuff, then moving on.
right now looking for free books tho (anyone?) before i go into my bank account (money is tight got a baby on way so scraping money behind for taxis (costs me £30+ to get back from hospital))

thank you.


Everyone can learn from their mistakes, its the genius's who learn from the mistakes of others.
JeffLander
JeffLander
Emperior Q#2:
Programmers are a bit specialized but there is a lot of cross pollination. Typically most companies have two groups, the tech team that work on general engine related features (particularly if they do their own engine and cross platform). On that team you would have your low level graphics, specific console, physics, collision, networking type people. They support the gameplay team. The gameplay team includes the project lead or leads and the programmers doing the gameplay for a particular project. Gameplay people are usually not as specialized but have strong programming and perhaps AI skills. There are lots of variations of this but that is the basics. As for your skill, it depends on what you like and what you are good at. If writing really fast low level rendering code is your thing, tech team. If it is AI and game scripting, go for a gameplay role. Often the specialties are what get you in the door easier. It is much easier to find a guy who can do general gameplay but a collision/physics guru is much harder to find and easier to place.

Gor:
You have to be motivated to get anything you want. I know time can be tough but if you are unhappy doing what you are already doing, it is not going to get better on its own. I just suggest finding what your passion is an going for it regardless of what that is. My philosophy is set a goal and make sure you make one positive step a day to get towards that. If you want to be a game developer, line out the steps you need to take to get there and start. The steps don't have to be huge. Meet some local developers and talk to them. Take someone's demo and make a small change that makes it better. Stuff like that.

More later everyone....
AfroFire
AfroFire
Is your name truly Jeff Lander? You have a similar story as Garriott -- not to mention the fact that you mentioned Ultima, and zip-lock baggies.

Either way, what truly impresses game development companies when they hire a guy on?

And what's better? A few good solid programs, or a bunch of little programs that may be incomplete, but do what they were intended?
AfroFire | Brin"The only thing that interferes with my learning is my education."-Albert Einstein
pTymN
pTymN
I just got hired at NDL with a 2.5 gpa in computer science. I created a partly completed 2D physics engine, which demonstrated my ability to design and code. If you can stick with something long enough to complete it, then you can impress employers. And I definately consider myself lucky to be working in the games industry. I'm going to GDC 2006 on company time.. w00t!!!
 
JeffLander
JeffLander
Sorry for the delay. Out of town for a few days. So many good questions and nice comments, I will have to do this more often. Thanks everyone for taking the time and I will try to post more frequently on this board.

To answer these last questions:

Emmanuel: Thanks for reading the articles. I still plan on updating those with more content when I get some time and also write a whole bunch of new ones I haven't had time to get down on paper yet. For those who haven't read them most of my old Game Developer articles are on my website with source code at wwww.darwin3d.com/gamedev.htm. I also work on a conference called Game Tech and we have audio of some of those sessions up at www.game-tech.com. For your question, this is one that is making a lot of us think now. The teams are hard to manage as is and much bigger would be even worse. Also as you say, we can't work forever on these with unlimited money. Something has to happen. I think a few things will happen. You can look at the film industry which is a bit ahead of us in business maturity though we are catching up in every way. There is a lot of specialization there. They also do a lot of collaborative projects with multiple studios working on one title. You are seeing that already with multi-platform games having multiple teams involved. Some reuse of tech and things like game engines will help a lot as well. I think EA purchasing the Renderware engine is a sign of this happening. Also, I think we will finally see episodic games come about. The economics and consumer desires will drive it. In a way the current WOW type games do this already. Build the basic system, give some content then follow up with updated episodes with more content. It seems that this is really the way we need to at least start thinking.

Damnation: Unfortunately, location can often matter. It certainly helps to be near a lot of developers so you can see what they are doing and talk to them. The IGDA is very active in the UK so that may be a good resource. You certainly don't need to know graphics to get a code job in games. It can helps since many jobs are graphics/math related. But there are other jobs that are needed as well that can get you in a door. We have network coders, IT people, tools programmers who are strong at window UI design, etc. I would say figure out what you like doing and sharpen your skills in those areas. Then tailor it to spin toward what game companies are looking for. I think there is also a ton of free info on the web that can point you in the right direction. This forum is certainly a big help with pointers to articles and demos that I wish I had when I started. Math is helpful since it is the common language of games but not everyone is or needs to be an expert at it.

Afrofire: Truly my name. Thank the parent for that. Being even mentioned with RG is flattering. I think companies are impressed with a sharp person with good strong skills who knows what they want to do and can communicate it. That is probably true of all jobs. But it really depends on what you are going for. A lead with 5 titles that all sold millions and were rated 90+ would certainly impress but there are few of those. So you go in strong with what you have. I said it before that I don't need to see something totally polished. If it is, great but if you have a bunch of stuff that shows a variety of skills, do what you wanted them to, and most importantly, you thoroughly understand the programs and the techniques used, even better. For example, if you have a demo of some research you were doing and it shows how you approached the problem and the problems and solutions you encountered, that is pretty great.

pTymN: Great job. Sounds like you did it exactly right. The NDL guys are a really nice group. If you see me at GDC, say hi.
BloodshedDude
BloodshedDude
Wow. Terrific stuff. Thanks for your time Jeff. Your insights are a goldmine for a beginner like me.
pulpfist
pulpfist
Good thread =)

Should I use a tie on my first interview?
JDUK
JDUK
The use of libraries....

If you are studying in your spare time with a view to get into professional games programming are you better off doing all the programing for your graphics, sound, networking from the ground up. To show a deep understanding of the inner workings of such procedures.... Reinventing the wheel (so to speak) just to show that you can, with the downside being you wont have many finished projects due to working more on the "nitty-gritty" elements.

Or would you be better severed using libraries like SDL, DX, etc, etc and having a lot of finished projects in many different areas and techniques?

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.