Getting Started with Unity 2018 - Third Edition

4.7 (6 reviews total)
By Dr. Edward Lavieri
  • Instant online access to over 7,500+ books and videos
  • Constantly updated with 100+ new titles each month
  • Breadth and depth in over 1,000+ technologies
  1. Downloading and Installing Unity

About this book

The Unity game engine has revolutionized the gaming industry with its complete set of intuitive tools and rapid workflows, which can be used to create interactive 3D content. With Unity, you can scaffold your way from the basics and make make stunning interactive games.

This book will guide you through the entire process of creating a 3D game, from downloading the Unity game engine to publishing your game. It not only gives you a strong foundation, but puts you on the path to game development.

Beginning with an overview of the Unity engine and its interface, you will walk through the process of creating a game environment and learn how to use built-in assets, as well as assets created with third-party 3D modeling tools such as Blender.

Moving on, you will create custom scripts to control non-player character behaviors and gameplay. You will master exciting concepts such as Heads-Up-Displays, mini-maps, game navigation, sound effects, and lighting effects. Next, you’ll learn how to create your first VR experience, right from setting up the project to image effects. You'll be familiarized with all the tools that Unity has to offer to create your own immersive VR experiences.

Each section is a stepping stone toward the completion of the final game. By the end of the book, you'll have learned advanced topics such as cross-platform considerations which enable your games to run on multiple platforms.

Publication date:
March 2018
Publisher
Packt
Pages
336
ISBN
9781788830102

 

Chapter 1. Downloading and Installing Unity

In this chapter, you will learn about game engines and look at four different types before focusing on Unity. Once that foundation is set, we will start taking a deep look at Unity's beginnings, where the game engine is today, and how it has progressed to being one of the top game engines in use today. We will highlight Unity's capabilities and features. We will then review the system requirements for developing Unity as well as running, Unity games. Finally, we will download and install Unity.

Our topics for this chapter are:

  • Game engine overview
  • Unity—past, present, and future
  • The case for Unity
  • System requirements
  • Downloading Unity
  • Installing Unity
 

Game engine overview


A game engine can be defined as a set of tools that provide the functionality you need to develop and deploy video games. There is no single industry-accepted definition for game engines. That is largely due to the varied nature of them and their uses. Typically, game engines have at least the following set of features:

  • 2D and/or 3D graphic design tools
  • Animation
  • Asset management—the ability to create and import game assets
  • Audio support
  • Cross-platform deployment—games can be made for multiple platforms (such as desktop, mobile, and console)
  • Graphical user interfaces 
  • Networking—support for multiplayer games
  • Physics 
  • Scripting support in one or more languages

The basic concept of game engines is that they provide a powerful set of tools to handle much of the grunt work of game development, allowing developers to focus on game aesthetics and gameplay. In the early days of video games, each game was coded from scratch without a game engine's libraries or capabilities. Instead of reinventing the wheel for each game, game engines started to emerge, making it easier for game studios to churn out games.

Game engines are not general-purpose software suites that can create any game imaginable. They are highly specialized and, although very flexible, are intended for a specific range of game genres. For example, the Ego Game Technology Engine by Codemasters is used primarily for creating racing games; Pyrogenesis, by Wildfire Games, is used for creating real-time-strategy (RTS) games; the Silent Storm Engine, by Nival Interactive, is used predominately for turn-base tactics games; and ONScripter, by Naomi Takahashi, is used for creating visual novels and first-person adventure games. 

Game engines for specific game genres

There are a plethora of game engines available; many of them are free, some are open source, and others are proprietary. Selecting the right game engine for your game project is a critical pre-development step. Not every game engine will work for your game, and no single game engine will work for every game. Fortunately, we have a lot of options available to us. 

When deciding on which game engine to use for a given game project, consider the typical characterization of games in the primary genre that your game is a part of. 

Note

We use the phrase primary genre because many modern games blur the genre lines and incorporate characteristics of two or more genres. This genre blurring can result in new and innovative games.

First-person shooters (FPS)

This game genre has a long list of successful titles; here are some of them:

  • Battlefield
  • Bioshock
  • Borderlands
  • Call of Duty
  • Destiny
  • Doom
  • HalfLife
  • Halo
  • Left4Dead
  • Overwatch
  • Rainbow Six

