A New Year's Resolution
As the new year begins, I resolve to blog more often and share my insights in the game industry with others.
Well, it's the beginning of a New Year and the start of a new decade.
One of my resolutions this year is to make regular entries into my blog.
Most of my past blogs have been about my entry into the game industry.
I have thought a lot about what kind of content I wanted to move
forward with. Should I share my genius insights into game programming?
Rant about the projects I am working on? Or continue sharing my
roller-coaster ride through the game development world?
There is a plethora of information out there about game programming
techniques, and people far more qualified than I to write about them.
So, although I may share a trick or two as I go along, programming will
not be my main focus. Instead, I will continue to deal with the basics:
how to prepare for or break into the game industry, basics on success
in this field, and occasionally a new programming trick I that has
helped me.
So, here's to a great new year. Thanks to all of you (yes, all 5 of you!)
who have followed my blog and left feedback. As always, feel free to
post questions or even suggest topics that you would like me to cover.
SO, what am I working on anyway?
I am currently working on a project whose name I cannot disclose. I can
mention that it is being co-developed for the iPhone and PC, and
possibly the Mac, and that it is a 2D retro platforming shooter. I
think it will be great fun and hope you'll all pick it up when it is
released. One of the big challenges of this project has been learning a
whole new platform of skills. This is my first project on the iPhone,
and my first project to ever use OpenGL. As you probably know, you must
use a Mac to develop for the iPhone, and this is also the first real
work I have done on a Mac. In addition, the iPhone uses a variant of
C/C++ known as Objective C, and I have never used objective C. Finally,
I have had to learn how to use the in-house game engine that we are
using to accomplish all of this. In total, I have had to learn FIVE new
technologies for this project: Mac Leopard, OpenGL, Objective-C, XCode
(the development tool for the iPHone), and the new game engine.
This underscores my first point of the year for those who may be trying to break into the game industry: FLEXIBILITY.
No matter what your ambitions (programming, art, design), the tools of the
trade are constantly changing. There is a dichotomy between the need to
generalize and the need to specialize, and it may be difficult to know
exactly how to balance these two extremes. For example, I often get
questions about which programming language to focus on from those who
are interested in game programming. The answer depends on what type of
game development you are interested in: AAA titles? Web based? Mobile
gaming? I'll cover this question in more detail in a future blog. The
important idea is that two years ago I would have never told someone
they should brush up on their Mac/Xcode/Objective C skills because at
that point most of this technology didn't even exist (or at least,
wasn't being widely used for game development).
Being in the game industry (as with many technology careers) means you must
certainly specialize in something (e.g. C++ programming), but be aware
of almost everything else so that you can easily change gears and pick
up a new skill when the opportunity presents itself. Before now, I
would have never marketed myself as an iPhone developer, but I knew I
could pick up the skill because I have had plenty of experience
programming.
If you are currently in school, try to expose yourself to a wide variety
of technologies. For example, if you are a computer science major, take
courses in a wide variety of programming languages and topics. You
might not think it is important to learn databases or web development
if your target is to be a game developer, but those are exactly the
technologies that are being used for the burgeoning social gaming
platforms (think Facebook and MySpace). So, even if you focus on a core
language, make sure you at least get exposed to other languages.
I would also recommend an inter-disciplinary approach. First, choose
which area of game development you are really interested in (e.g.
programming, art, design, or production). While you focus on that area,
take classes (or read books, etc.) on other areas so that you
understand how they work. For example, every programmer should have a
basic understanding of how art is created for games and the tools that
are used. In my current project I have had to do a lot of work that
would typically be done by an artist (e.g. convert and resize art
assets). Artists should understand the basics of programming and how
that might affect the art they create. Designers and producers should
understand the basics or both art and programming and how it impacts
them.
As a programmer, I have read over 20 books on programming, but also
several books on game design, and a book on game production. I have
taken an online class in Maya, and have become proficient in Adobe
Photoshop. Additionally, I have programmed in over 10 different
languages (my core skill). If you are having trouble deciding on what
your focus should be, I would suggest scanning the job boards at sites
like Gamasutra.com and Gamedev.net. Look at the types of jobs that are
available and the skills they required. Some will be very focused, such
as a job requiring experience with the Unreal Engine. Others (often
smaller companies) will ask for individuals with a wide variety of
skills. Which jobs sound the most enticing to you? This will give you
an idea of where you might want to focus.
In closing, while specialization is important (e.g. you must have one core
skill that you are completely competent at), it is also important to
have a general background of knowledge that you can draw from so you
can adapt to change and new opportunities. Thanks for reading! I hope to be diligent and add a new post each week, so stay tuned and leave your feedback.
R
About the Author
You May Also Like