On Tue, 25 Nov 1997 01:19:23 GMT, mandr...@mindspring.com (David
Myers) wrote:
>Probably this thread has appeared before, but I didn't see it so here
>it goes:
>What makes a good game programming demo?
>In particular, I am working with DirectX 5.0 on Windows 95. I have a
>few ideas, but I am particularly interested in what the guys who make
>games for a living would put in their demos to get their first job in
>the games industry. I believe that showing 2D and 3D coding would be
>useful, as would some nice heuristics like shortest path, etc...
>I am also interested in what to do in order to get the demo seen. I
>know that a web page would be useful, as would replying to the "want
>ads". I also believe that going to CGDC might be useful. What else
>would you suggest?
Dave,
I applied sucessfully to JVC Digital Arts Studio two years ago as a
seventeen year old high school graduate w/no experience. Here are
some tips that you (and others) may find useful.
Making Contacts
CGDC is definitely a good bet, but not critical. I landed my first
job via e-mails and phone calls from the east coast without ever
coming to California. It is very helpful to have a friend in the
industry, however again it isn't critical. If you are talented, you
can get a job simply by sending demo discs to the HR departments of
every company you've ever heard of.
For your first job, I suggest contacting companies directly rather
than through a recruiting agency. These agencies can charge the
company as much as 10% of your starting salary up front for the
service. As a result, companies prefer direct correspondance with
applicants. Direct contact with a company will not guarantee you a
higher salary, however so don't expect it.
Also, if a recruiting agency contacts a company for you, you can no
longer apply to that company w/o reprecussions. For instance, if a
recruiter faxes resume to company, and the company calls the
programmer and tells them to contact the company directly, the
recruiter is out of the loop. To avoid this, recruiters make
companies sign papers before accepting resumes.
Demo Disc
A demo disc is critical for any kind of success without experience to
back it up. Here is the contents of my demo disk from Jan 1996. Note
that the technology is outdated, you should send more current stuff
that uses Win95 and DirectX.
*) DOOM clone demo w/texture mapped walls from scratch. This was
before all those books/articles came out on how to do it.
*) Side scroller demo w/3d platforms kinda like Skeleton Warriors for
Saturn/PSX.
*) Polished little puzzle game that I wrote in 48 hours to see if I
could do it.
*) Tile based overhead game demo.
*) Various misc programs/effect demos, utilities, etc.
Note that multiple demos aren't critical to success. I have a friend
applied at his first company and he got accepted based on a Lemmings
clone that he spent two weeks writing from scratch. However, it was a
pretty polished Lemmings clone.
However, if you're going to send multiple demos like I did,
organization is critical. If you can, make a CD with a HTML index
with links to and descriptions of everything. Also, try and include
an autorun.inf file (look at any autorun.inf - they're easy to make)
to automate the process of finding the index page. That way they
don't have to dig through a bunch of unorganized stuff trying to make
your demo work.
And make sure it does work. Test it on many platforms, not just your
development system. Try not to assume anything about the machine it
will be tested on like WinZip or DirectX 5. At least provide links to
their pages from the index page. These people get many demos and if
they don't work the first time, they generally don't get a second
chance unless you have a good resume to back it up (which I'm assuming
you don't).
A demo disk that works well and is well organized is almost as
important as impressive content. It shows that you are capable of and
willing to produce something at a professional level. When sending it
out, don't forget to label your CDs. Printable stick-on CD labels can
be purchased cheaply. Look in the yellow pages. However, simply
writing on them with a magic marker is fine. Just make sure to put
your name and the date you burned it, in case you have to send an
update. Provide installation/usage instructions in hardcopy with the
CD.
Resume
Try and do a nice resume in Microsoft Publisher or Microsoft Word.
There is nothing wrong with using a template/wizard. As most people
will tell you, keep it to two sides of a piece of paper max. The only
reason to use more than this is if you have tons of experience.
However, use large fonts and plenty of whitespace. I would rather
read a two page resume than get a headache from an 8pt font.
Make it as concise and professional as possible. Design it like you
would design a clean program, a logical layout will not go unnoticed.
When you send it out, print your resume on resume paper, it helps.
Don't be afraid to put non-computer related items on it such as
hobbies or sports. If there is something that you can think of -
anything - put it on. You will need to scrounge here for reasons to
be hired. Also, give references that aren't just schoolmates and
teachers. This would be a good time to use that friend in the game
industry.
Cover Letter
The cover letter is often one of the most important pieces of the
application. It is your forum to convince the reader to hire you
using whatever arguments you can concieve. However, too much
enthusiasm can work against you.
I'm going to post a particularly humorous cover letter I recieved a
few months ago as an example of what NOT to do.
<begin quoted text>
My name is (omitted) and I am writing to you to ask that you
consider me for employment in the game industry. I have recently
graduated and am looking to get started in a position in game
programming.
I have been involved with video games for as long as they have
been around. I believe that I have the ability to make great games
because I know what makes a game great and what doesn't. I have
witnessed the evolution of gaming from Atari to Commodore64 and so on.
If it's a video game I have probably played it.
I have excelled in my programming classes and have taken time
on my own to study 2d animation and some of the basics which are
available in books. There are no game programming classes available
in my area. I have also sent a copy of my editor and compiler which I
hope reflects my talents(see readme.txt).
I know I have an incredible amount to learn, but I believe if
I were given the tools to work with I could help create the best video
games in the world. Please examine my code and consider me for
employment. If anyone was meant to program games I believe it is me.
Sincerely,
(omitted)
<end quoted text>
If the first three paragraphs were perfect, the last one would still
have killed it. Please do not use sentences like "If anyone was meant
to program games I believe it is me." These get you laughed at.
However, the first three paragraphs have plenty of problems in
themselves.
*) The first pararaph is okay except for the marginal grammar. If you
are uncertain, have your English teacher look it over.
*) Just because you can tell when a game is great or when a game is
crappy, doesn't mean you can make them that way.
*) Another note, avoid words like "believe". Focus on what you can
do, not what you think you can do. Confidence will gain you respect.
*) I will be very surprised to learn that you were going to MIT when
Spacewar was first programmed. (The beginning of video games)
*) And please don't sum up the evolution of games as Atari, Commodore
64, and so on. Show that you are in fact aware of current events.
*) Don't pretend you have played every game ever created. This merely
proves that you have no idea what you are talking about.
*) Don't make excuses about your background (no programming classes).
*) The third paragraph is fine except for the excuse and a few minor
grammar issues.
*) I'm not going to go into the fourth paragraph. You should be able
to see by now what is wrong with it.
Anyway, to make matters worse for the applicant, the demo code was
some of the worst code formatting I have ever seen. Please don't send
something if it sucks. Work on it some more until it doesn't suck.
The last thing you want to make is a bad impression with your code,
the ultimate thing on which you are judged.
Sending it out
My technique for finding a companies was pretty simplistic. Go to a
game store, get the name and if possible web site of every company
with a game that looks cool, and add that to the list of companies you
already know of. Then call them up, one by one, get the Human
Resources department, and get an address to Fedex your demo and resume
to. Then wait for responses. If you did it right, expect at least
five or six calls within two to three weeks. However, my resume sat
around at JVC for over two months. This is not uncommon when a
company is not actively hiring.
Most hiring in the games industry happens when projects are finishing
and new projects are starting up. This is usually between September
right after Christmas, depending on whether or not the previous
project slipped its schedule. However, most large companies will jump
on a qualified applicant just about any time.
Interview
Assuming your resume is accepted and you land an interview, here are a
few tips aside from what your friends and books will tell you.
*) Don't worry about dressing up. Jeans and a T-shirt are fine.
Slacks and a shirt are better. A suit will only make you look
awkward, especially if you don't regularly wear them.
*) A laptop with your demos and a development environment installed is
always impressive, even if it isn't your laptop.
*) Don't be too overeager to impress, and don't try and compete with
your interviewer. This is often taken as a sign of a large ego, and
I deal with this a lot. However, if you do have something to say,
don't hold it back. Act like you thought you were being tested. =)
*) Be friendly and chat with your interviewer. Interviewers are
looking for an applicant that they'd like to work with.
*) Answer everything that relates to programming in as much detail as
possible. If you have an anecdote that relates to the question, share
it. This shows that you are confident in your knowledge of the
subject and have experience with it.
*) Consider buying a book of stupid interview questions. Even
Microsoft has been known to ask brain teasers at interviews. Prior
knowledge of the answers to some of the more common ones can't hurt.
Most qualified applicants that I have seen miss job opportunities did
so because they got nervous. I have watched many people with
excellent skills grossly underrepresent themselves at interviews. An
experienced interviewer will usually be able to see through this, but
it will hurt your impression. Fortunately, game programmers generally
make fairly unintimidating interviewers.
Salary/Benefits/Reality check
The one topic that's on every game programmers mind these days is
salary. I started at $40,000/yr. This is a good starting figure if
you think you have talent but no experience. You will usually be
asked at a second interview how much you want. Do not under any
circumstances turn in a low estimate. At worst, they will offer less
than you wanted assuming you didn't ask for something ludicrous and
didn't make an ass of yourself in the interview.
Experienced programmers generally make around $55k, Leads generally
$65k. However, there are exceptions. At my first interview I was
offered $24k. Unless you think that is what you are worth, do not
settle for it. I know Lead Programmers who make over $100k. All you
need is a hit title and you are suddenly a very hot franchise.
Never listen to tales of royalties. Noone gets royalties in video
games unless they are special. Before you even start thinking about
it, you are not special. Bonuses, however, can work as long as they
are agreed to in writing beforehand.
Never work for free or for promised money. A missed paycheck is a
sign to bail no matter what management says. There are too many
skilled people doing that right now, and they are being screwed badly.
Don't learn this the hard way and become bitter. Even large companies
go down and you need to see the warning signs and act.
On the other hand, don't listen to every head hunter that gets your
number. Most programmers experience constant badgering from other
companies. You can ALWAYS get more money at another company, but it's
rarely worth it. Anything less than two years at a company without a
good reason for leaving looks bad on a resume. Companies don't want
people that are going to quit after six months of work for a lousy
$3,000/yr raise.
When applying to small development houses, make sure you're getting
health insurance unless you are still covered by your parents. Also,
make sure you are getting the right benefits like Dental, Eyecare,
etc.
Don't expect to make any overtime wages. Almost all game programmers
work on salary and therefore are exempt from overtime pay. However,
most companies offer compensation time for worked weekends and
holidays.
Conclusion
When I started this article, I had no idea I was going to write this
much. I guess there just isn't that much information out there on
this kind of topic. It's almost like the game programming community
is divided into two distinct groups - people with jobs, and people
without jobs, and the two rarely mix. Weird. Anyway, if anyone wants
to put this on a web page or in a compilation, just let me know by
e-mail.
Good luck,
Wade Brainerd
Lead Programmer
JVC Digital Arts Studio, Inc.
>Dave Myers
>mandr
...@mindspring.com