BREAKING IN
PREPARING FOR YOUR CAREER IN GAMES
 
  CAREER PATHS DEVELOPER PROFILES RESOURCES 
  Profiles: audiodesignproductionprogrammingvisual artsbiz & misc.



Rafael Baptista


Rocket Power Dream Scheme


The Wild Thornberrys: Chimp Chase


Rafael Baptista
General Manager & Lead Programmer, Helixe Games

Current project:
Star Wars Adventure for Game Boy Advance (working title). As Lead Programmer I write the game engine and direct two other programmers. As general manager of Helixe, I also manage 3 game teams. In total our group is working on 3 games. I manage about 20 people, a combination of artists, game designers and programmers.


Academic Info

College: Hampshire College, Amherst MA
Degree: B.S. with a major in Linguistics

Were there any particular projects or areas of study that you pursued?

I studied how languages can be represented using formal logical systems. I used computers to represent these logical systems. I was interested in how people and machines understand language and represent information.

Did you do any internships?
No.


Career Info

Tell us about your first job in the industry. How did you get the job? What was it like? What were your responsibilities?
I had worked in the software industry for about 5 years. I was working on speech recognition, language understanding and genome mapping. This turned out to be a great background for doing sophisticated AI for computer games.

A friend of mine told me about a startup game company near where I lived called GameFx. I applied for a job there. When I went to see them they were just a small group of people in this really small ugly office above a restaurant. But they were all really talented, and the work they were doing was amazing. I was offered a job doing AI for their game.

I didn't have any computer game experience, but I did have a lot of software development experience. And I was able to convince them that I could use the techniques I had learned in language understanding and genome mapping to do a good AI. I also had a good AI background from college (searching, logic, neural nets etc.)

Given that I had lots of software experience I actually came into computer games at a fairly senior level. I was working on a major game system right from the first day. I was responsible for the AI and physics. This was a space sim called Sinistar Unleashed. It required AI to do flight planning for enemies, flocking, missile guidance, and the AI for a number of sophisiticated boss monsters.

It was pretty hard work. Writing computer games touches many more areas than the work I had done before. In my previous jobs I really had to focus on a small well defined problem set. In games I was doing physics simulation one day, flight controls another day, obstacle avoidance, skeletal animations etc.

My first job in software was QA for a speech recognizer. I have heard some people say that starting in QA is not good because you get pigeon-holed as a QA tester and no one takes you seriously after that. It is true at first, but just take the opportunity to learn as much as you can, and if you can't break out of QA in one company, you can always change companies.

What jobs have you held in the games industry thus far? Briefly describe the career path you took to get where you are today.
I started as an AI programmer for GameFX. Later that year GameFX was bought by THQ. About 18 months ago I started working on a game demo for Nintendo's Game Boy Advance. I showed it to THQ, and they liked it and asked me and a friend, Kurt Bickenbach, who was working on it with me, to start a game studio doing Game Boy Advance games. So we did. Since that time our studio has grown to be 20 people, and we have published two games.


Advice

What fields of study, specific courses, or life experiences would you recommend to students interested in your field?
If you want to break into computer games as a programmer then learn programming and math. For the big 3D games you need to know pretty sophisticated math. Start with linear algebra. You should be able to use vectors and matrices. If you want to do physics you will need to know some calculus also.

I remember in high school getting these word problems "if a rocket is traveling … ", and I would think to myself, "when am I ever going to need to know something like that?!". Well ten years later I really am trying to guide this simulated missile to hit a target. I wish I had paid better attention in class. Well of course I just went back to my old math books and relearned how to calculate those things.

You should also program as much as you can. I wrote a lot of software in high school and college. It was always a hobby for me. Today you need to know C and C++ programming. It also helps a lot if you can program in assembler.

You should also know about the theory of algorithms. How they scale, how to trade memory for time and visa-versa. You should know how to represent information in hash tables, graphs, trees, lists etc. Know the advantages of keeping data sorted. Know how to move computation around in an algorithm, for example taking expensive computations out of inner loops.

Is there anything you wish someone had told you before you got into the games industry? Is there anything you would have done differently?
I wish I had been more serious about programming and math earlier. I wasted a lot of time. Lets just say I had a lot of fun in high school and college. And I wasn't very focused. I would research a project for a few days and then drop it to start something else. I was well into my 20's before I was really able to stay focused on a project long enough to get something useful done. It's important to get the discipline to finish what you start. And you have to resist the urge to go pursue a new interesting idea before you are finished with your current project. Often you find that the most fun part of a programming project happens in the first few weeks when you are putting together whole new systems, and everything seems to progress very quickly. But if you want to have a finished game that is worth showing other people, or selling, you need to go through the hard work of finishing it. You have to track down thousands of details that you didn't think about clearly at the start of a project.

