Question a grizzled and not yet bitter veteran

Started by
199 comments, last by theStormWeaver 17 years ago
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?
Advertisement
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
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
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?
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?
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.
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.
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?
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.
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?)

This topic is closed to new replies.

Advertisement