FPS games are created with the intent of immersing the player in the game world. They are playing as a character and, to obtain the desired level of immersion, animations, audio, and graphics quality are critically important. Special attention is given to the character's arms and weapons:

These games are typically characterized by the following:

  • Large 3D segmented game worlds (indoors and outdoors)
  • Character travels primarily on foot
  • Some vehicle usage
  • Standard camera and aiming controls
  • Realistic animations
  • Large and realistic inventory of hand-held objects (weaponry)
  • Non-player characters (NPCs) with realistic artificial intelligence
  • Single and multi-player modes

Third-person games

Third-person games are games where the player character is nearly or completely visible in the game scene. This genre includes third-person shooters (TPS) and third-person action/adventure. That means that a considerable effort needs to be focused on a character's appearance and animations. These games are based on the third-person character perspective as illustrated here:

Here are some of the more successful and popular third-person games:

  • Dead Space
  • Gears of War
  • Grand Theft Auto
  • Prince of Persia
  • Rainbow Six
  • Resident Evil
  • SOCOM
  • Splinter Cell
  • Uncharted

These games are typically characterized by the following, in addition to the characteristics listed in the previous section for FPS games:

  • Emphasis on the player character
  • Camera that follows the player
  • Player-controlled character motion sequences
  • Full-bodied animations
  • Character and camera rotation

Other game genres

There are a large number of other game genres, such as shooters, platformers, vehicle games, fighting, strategy, war, simulation, and puzzle. The difficulty in identifying a particular game's genre lies in the multiple ways in which game genres are classified. For example, you can have a TPS game that is also a massively multiplayer online game (MMOG) and, because it has a large number of puzzles, it can be added to the puzzle genre.

This is not something to be terribly concerned about. It is important to be able to identify what the key components of your game will be so that you can select the best available game engine for your project.

Available 3D game engines

In this section, we will briefly review selected leading game engines to give you a sense of what is available and what their capabilities are. 

Note

Because the Unity game engine is featured later in this chapter and used throughout this book, it is not covered in this section.

CryENGINE

CryENGINE is developed by Crytek. Interestingly, this game engine was initially created to produce a game demo for Nvidia, a graphics processing unit (GPU) manufacturer and because of that demo's great success, the game (Far Cry) was taken into full production and is now a commercial success. The game engine itself is also very successful.

The engine is freely available along with the full source code. There are no financial obligations for commercial use of CryENGINE such as royalties. This engine is capable of high-quality visuals and excellent performance, and you can develop games for the following platforms:

  • Linux PC
  • Oculus Rift
  • Playstation 4
  • Windows PC
  • Xbox One

For further information on CryENGINE, I recommend Mastering CryENGINE by Packt Publishing: https://www.packtpub.com/game-development/mastering-cryengine.

Lumberyard

Lumberyard is part of the Amazon Web Services (AWS) platform and, at the time of this book's publication, is still in beta. This is a free AAA game engine based on CryENGINE. Lumberyard's unique selling point is that no other game engine offers deep integration with Amazon Web Services and Twitch.

Note

AAA, pronounced "triple-A," games are those with extremely large production and marketing budgets.

With this engine, you can develop for the following platforms:

  • Android
  • HTC Vive
  • iOS
  • Oculus Rift
  • OSVR
  • PC
  • PlayStation 4
  • PlayStation VR
  • Xbox One

For further information on AWS Lumberyard, I recommend Learning AWS Lumberyard Game Development by Packt Publishing: https://www.packtpub.com/game-development/learning-aws-lumberyard-game-development.

Microsoft's XNA Game Studio

Microsoft's XNA Game Studio is a set of tools based on Microsoft's .NET framework. It is freely available. There are some redistribution restrictions that you will want to review if you plan to use this tool.

With XNA, you can develop for the following platforms:

  • Windows PC
  • Windows Phone
  • Xbox 360 

For further information on XNA, I recommend Microsoft XNA 4.0 Game Development Cookbook by Packt Publishing: https://www.packtpub.com/game-development/microsoft-xna-40-game-development-cookbook.

Unreal game engine

The Unreal game engine, by Epic Games, started as a first-person shooter (FPS) game nearly 20 years ago. Since that time, the Unreal game engine has significantly evolved and is now a freely-available AAA game engine. You can develop games with Unreal using C++ or Blueprints, a visual scripting system.

