Unity Game Development Essentials
Unity is a 3D game authoring tool for Mac and PC. Game engines are the nuts and
bolts that sit behind the scenes of every video game. From the artwork right down to
the mathematics that decide every frame on screen, the "engine" makes the decisions.
Starting out with rendering—the method of displaying graphics on screen, and
integrating a control method and a set of rules for the game to follow—the engine is
what a developer builds to "house" the game. Modern 3D game engines are a deluge of
meticulously written code, and as such, once used for their intended purpose (which
is the production of a game they are made for), these engines are often sold, modified,
and reused. An obvious example of this is the Epic Games Unreal Engine. Originally
developed in the late 90s for Unreal—a PC First Person Shooter—the engine has gone
on to see massive success in its more recent incarnations, being licensed by other
developers for literally hundreds of commercial games and simulations.
Due to the level of complexity and cost of such commercial game engines, the
game development industry is a difficult area of interest for potential fresh talent
to break into, without studying programming languages such as C++ extensively.
Modern console and computer games are built around C++ as it is currently the most
efficient language in terms of computational speed, and as such, the structure and
commands of commercial games engines require thousands upon thousands of such
lines of code to function. This code is delivered in Unity with the help of just-in-time
compilation (known as JIT), using the open source C++ library Mono. By using JIT
compilation, engines such as Unity can take advantage of high-speed compilation,
whereby the code you will write for Unity is compiled to Mono just before it is
executed. This is crucial for games that must execute code at specific moments
during runtime. In addition to the Mono library, Unity also takes advantage of
other software libraries in its functionality, such as Nvidia's PhysX physics engine,
OpenGL, and DirectX for 3D rendering and OpenAL for audio. All these libraries are
built into the application, so you will not need to worry about learning how to use
them individually. So, simply sit back and enjoy them working for you seamlessly
within Unity.
The developers of engines also build tools with which to command the functional
coding they have created. For example, the creation of an outdoor terrain is held in
a set of instructions which define its shape (or topography), visual appearance, and
even how it responds to deformation in game. But this set of instructions would be
inefficient as a part of the game engine were it not attached to a visual tool to control
the aforementioned properties. This is where a Graphical User Interface (GUI) comes
in. Game engine developers will often build an interface of tools to aid their team in
manipulating parts of the engine in order to save time in the development process
and make the engine accessible to potential buyers, post production. This is also
true of Unity, as it has a very strong community of users that share their tools in the
form of plugins for the package. Visit the Unify community wiki at http://www.
unifycommunity.com/wiki for more information.
For many new potential developers, the steep learning curve required to pick up
programming languages such as C++, or the engines that utilize it, is simply too
great a task to attempt. Without completing degree-level studies in programming
or computer animation, it is difficult for many enthusiasts to get started in learning
the concepts, methods, and design principles involved in game production. Unity
Technologies is one such company that has set out to rectify this. Starting with
their own game engine in 2001, the Danish-based game development company
endeavoured to strip down their complex game development tools and make a
simple, user-driven package that anyone could pick up and begin experimenting
with. The team resolved to keep the source code that drives the engine behind the
scenes, instead providing a complete GUI (Graphical User Interface) that allows the
user to control the powerful engine source code without ever having to create parts
of it themselves. This factor has made Unity highly popular with new developers,
and is likely one of the key reasons you're reading this book. By establishing logical
concepts and categorizing common methods involved in game production, Unity
puts the power of its engine into the user's hands, allowing maximum results with
minimal effort, thereby encouraging experimentation with the most crucial factor of
all—gameplay.
Having appealed to many games developers, Unity has filled a gap in the games
development market that few others can fully claim to cater to. Having the ability
to produce professional standard games, publish 3D to both Mac and PC, as well
as having its own Web Player, Unity is one of the fastest growing game engines in
its sector. The engine also has its own Nintendo Wii and Apple iPhone developing
versions, meaning that once you have mastered the basics, a pipeline to not only
home computer, but also to console and mobile development lies ahead of you.
The fast pace of the entertainment and marketing industries requires a quick
turnaround of gaming media. Also, many companies are now looking to packages
such as Unity to enable their creatives to produce better products with the greatest
of ease. With 2009 seeing the release of Unity version 2.5, and its first steps onto PC
format, its usage looks set to skyrocket. But what is Unity? How does it work? What
can it do? And most importantly, how can it get you get started on the path to 3D
game development in just a few weeks?
good post
like