|
Professional game development usually
begins with a game design, which itself has several possible origins.
The occasional game starts development with no clear game design, but as
a series of experimentations. The best-selling PC game of all time,
The Sims, was developed by the game designer,
Will Wright, by getting programmers to experiment with several
different ideas he had.
As part of the design of a game, we
ensure we think about the integration of the many varying disciplines.
The following is a list of the different aspects to game design we
iterate through.
- Game Mechanics
- Visual Arts
- Programming
- Production process
- Audio
- Narrative
Below is an idea of our programming process so you
understand how we work and how we will achieve the desired results:
Prototyping
Writing prototypes of game play ideas and features is
an important activity that allows programmers and game designers to
experiment with different
algorithms and usability scenarios for a game. A great deal of
prototyping may take place during
pre-production before the design document is complete and may, in
fact, help determine what features the design specifies. Prototyping may
also take place during active development to test new ideas as the game
emerges.
Prototypes need not be developed in the target
language for the game. They are meant only to act as a
proof of concept or to test ideas. Most algorithms and features
debuted in a prototype may be
ported
to the implementation language of the game once they have been
completed.
Often prototypes need to be developed quickly with
very little time for up-front design. Therefore usually our most
prolific programmers are called upon to quickly code these test-bed
tools.
RAD tools are used to aid in the quick development of these programs
Game Design
Our consultants will work with you to achieve the
game design and often with the input of the key programmers. The
game designer/consultant will solicit input from both the producer and
the art and programming lead for ideas and strategies for the game
design.
A game design is a "living
document" and may go through numerous revisions before a final
initial design is
agreed upon. As the game development progresses, the design document
changes as programming limitations and new capabilities are discovered
and exploited.
Language
Once the game's initial design has been agreed upon,
the development language must be decided upon. The choice depends upon
many factors, such as language familiarity of the programming staff,
target platforms (such as
Sony PlayStation or
Microsoft Windows), the execution speed requirements and the
language of any
game engines,
APIs or
libraries being used.
Today, because it is
object oriented and compiles to binary (the native language of the
target platform), the most popular game development language is
C++ and this is what we leverage most in our game projects. However,
where required, Java and
C are also used by our team to develop games.
Assembly language is necessary for some
video game console programming and in some routines that need to be
as fast as possible, or require very little overhead. We tend to stay
away from fringe languages
such as
C#,
Ada and
Python since these languages have had very little impact upon the industry and are
primarily used by hobbyists familiar with the languages.
We are more and more adapting to high-level scripting languages
for embedded extensions to the underlying games written in a low
or mid-level programming language such as C++. With the creation
of custom languages, such as QuakeC and UnrealScript.
API's and Libraries
A key decision we make in game programming is
which, if any, APIs and libraries to use. Today, there are numerous
libraries available which take care of key tasks of game programming.
Some libraries can handle sound processing, input, and graphics
rendering. Some can even handle some AI tasks such as path finding.
Which APIs and libraries we choose depends largely on the target
platform. For example, libraries for PlayStation 2 development are not
available for Microsoft Windows and vice-versa. However, there are game
frameworks available that allow or ease cross-platform development, so
we can program a game in a single language and have the game run on
several platforms, such as the Wii, PlayStation 3, Xbox 360, Xbox, PSP
and Microsoft Windows. Using a portable language can also provide
portability.
Graphic API's
Today, graphics are a key defining feature of most games. All games we
develop now boast full 3D graphics and of course 2D graphics where
required.
The most popular personal computer target platform is Microsoft Windows.
Since it comes pre-installed on almost ninety percent of PCs sold, it
has an enormous user base. The two most popular 3D graphics APIs for
Microsoft Windows are DirectX and OpenGL. The benefits and weaknesses of
each API are hotly debated among Windows game programmers. Both are
natively supported on most modern 3D hardware for the PC.
Production
During production, our programmers churn out a great
deal of
source code to create the game described in the game's design
document. Along the way, the design document is modified to meet
limitations or expanded to exploit new features. The design document is
very much a "living document" much of whose life is dictated by
programmer's schedules, talent and resourcefulness.
Milestones
We track all game design and development via
milestones. A milestone is a point in development where the emerging
game will have an agreed upon set of features and assets.
Maintenance
Everything we develop has a maintenance period built
in so you can rest assured that when you release your game, we will be
at hand to ensure nothing goes wrong. What's more, we don't
release anything until our games testing team have fully tested each
release over and over making sure there are no bugs in the game.
Request a Quote Now and Receive 30% Off
|