Unreal comes with several templates that make getting started very easy. These are:

  • 2D File Scroller
  • First Person
  • Flying
  • Puzzle
  • Rolling
  • Side Scroller
  • Third Person
  • Top Down
  • Twin Stick Shooter
  • Vehicle
  • Vehicle Advanced

With Unreal, you can develop for the following platforms:

  • Android
  • Daydream
  • HTML 5
  • iOS
  • Linux
  • macOS
  • Nintendo Switch
  • Oculus Rift
  • PlayStation 4
  • PlayStation VR
  • Samsung Gear VR
  • Steam
  • Viveport
  • Windows PC
  • Xbox One

For furtherinformation on Unreal, I recommend Unreal Engine: Game Development from A to Z by Packt Publishing: https://www.packtpub.com/game-development/unreal-engine-game-development-z.

 

Unity – past, present, and future


The Unity game engine was created by David Helgason, Nicolas Francis, and Joachim Ante in Copenhagen, Denmark, in 2004. They created the game engine to develop games, but ended up focusing on the game engine. Here is a brief look at its release history.

Note

If you encounter a term or feature in this section that you are not familiar with, don't worry, we will cover them in subsequent sections and chapters.

Version 1.0 - 2005

This initial release could be used to develop projects for the macOS X operating system. The major features of Unity 1.0 included:

  • Some documentation
  • Transform script interface
  • Alpha-mapped shaders
  • Color-coded console warnings and errors
  • Fully-sandboxed web player

Version 1.1 supported Microsoft Windows and web browsers as distribution platforms. It also included support for C/C++ external plugins.  

Version 2.0 - 2007

Version 2.0 had several impressive features, including better support for projects made for the Windows platform. This release also improved the web player compatibility across platforms.

Engine updates included better graphic processing performance with the support of Microsoft's DirectX and OpenGL. The terrain engine was also introduced in this release, as was the ability for real-time soft shadows and networking. 

The Unity Asset Server was also introduced in Version 2.0. This is an asset and version control system for teams working on Unity projects. 

The major features of Unity 2.0 included:

  • Terrain engine
  • Video playback
  • DirectX 9.0 renderer
  • Networked multiplayer games
  • Real-time dynamic shadows
  • Game GUIs
  • Web player streaming and compression
  • Unity Asset Server
  • Physics enhancements
  • Scripting enhancements
  • Water feature

After this, there were incremental releases. Most notably, Version 2.5 was released in 2009 and included cross-platform support so the Unity game engine could run on both Mac and Windows computers.

Version 3.0 - 2010

The release of Version 3.0 included a large number of new features and enhancements, as well as a large number of bug fixes in the editor, rendering, iOS-related, physics, scripting, and networking.

The major features of Unity 3.0 included:

  • Support for Android OS
  • Improved standard asset packages
  • Improved editor
  • New graphics features
  • Asset pipeline improvements
  • Audio improvements
  • Physics improvements
  • Documentation for scripting features

Version 3.5 represented a tremendous update and was released in 2011. It included support for Flash deployment. Additional key updates included:

  • Shuriken particle system
  • Built-in pathfinding
  • Upgraded occlusion culling
  • New level of detail 
  • Linear space lighting

Version 4.0 - 2012

Version 4.0 was released in 2012 and enabled game developers to create stunning gameplay and animations. The primary updates to the game engine for this release were:

  • A new animation system called Mecanim
  • Real-time shadows (for all platforms)
  • Support for DirectX 11 rendering
  • Updated the Shuriken particle system, including support for world collision
  • Added new deployment platforms:
    • Linux
    • Adobe Flash
  • Support for cross-platform dynamic fonts

Version 5.0 - 2015

Unity 5.0 launched with a free personal edition. This edition was provided to anyone with less than $100,000 in revenue or funding. No royalties were assessed either, making this a great way to get into the game industry without the initial expense of game engine technology. With the free version, published games included a non-customizable splash screen.

Key features in version 5.0 were:

  • Performance improvements to 3D physics
  • Animation system updates
  • WebGL preview
  • Visual fidelity enhancements with HDR reflection probes
  • An audio mixer
  • Real-time global illumination
  • Physically-based standard shader

