|

Mark Terrano

Age of Mythology

Age of Empires II: The Age of Kings
|
Mark
Terrano
Programmer, Ensemble
Studios
Current project:
Age of Mythology.
Game Tools and support.
Academic Info
College:
DeVry Institute of Technology
Degree: B.S. Computer Science, Minor Accounting
Were there any particular projects or areas of study that you pursued?
Applications programming. As good and focused an education as DeVry provided,
I think I learned much more doing independent projects (programming, small
business applications, systems analysis) on my own than I ever learned
in College. I went to College part time (which is why it took twice as
long to get my degree) and worked full time programming, running computers,
and doing contract work.
Did you do any
internships?
No. They were fairly rare in the early 1980s; I did full-time jobs ;-)
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?
In 'Retail Games', my career started when I joined Ensemble Corporation
in 1995. Ensemble Corp was a consulting firm doing business analysis,
backed by client/server database and traditional business applications
development. I came on teaching Delphi programming to clients, and working
as an applications and networking specialized consultant. I initially
came to work for Tony Goodman (CEO/Ensemble Corp and later Studios) because
they were working on a game in the evenings called Dawn of Man (which
was what came to be known later as Age of Empires). I initially gave Tony
a call because my employer at the time (Mobil Oil) suggested that playing
Doom2 was not an appropriate after-work use of the company's network.
I thought I might as well go somewhere games were appreciated rather than
feared.
My love of games - like most people in the industry goes back to fun with
card and board games as a kid. Later in high school D&D and other
role-playing games were very influential - redefining what I thought of
as a game - of course I liked creating the games more than playing them
most of the time. I have experienced the joy and challenge of creating
computer games since 1979 - making my own PC games on the TRS/80 and later
on the Tandem mainframe (in TAL) - mostly text adventures then. I experimented
with a lot of technologies, including doing VT100 style graphic animated
adventure games with voice-synthesized output on a Tandem mainframe in
1982. In 83 a friend of mine and I got together and did a networked Tandem
Space-war type game (I was drawn in by the great weekend multi-player
games of VT100 DecWars at my University job in 1980). Dan Bunten did a
little 2 player game called Modem Wars - it was my first real time strategy
(RTS) game, and PC real-time multi-player game - it was so much fun I
actually focused my programming career into specializing in Networking
and client/server programming. I partnered with another friend and created
a general Audiotext (audible telephone information) system, quickly adapting
that as a platform for a few prototype games - something like choose-your-path
audio adventures. Also in the early 1990s I worked with another friend
to create worlds with the TBBS bulletin board based Illusions game (64
player text MUDs).
What jobs have
you held in the games industry thus far? Briefly describe the career path
you took to get where you are today.
(Again, I'll mark my Industry career at 1995 with Ensemble Studios)
Programmer - I used my network expertise to create the multi-player section
of our Genie Engine - this engine was used in all of our games so far
(AoM has a new network engine). I used what I had learned in the MUDs
to develop some of the multi-player gameplay, Team play, Co-Op play, Taunts
were all features in AoE that I knew the players would like. In a small
company - especially one designed for collaboration from the top down
like Ensemble Studios - you don't ever have just one job. I submitted
many game design proposals (15 my first year), ideas for gameplay systems
like trade, developed the Wonder implementation that we ended up using,
and assisted the artists, designers, and other programmers in many areas.
When you are a game programmer, so much of what you are doing is cutting
edge work - much of the hardware you use is experimental, the milliseconds
still do make a difference, and you'll need to work well with others.
So a strong technical base in at least one programming language (C++ definitely,
a lot of people also know Java, or some specialty languages). You want
to be strong enough in the basics of getting good efficient code done
that you can concentrate on the problems that you'll be faced with. Game
industry programmers are used to doing the impossible with every game
- things that nobody has tried before, new ways of looking at data, new
gameplay elements, these are standard. Schedules also can be a little
crazy - in business programming, there is usually a specification and
when you meet it - you're done, go home and celebrate. In game programming
it isn't done until its fun. There is no schedule that can say "Day
103 - today the game is fun" - its sometimes hard to capture - and
some games never have that 'spark' that makes them really a rewarding
experience. For us it is something that comes with time. That said - industry
programmers can expect a lot of re-work, sometimes looking at the same
problem 2 or 3 different ways.
Programming changes, the techniques, tools, methodologies all change every
year. When you're buried for two years making a game it is too easy to
get out of touch. Set aside some time to keep up with the rest of the
world or you are in for bad surprises.
Designer - I was simultaneously
given a chance to do Game Design and a trial by fire - my first formal
design role was the Lead Designer for Age of Empires II: The Age of Kings
which started right after we shipped Age of Empires. AoK was an incredible
experience for me - working with a lot of diverse teams, our development
partners at Microsoft, and really being involved in all areas of the creation
of the game. My special focus was on new user experience, and I learned
a lot about usability and focus group testing, as well as how important
a good 'training' experience is for the gamer. Working with long-time
designers Sandy Petersen and Bruce Shelley on the team was also an incredible
highlight.
Outside of specific programs at one of the few schools that specialize
in game creation - there isn't really a set of coursework that can prepare
you to be a game designer. Every designer I know has a different background,
a different degree, and way of analyzing and looking at games. All of
them have something in common though: Natural curiosity, a love of reading,
a 'generalist' - they are interested in many fields, great communications
skills, and a deep passion for playing games, thinking about games, and
making games. Nearly every game designer has happened into their career
- this might change in the future, but most of them were already in the
industry and moved over to game design (those that didn't help build the
industry from its foundation). A common route into game design is through
content design - so familiarity with 3D world building, making interesting
spaces and levels, creative architecture and lighting are all important.
For tools and technologies - learn Excel for doing balancing and mock-ups,
learn Word because you'll be using it a lot, learn a prototyping tool
for interfaces like Flash, or web scripting - because the best way to
illustrate an interface concept is to show someone. Basic art skills,
like sketching will let you do some of your own concept work and help
you communicate a vision more easily.
Advice
What fields
of study, specific courses, or life experiences would you recommend to
students interested in your field?
Advice for Programmers: Read the programming articles in Game
Developer Magazine and Gamasutra,
find a game that you like that has a 'mod' community (such as Half Life
or Quake or Unreal Tournament, etc) general programming sites (www.thecodeproject.com)
can also help with tricky problems or networking. Mods for existing games
will give you some experience working with teams and real development
without having to create a game from scratch.
Find something that interests you and really learn it inside and out.
Use the online resources - some forward-thinking development companies
are giving away source code to their older games - these are a storehouse
of knowledge.
Get together with others and make games. Keep your scope small and finish
it - rather than trying for a full-blown title with everything. A well-done
small game that shows specific knowledge is better than a poorly done
larger game with lots of unfinished areas. Basically - make a lot of games
and you will learn an incredible amount.
To get into the industry you'll need at least one game demo - your demo
speaks an order of magnitude louder than the resume. Programmers who haven't
had the discipline to put together a demo are generally thought to not
have the discipline for the industry. Some companies will even assign
you a demo game or program to write days or weeks before the interview
to see how you do.
Advice for hopeful designers: I get a lot of mail from people with great
ideas for games. I doubt any designer in the industry will read them -
because of the possible legal implications. We all have at least dozens
(if not hundreds) of great ideas for games - the people already in other
areas in the industry also have great ideas, some fully written into hundred-page
design documents. When we finished AoE we had hundreds of ideas for AoK
already written down of things that we would have liked to experiment
with.
While your ideas are very useful in an interview - game creation isn't
like publishing, someone won't make your game because they read your great
treatment or specification. The best use of your great idea is to team
with others to make some games, submit a game to the Independent
Games Festival and get active in the International
Game Developers Association. Read all of the 'post mortem' articles
in Game
Developer Magazine and on Gamasutra
for ideas on what game design is like in the real world. Find the home
pages of game designers and read their 'game design diaries' and experiences.
Is there anything
you wish someone had told you before you got into the games industry?
Is there anything you would have done differently?
When I tell people what I do for a living, the nearly universal comment
"Oh, you play games all day - that must be a lot of fun". Well
.hmmm,
sometimes. What you don't know is that for the first year or more the
game really isn't very much fun. It gets fun because you play the heck
out of it and keep changing it until it gets fun. Pacing, balance, and
polish all happen in the last half of development. And after its fun,
and you've played it a few thousand times - if your game is great it will
still be fun. You may not want to pick it up again after you ship though.
You'll also play everyone else's games - which can be fun - there is at
least something to be learned from every other game (even if it is a way
not to do something).
The industry is very accepting of individual needs and diversity - we're
much more about what kind of gamer you are than what Fraternity you were
in or where you grew up - the games come first. Dress code and schedule
is usually very flexible ("Pants required" is the dress code
for guys at one place). The flip side of that coin is that 'working half
days' usually means noon-to-midnight. Schedules are optimistic and 'overtime'
is common. For AoE we spent nearly a year of 90-hour weeks - but when
you are doing something you really love with a team you care about - it's
worth it.
A lot of companies fold after a game, and most games don't ever ship -
many people don't know that. I was lucky that Ensemble Studios was founded
by business people - but many game companies are founded by a programmer
or an artist with an idea
so companies that do one game and don't
have enough cash to get to the next one are typical. In addition, a lot
of good games that just don't come together, or bad games that are killed
off - result in the entire staff moving or leaving. So change is a constant
- this is the entertainment industry after all - set aside some of those
'Ph4t-l3wt' royalties, and keep your contacts list and resume updated
because
you really never know.
As games increase
in complexity, what are the various kinds of jobs that you foresee development
companies needing in the next five years?
I started to list the areas in the industry that were in demand and I
ended up listing all of them - haha - I'll trim my list down to those
that I think there will be very strong demand for:
Network programmers
(client & server) - Massively Multi-Player games and just multi-player
games in general can't function without people to get users playing together.
Games are finally returning from the early days of stand-alone play to
a real social environment. In networked gaming - every bit of data is
worth cash - and efficiency really counts. Programmers who know how networking
works in the real world - and can make robust systems will be in demand.
AI Programmers
- There are never enough - everything from individual unit movement, to
pathfinding, to 3D terrain analysis, to target selection uses Artificial
Intelligence to quickly try to beat the human opponent. These problems
are difficult - and traditional college courses are not addressing them.
The 'traditional' AI disciplines are about mimicking human thought with
unlimited resources - where game AI is about making a best guess of behavior
approximation with critically limited resources. If you're in a traditional
program - try applying new constraints to the assigned problems.
Texture Artists -
However much texture space is provided in PCs, it will never be enough
to get the look that the designers are going for - artists with a good
grounding in traditional skills, combined with deep knowledge of 3D tools
and game environments can really make a difference. My experience with
artists is that the 3D dominant ones can always use additional time to
spend with their traditional media skills, and the traditional artists
get much stronger when they learn to use 3D tools and techniques. I think
the visual 'envelope' for textures (and modeling) can go a lot farther
than the early 2000s games are pushing it.
Database Programmers - Almost all modern games (and definitely the MMP
games) are data driven - at least in development. Programmers that know
their way around database technologies (like SQL) are going to continue
to be in demand.
Do you have
any other advice or recommendations to share with students who are interested
in doing what you do?
If its something you want to do - go for it. It may not be easy, but it
will probably be worth it.
|