I also wish I had gotten a better math background in high school. I struggle with it all the time. Some of my friends are able to do all kinds of sophisticated computations all in their heads. I have to slog through it slowly on paper, and I make a lot of mistakes. If you learn math early you will be good at it for the rest of your life.

College is a great environment to do research. Once you leave college you will forever have to make a living. So you won't have the freedom to work on your own projects as much as you want to. In college you can usually figure out a way to turn your software or math projects into some kind of for-credit activity. I would look for a school that gives you the flexibility to do that. This is what I liked about Hampshire College.

Don't go into computer games to get rich. It's a hard business, and there are easier ways for programmers to make money. Pay scales are generally lower in games than they are for other software engineering. Get into it only if you love computer games. Writing computer games is very fun. Lots of people want to do it, so competition is fierce.

As games increase in complexity, what are the various kinds of jobs that you foresee development companies needing in the next five years?
Game developers will have to be better trained and more professional. It is getting less and less possible for people without the proper training to be successful game developers. Programmers will need to know not only basic programming and algorithms, but also large program architecture. The math required to be a good game programmer is also getting more sophisticated. The simulations happening inside modern computer games are very sophisticated mathematically.

Artists will need to know not only how to draw, but also how to represent data using sophisticated 3D programs like Maya. Artists need to know the capabilities of the game engines they are using. There are so many powerful techniques now that even the artists have to be pretty specialized. The basic drawing and painting skills will still be important, but now artists will also have to know how to make a skeleton, how to place control points on a face to make it talk believably, things like that.

Also as game players become more sophisticated consumers, their expectations rise. You need better writing, better game design ideas, better AI, and better graphics. This cliché is repeated all the time, but its very true, computer games are evolving very much the way movie-making did in the early part of the century. Movies used to be made by people who where basically amateurs. One person would do a whole bunch of different jobs, doing moderately well at all of them. Today you have experts each doing what they are highly trained to do. Game development is evolving that way too.

I wouldn't worry about specializing too early. Get the basic math, algorithms and programming skills down. Or, get your drawing skills perfected if you are an artist. You can specialize later, when you are in the industry.

Do you have any other advice or recommendations to share with students who are interested in doing what you do?
Get serious about your career. Decide what you are going to do and get to work right away building the required skills. Write computer programs as often as you can. A good idea is to get on the Iinternet, and go to a video game fan site and try to hook up with other people who want to make a game. Start by writing a mod for an existing game. Or, try writing graphics demos.

Learning to work with others is very important. Different people bring different knowledge and skills. So try to put together a small group that will work on a project. Choose a small project. It's better to work 3 months on a small project and finish it, than to work on a long project for 2 years and not finish. Learning how to finish something is important, and it's a different skill than just learning how to do the fun initial part.

If you want to be a game artist, go to the mall or a café, every day, and sketch people. That's what most of the really good game artists I know did to learn to draw, and most of them still do it.

If you want to be a game programmer get the following books:

The C Programming Language, Brian Kernighan and Dennis Ritchie. They invented C. Everything you need to know about C programming is in this very short book. All fat C books are a waste of time.

OpenGL Programming Guide, Woo, Neider and David. This is an excellent first book on graphics programming. Its starts you out at a nice high level.

Michael Abrash's Graphics Programming Black Book, by Michael Abrash is a good book to get if you want to learn how to write your own software renderer. Skip the first 600 pages, and start reading on chapter 35.

Advanced Animation and Rendering Techniques, Alan Watt and Mark Watt. This is a really good book, but for a sophisticated audience. It's a good place to get references to papers.

You should also have a good linear algebra reference book around. This is not something you read to learn linear algebra, for that you should take a course, but it's useful to have around when you are trying to remember a mathematical relationship. There are probably lots of good ones. I use: Matrices and Linear Transformations, by Charles Cullen. This is part of a Dover series of math books that are very good.

There are a number of books that have many short articles with code that help you solve programming problems. These are great to have right next to your computer: Numerical Recipes in C, and Graphics Gems 1-3.

 

 

Presented by:


International Game Developers Association