Version 2017 - 2017

In 2017, Unity Technologies announced that they would shift the version of the Unity game engine from an incremental number to the year of release. So the major release in 2017 was version 2017, and, since then, all minor releases in that year followed semantic versioning.

Note

Semantic versioning is a formal software versioning convention that uses a three-part version identification schema: major.minor.patch.

The actual first release of 2017 was as 2017.1 in July, 2017. Here are some of the major features introduced with Unity 2017:

  • Timeline—a visual tool for creating cinematic content
  • Cinemachine—an advanced camera system
  • Post-processing—functionality where you can apply filters, controls, and more
  • Unity Teams—a new cloud-based collaborative service
  • Improved graphics and platform support
  • Particle system improvements
  • Progressive Lightmapper improvements
  • 2D improvements
  • Animation improvements
  • Real-time shadow improvements

Version 2018 – 2018

The release of Unity 2018 is anticipated in the spring of 2018. There will be some exciting enhancements to the game engine, especially with the stated focus of graphics. 

Here are the highlights of the changes expected for Unity 2018:

  • Scriptable Rendering Pipelines (SRP): A new SRP API will be available, giving us finite control of the rendering pipeline via C# scripting. Unity 2018 will include two rendering pipelines (Lightweight and HD) that can be used, replicated, or modified. 
  • Upgraded post-processing stack: A new version of the post-processing stack includes automatic volume blending, and enhanced controls for custom effects.
  • Shader graph: A visual interface for creating shaders.
  • Integrated IDE: MonoDevelop will no longer be shipped with Unity as the integrated development environment for scripting. Windows users will receive Visual Studio 2017, and Mac users will receive Visual Studio for Mac. Visual Studio is a much more robust development environment.
  • C# job system: This system will empower developers to create safer multithreaded code with performance gains.
 

The case for Unity


With so many game engine options available for both 2D and 3D game development, you might wonder why you should select Unity. The first release in 2005 introduced us to an excellent game engine that has been continually improved upon over the last decade with new features, support, and enhancements. With each new release, developers are presented with more functionality to help them develop stunning games.

Unity Technologies, the creators of Unity, is a well-established company dedicated to continual improvement of the game engine. As new processing technologies and platforms arise, Unity support will not be far behind. As with all Unity features, excellent official documentation accompanies all new functionality and features.

Being able to use a free version of the game engine without having to pay royalties is a game changer. Individuals, hobbyists, and small studios can make games using the same powerful game engine as large studios. In addition, the robust feature set and Unity community are additional factors that make Unity the right choice for your game development projects. 

Unity features

In this section, we will list the core features of the Unity game engine. We will explore them in detail in subsequent chapters. Unity can be used to develop applications for the following devices, which span consoles, desktops, mobile, AR, TV, VR, and the web:

  • Android/Android TV
  • Daydream
  • Facebook Gameroom
  • Fire OS
  • Gear VR
  • Google Cardboard
  • iOS/tvOS
  • Linux 
  • macOS
  • Microsoft Hololens
  • Nintendo 3DS/Nintendo Switch
  • Oculus Rift
  • PlayStation 4/PlayStation Vita/PlayStation VR
  • Samsung SMART TV
  • Steam OS/Steam VR
  • Tizen
  • WebGL
  • Wii Universe (no longer supported in Unity 2018)
  • Windows/Windows Phone/Windows Store Apps
  • Xbox One

Editor

Unity's Editor is the main game engine interface, where you will spend most of your time. Here are the key features of the Unity Editor:

  • Can be used on both Macs and Windows PCs
  • 2D and 3D scene design tools
  • Instant play mode
  • Powerful animation tools
  • Timeline tool for creating cinematic sequences
  • Cinemachine tool for smart cameras
  • Artificial Intelligence (AI) pathfinding tools
  • Extensible—there are ample available plugins available
  • Particle system
  • Supports C# and JavaScript
  • Supports single and multi-player games
  • Includes collaborative tools

Graphics 

The graphics capabilities of the Unity game engine are impressive. We have the ability to create game objects natively in the game engine using geometry, meshes, textures, and materials. We can also use high-quality graphics imported from external, specialized software tools including Maya, 3DS Max, and Blender. Advanced lighting and shadow controls as well as the level of detail feature adds an important touch of realism to our games.

