Unity Game Development Essentials

in #game7 years ago

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?