Computer Science Department Alumni
David Korus
AI Programmer
Zipper Interactive
Redmond, WA
Web site:
http://www.zipperint.com/
Professional Profile: David grew up in Moscow and
then attended the University of Idaho, receiving a BS degree in Computer Science
in 1999.
David's was introduced to computers at an early age. Here's what he had to
say about how his interests in Computer Science developed. "My parents brought
home a Texas Instruments computer when I was six, and set me up with a few simple
'games.' My real interest in computing started by creating those little
games from the coding magazines my mom and dad would bring home. Over
my elementary school, junior high, and high school I dabbled in coding, and
played plenty of computer games. I did take what Moscow High School called an
'Extended Learning Internship.' It was a loosely directed study on a topic
of my choice. I decide to create a bulletin board system (BBS). Using a couple
pre-made systems I put together a file server, email services, and message boards
which ran on my parents phone line at night. I'm sure my relatives were
really tired of calling us after 9pm and having the computer answer. Anyway,
the BBS was a neat pre-cursor to the internet. I learned a lot setting
up my own simple web server to run over modem. I had plenty of college
students logging on to send email, post messages, and exchange files.
With my interest in games, I made sure my BBS had lots of games running on it,
which always had lots of players!"
"The Computer Science Program did an exemplary job
of preparing me for my career as a game programmer."
When asked to comment on his time at the University of Idaho, David had this
to say, "The University of Idaho, and specifically the Computer Science Department
and Honors Program did a great deal to help me realize my personal and professional
goals. I felt that the Computer Science Program did an exemplary job of preparing
me for my career as a game programmer. Between low level knowledge of operating
systems, data structures, and higher level understanding of C++ programming,
computers security, and networking, my time in the Computer Science Department
has definitely served me well. This solid foundation of knowledge has allowed
me to work in a job where I’ve done 3D graphics, worked on handling character
motion, setup systems for audio, as well as programming for Artificial Intelligence.
I’ve been well prepared to work in assembly code, or to code up high level systems."
"The Honors Program gave me the opportunity to
add breadth to my education."
From David's comments it's pretty easy to see that he received a solid technical
education. He also had some interesting things to say about how courses outside
of his technical field have become valuable in his professional career. "My
time with the University of Idaho Honors Program also gave me the opportunity
to add breadth to my engineering education with plenty of other classes. My
class on the history of South East Asia has come in handy when discussing game
ideas around the office, my English classes gave me the skills to be a professional
game reviewer for a time, and the variety of class work gave me enough knowledge
to understand most non-programming concepts with a fairly short learning curve."
"One of the strengths of a University of Idaho’s
education is how excited the instructors are about their course matter."
As David observes, it isn't just the courses that make for a great education.
"In my opinion, one of the strengths of University of Idaho’s education is how
excited the instructors are. Some of my teachers really showed me why they were
excited and this made me want to better understand what about it was so interesting.
To begin with I wasn't especially excited about chemistry, computer security,
or the history of Southeast Asia. Even though these weren’t initially interesting
topics to me, after I was in class for a little while I found myself looking
forward to class where I would learn more about these new found interests. The
instructors for my classes made them so engaging and showed me the passion they
had." As it turned out, they were more than just of passing interest.
"My final individual project (a game) gave me something
that REALLY helped me get my foot in the door at my dream job."
For quite some time David worked to turn his academic studies into his dream
job. "My area of interest had always been game development. I did what
I could by taking courses that would help me reach my goal. One of my senior
projects was a tangible product that I made, was complete and visually appealing,
and it really helped show that I could do what needed to be done. The project
was a game and it took more time to develop than I could have imagined, but
it showcased my abilities. Being able to apply my knowledge of DirectX and the
basics of graphics coding really helped me show that I could do the work. In
the end it gave me something that REALLY helped me get my foot in the door at
my dream job." David's entre into the games industry actually began before
he completed his degree. Having completed his senior projects ahead
of schedule he secured a job at Blevins Enterprises, Inc. (BEI), a small local business that did modeling
add-ons for movies, and contract work for game developers.
My job gives me an opportunity to learn as well
as the chance to create a product I can be proud of."
In 2000, David joined Zipper Interactive as an AI programmer. David's primary
job is to make sure the game's characters look as believable and act as intelligently
as possible. He's also in charge of helping put together systems through
which game designers create their levels, place characters, and script their
behavior. "I’ve also found that as a game developer, the problems I'm asked
to solve give me an opportunity to learn, as well as the chance to create a
product I can be proud of and appreciate." During his time in the industry he's
worked on Mechwarrior3, Crimson Skies, and had a significant role in development
of the hit SOCOM: US Navy Seals series for PS2 and PSP.
Certainly no two days are ever exactly the same but a typical day might go
something like this: "I meet in the morning with the other programmers to sync
up on what everyone is working on, and chat about any problems our game is having.
Next I see what the testers found the night before and work with them to decide
how to get those issues fixed. After that's taken care of I'll usually
start work on a coding task. For example, I might work on how to accomplish
smoother path finding which is basically how to do a better job getting characters
from point A to point B without extra turns or motion. Some days I work with
the game designers. This involves using our tools to place enemies, setup
levels, giving them hints on what our AI does well, how to place them to show
off their strengths, tracking down odd behavior, and so on. Quite often
I work with other programmers, designers, and artists to figure out problems
we're seeing in the game. Most days I end up with a few little 'hallway
conversations' about what we could do better in our game, what’s broken, what
we've done in the past, how to solve this problem or that problem.
It's fun working with people that really want to make something that’s more
than a product. A good portion of what I do day in and day out is finding
something that needs fixing, and finding out who I need to talk to about getting
help to fix it. From time to time we just sit and chat about games.
Just about everyone at a game company likes games!"
"Technical skills are a must, but creativity is
certainly a plus."
In a large sense the skills that David needs to be successful as a game developer
aren't all that different from those needed by someone working in almost any
area of Computer Science. "To do my job, some technical skills are necessary.
Solid C++ skills, 3D mathematics, and physics are all a must because we are
trying to model the physical world. Creativity is certainly a plus.
Being able to think of new ideas for our game that aren't necessarily technical
achievements are quite important."
David had this to say about one other skill that's extremely important, "Working
in a close knit development team that includes a mix of technical and non-technical
people, it's important to be able to explain things in a simple understandable
manner. Expounding on the merits of A* path finding or describing a complicated
system for AI visibility won't do much to convince a game designer or programmer
that these changes will make the game better. Being able to put things
into simple terms, for example letting the game testers know that my latest
changes are 'supposed' to have enemies search for sounds they hear, makes it
easier for others to do their jobs. Communication skills are really important."
April 2008
The views expressed on this page are those of the individual being
profiled and do not necessarily represent the views or opinions of the University
of Idaho or the employer. References to specific companies or organizations
does not constitute endorsement of their products or services by the University
of Idaho.
Copyright © 2008 University of Idaho Board of Regents