Key graphic features include:

  • Real-time rendering
  • Global illumination
  • Physically-based shading
  • Native graphics API for faster rendering
  • Multiple lighting techniques

Unity community

Unity has one of the most vibrant communities. Community members share content and help answer questions regarding developing with Unity. The community is heralded by Unity Technologies. In addition to official tutorials, you can find a host of blogs, tutorials, and videos to help you get started with Unity development, as well as learn how to accomplish specific operations with your game.

The Unity Asset Store includes free and for-fee assets from Unity Technologies and the Unity community. Available assets include models, art, animations, scripts, and tools. The Asset Store has an intuitive interface making finding what you need easy. We will explore the Asset Store in Chapter 6, Creating and Importing 3D Objects for Our Game.

Unity hosts periodic live events that allow you to learn about Unity directly from Unity Technologies and connect with fellow designers and developers. Unity Unite events are hosted in America, Asia, and Europe each year. You can learn about past and future Unite events here: https://unite.unity.com/.

 

System requirements


System requirements has two parts. The first refers to what hardware and software you need in order to use Unity for game development. The second refers to the hardware and software you need to run a game developed in Unity. While these requirements might change, the requirements, as of Unity 2017, are detailed in the next two sections.

Development system requirements

You can use a Mac or a Windows computer for Unity development. The Mac must have macOS X 10.9 or later. For Windows computers, you must have Windows 7 SP1+, Windows 8, or Windows 10. 

Note

Windows XP and Windows Vista are not officially supported. 

The Graphics Processing Unit (GPU) on your development computer must have DX9 (shader model 3.0) or DX11 with feature level 9.3 capabilities. 

There are additional requirements that are specific to what distribution platforms you are targeting. Please refer to the following table for further information.

If you are developing for...

You must have...

Android

  • Android SDK
  • Java Development Kit

iOS

  • macOS X 10.9.4 or higher
  • Xcode 7.0 or higher

WebGL

One of the following:

  • macOS X 10.9+
  • Windows 7 SP1+ (64-bit)

Windows Store

Windows 8.1 (64-bit) and one of the following as applicable:

IL2CPP (used for compiling .NET assemblies)

Visual Studio with C++ compiler feature 

Universal Windows Platform (UWP)

Visual Studio 2015 or later

Windows 10 SDK

Windows 8.1/Windows Phone 8.1

Visual Studio 2013 or later

Windows 8.1 SDK

IL2CPP (used for compiling .NET assemblies)

Visual Studio with C++ compiler feature 

Universal Windows Platform (UWP)

Visual Studio 2015 or later

Windows 10 SDK

Windows 8.1/Windows Phone 8.1

Visual Studio 2013 or later

Windows 8.1 SDK

IL2CPP (used for compiling .NET assemblies)

Visual Studio with C++ compiler feature 

      

Universal Windows Platform (UWP)

Visual Studio 2015 or later

Windows 10 SDK

      

Windows 8.1/Windows Phone 8.1

Visual Studio 2013 or later

Windows 8.1 SDK

      

Playback system requirements

There are not a lot of requirements for users playing Unity games on devices you developed for. Typically, having an up-to-date device, in terms of hardware and operating system, will result in the optimal playing experience.

The basic requirements are detailed as follows:

Device/Platform

Requirements

Android

  • ARMv7 (Cortex) CPU with NEON support or Atom CPU

  • OpenGL ES 2.0 or later

  • OS 4.1 or later

Desktop

CPU

  • Must support SSE2 instruction set

Graphics card options

  • DX9 (shader model 3.0)
  • DX11 with feature level 9.3 capabilities

Operating system options

  • macOS X 10.9+
  • SteamOS+
  • Ubuntu 12.04+
  • Windows XP SP2+

iOS

iOS 7.0 or higher

WebGL

A recent version of one of the following browsers

  • Chrome
  • Edge
  • Firefox
  • Safari

Windows Phone

Windows Phone 8.1 or later

 

Downloading Unity 


Getting your hands on Unity is relatively straightforward. Start by visiting the Unity site at https://unity3d.com. In the top-right corner, as shown here, you will see a link to Get Unity:

That link takes you to the https://store.unity.com page where you can click on the Try Personal link as part of the Personal plan option.

You will be taken to the Download Unity Personal page. You should review the information on that page to be sure that you qualify for the Personal Plan.

Note

Depending on your system, you might be prompted to select a Windows or macOS X button. If presented with this choice, select the appropriate operating system for your computer.

Once you acknowledge your eligibility, the Download Installer button will be enabled.

The installer downloads very quickly. It is just an installer and not the game engine itself. We will review the installation process in the next section.

 

Installing Unity


In the previous section, you downloaded the Unity Installer. Locate that file, likely in your downloads folder, and launch the program. 

For the remaining steps, and throughout this book, we will use Unity running on macOS. The steps and processes for installing and using Unity are the same for both systems; the interfaces might vary slightly in appearance.

Once you launch the Download Assistant, your computer might present you with a security prompt:

Once you accept the security warning, and after clicking the Open button, you will see the Introduction pane. Click the Continue button.

Next, you will see the Software License Agreement pane (not shown here). You can read, print, and save the Software License Agreement. Click the Continue button to proceed. This will result in a popup asking you if you consent to the terms of the software license agreement. If you do agree, click the Agree button.

The next step is the Unity component selection screen. By default, all components will be selected. You will see how much space is required for these components to be installed on your computer and how much space you have left. You can disable components you know you will not need right away and install them later. Alternatively, you can install all components if space is not an issue:

In order to follow along with this book's tutorials, you will need to, at a minimum, select the following components:

  • Unity 2017.1 (or later version that is presented in the interface)
  • Standard Assets

In addition, the following components are highly recommended:

  • Documentation
  • Example Project

Next, you will select an installation destination and click the Continue button.

The Download Assistant will start downloading the components you previously identified (not shown here). If you have a slow internet connection, this could take a while.

This is a good time to create your free Unity ID. If you still have Unity open in your browser, you will see the person icon in the top-right of their page. If you do not see that icon, you can revisit https://unity3d.com. When you click on the icon, you will see a new interface with a Create a Unity ID button. Click that button and fill out the registration form:

You will need your account to use the Unity Asset Store, even for obtaining free content.

Once all components have been downloaded and installed, you will be notified by the Download Assistant.

When you first launch Unity, you will need to select a license. Unity is now successfully installed on your computer and you are ready to use it.

 

Summary


In this chapter, we explored game engines and looked at four different game engines to support our foundational knowledge about game engines. We also looked at the history of Unity and how it evolved from one release to the next. In addition, we discovered Unity's key capabilities and features. Unity's system requirements for developing Unity games was covered, as were the system requirements for running them. Finally, we downloaded and installed Unity.

In Chapter 2, The Unity Interface, we will provide details on the Unity Editor's User Interface. You will learn about the various views, windows, layouts, and transform tools.

 

About the Author

  • Dr. Edward Lavieri

    Dr. Edward Lavieri is a veteran software engineer and developer with a strong academic background. He earned a Doctorate of Computer Science from Colorado Technical University, an MS in Management Information Systems (Bowie State University), an MS in Education (Capella University), and an MS in Operations Management (University of Arkansas). He has been creating and teaching computer science courses since 2002. Edward retired from the U.S. Navy as a Command Master Chief after 25 years of active service. He is the founder and creative director of three19, a software design and development studio. Edward has authored more than a dozen technology books, including several on Java.

    Browse publications by this author

Latest Reviews

(6 reviews total)
Excellent introduction to Unity 2018.
Exact the knowledge I was in need of.
This book is very useful to me

Recommended For You

Complete Unity 2018 Game Development

Leverage the power of the Unity 2018 game engine to create games with brilliant gameplay and high replayability.

By Alan Thorn and 3 more
Complete Virtual Reality and Augmented Reality Development with Unity

Get close and comfortable with Unity and build applications that run on HoloLens, Daydream, and Oculus Rift

By Jesse Glover and 1 more
Python Machine Learning - Third Edition

Applied machine learning with a solid foundation in theory. Revised and expanded for TensorFlow 2, GANs, and reinforcement learning.

By Sebastian Raschka and 1 more
Hands-On Game Development Patterns with Unity 2019

Write maintainable, fault-tolerant, and cleaner game codes by understanding the standard development patterns and battle-tested practices.

By David Baron