34,79 €
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.
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Seitenzahl: 303
Veröffentlichungsjahr: 2018
Copyright © 2018 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
Commissioning Editor: Kunal ChaudhariAcquisition Editor: Larissa PintoContent Development Editor: Mohammed Yusuf ImaratwaleTechnical Editor: Shweta JadhavCopy Editor: Safis EditingProject Coordinator: Hardik BhindeProofreader: Safis EditingIndexer: Partik ShirodkarGraphics: Jason MonterioProduction Coordinator: Shantanu Zagade
First published: August 2013 Second edition: May 2015 Third edition: March 2018
Production reference: 1160318
Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK.
ISBN 978-1-78883-010-2
www.packtpub.com
Mapt is an online digital library that gives you full access to over 5,000 books and videos, as well as industry leading tools to help you plan your personal development and advance your career. For more information, please visit our website.
Spend less time learning and more time coding with practical eBooks and Videos from over 4,000 industry professionals
Improve your learning with Skill Plans built especially for you
Get a free eBook or video every month
Mapt is fully searchable
Copy and paste, print, and bookmark content
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at [email protected] for more details.
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters, and receive exclusive discounts and offers on Packt books and eBooks.
Dr. Edward Lavieri, is a veteran game designer and developer with a strong academic background. He earned a Doctorate in Computer Science from Colorado Technical University. He has taught and been a curriculum developer since 2002. In 2008, he started a software design and development studio, focusing on educational games. He currently serves as the Founder and Creative Director of that studio. Edward authored several books on adaptive learning, Java, Unity, AWS Lumberyard, and LiveCode.
Andreas Oehlke is a professional full-stack software engineer. He holds a bachelor's degree in computer science and loves to experiment with software and hardware. His trademark has always been his enthusiasm and affinity for electronics and computers. His hobbies include game development, building embedded systems, sports, and making music. He currently works full-time as a senior software engineer for a German financial institution. He has also worked as a consultant and game developer in San Francisco, CA. He is also the author of the book Learning LibGDX Game Development.
Ludovico Cellentani is a senior engine programmer at King AB, and he has been working as a professional game programmer for almost 20 years. During this time, he has worked on a number of games released on various platforms, spanning PC, consoles, and mobile.
During the past 6 years, he has worked on a considerable number of games, VR experiences, and gamification projects released for PC, mobile, and custom-built computer installations, all powered by the Unity game engine.
He is currently living with his wife and son in Stockholm, Sweden.
If you're interested in becoming an author for Packt, please visit authors.packtpub.com and apply today. We have worked with thousands of developers and tech professionals, just like you, to help them share their insight with the global tech community. You can make a general application, apply for a specific hot topic that we are recruiting an author for, or submit your own idea.
Title Page
Copyright and Credits
Getting Started with Unity 2018
Third Edition
Dedication
Packt Upsell
Why subscribe?
PacktPub.com
Contributors
About the author
About the reviewers
Packt is searching for authors like you
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the example code files
Download the color images
Conventions used
Get in touch
Reviews
Downloading and Installing Unity
Game engine overview
Game engines for specific game genres
First-person shooters (FPS)
Third-person games
Other game genres
Available 3D game engines
CryENGINE
Lumberyard
Microsoft's XNA Game Studio
Unreal game engine
Unity – past, present, and future
Version 1.0 - 2005
Version 2.0 - 2007
Version 3.0 - 2010
Version 4.0 - 2012
Version 5.0 - 2015
Version 2017 - 2017
Version 2018 – 2018
The case for Unity
Unity features
Editor
Graphics 
Unity community
System requirements
Development system requirements
Playback system requirements
Downloading Unity 
Installing Unity
Summary
The Unity Interface
Screen real estate 
Menu
Unity
File
Edit
Assets
GameObject
Component
Window
Help
Scene view
Game view
Project window
Hierarchy window
Inspector window 
Toolbar
Transform tools
Gizmo Toggles
Cloud and Account Buttons
Layers and Layouts
Layouts
Summary
Designing the Game
Game concept
Game idea
Input controls
Winning and losing
Game characters
Cucumber Man
Cucumber Beetle
Gameplay
Game world layout
Starting condition
Point system
Heads-Up Display
The difficulty balance
Difficulty balance questions
Implementation plan
Project organization 
Custom assets
Standard assets
Organization
Summary
Creating Our Terrain
Creating the terrain
Working with height maps
Importing the terrain
Shaping the terrain
Smoothing our terrain
Creating our spawn points
Painting the terrain
Adding water
Saving your work
Adding vegetation
Summary
Lights, Cameras, and Shadows
Working with cameras
Understanding camera projections
Orientating your frustum
Creating a Skybox 
Using multiple cameras
Working with lighting
Directional lighting
Point lighting
Spot lighting
Area lighting
Implementing reflection probes
Understanding shadows
Summary
Creating and Importing 3D Objects for Our Game
Understanding assets and GameObjects
Asset packages
Understanding GameObjects
Creating 3D objects in Unity
Using prefabs
Using additional 3D objects
Using the Unity Asset Store
Hands-on with the Unity Asset Store
Incorporating custom assets in our game
Working with imported assets
Planting Cherry Trees
Planting Cucumber Patches
Summary
Implementing Our Player Character
Working with Unity's standard asset package
Importing the game character
Configuring a player controller
Fine-tuning our character
Fine-tuning the motor controls
Fine-tuning scale
Fine-tuning the Capsule Collider
Changing and refining input controls 
Animating our player character
Reviewing the player controller script
Reviewing the Animator component
Previewing the animations
Terraforming the terrain for our Cucumber Man
Summary
Implementing Our Non-Player Characters
Understanding the non-player characters
Importing the non-player characters into our game
Animating our non-player characters 
Incorporating the non-player characters into our game
Working with the Animation Controller
Terraforming the terrain for our Cucumber Beetles 
Designating a sandbox area
Planting additional cherry trees
Creating spawning sites
Adding cucumber patches to our terrain 
Creating a cucumber patch area in the sandbox
Planting cucumber patches
Adding cucumbers to our terrain
Scripting our non-player characters
Getting organized
Beetle patrol
Beetle finds and eats cucumber
Beetle attacks player on the ground
Beetle stands to attack
Summary
Adding a Heads-Up Display
Designing our Heads-Up Display
Working with a canvas
Adding the canvas
Adding the health bar UI components
Creating the Lives Remaining UI components
Adding the scoring UI components
Adding the cherry UI components
Adding the cucumber and Cucumber Beetle UI components
Creating a mini-map
Scripting for dynamic content
Scripting the cucumber count
Scripting the beetle count
Summary
Scripting Our Points System
Collecting cherries from trees
Detecting collisions of Cucumber Man and cherry trees
Simulating the collection of cherries
Updating the inventory and HUD with cherry count
Adding the cherry-throwing capability
Creating a spot for the cherry
Writing a CherryControl script
Adding points based on cherry collection and combat hits
Creating a points manager script
Adding points for each cherry picked
Adding points for hitting a beetle with a cherry
Summary
Scripting Victory and Defeat
Designing victory and defeat conditions
Updating the player's health
Scripting the health bar
Decrementing health
Implementing victory
Implementing defeat
Scripting defeat based on no cucumbers remaining
Scripting defeat for no lives remaining
Updating the HUD with lives remaining
Scripting the player character's respawning 
Summary
Adding Audio and Visual Effects to Our Game
Discovering Unity's audio system
Unity audio basics
Unity's Audio Mixer
Planning our game's audio
Implementing our game's audio
Importing audio assets
Implementing the Cucumber Beetle audio
Implementing the Cucumber Man audio
Introduction to Unity's lights and shadows
Adding light sources
Directional light
Point light
Spot light
Area light
Shadows
Discovering Unity's special effects
Particle System
Trail Renderer
Adding visual effects to our game
Adding a Point light to our cherry trees
Add a special effect using the Particle System
Summary
Optimizing Our Game for Deployment
Using the Profiler window
Getting more out of the Profilers
Optimizing scripts
Optimized code example
Optimizing graphics rendering
Occlusion culling
Lighting
Mesh renderer
Additional optimizations 
Level of detail
Static colliders
Creating builds
Understanding the Unity build process
Build settings
PC, Mac, and Linux standalone
iOS
tvOS
Android
HTML 5/WebGL
Xbox One
PlayStation 4 and PlayStation Vita
Player Settings
Summary
Virtual Reality
Welcome to virtual reality
Development tools
Oculus
GearVR
OpenVR
PlayStation VR
Enabling virtual reality in Unity
Requisite SDKs
Configuring your Unity project
Recommendations from Unity technologies
Starter content
Oculus VR
Oculus Sample Framework
Oculus Stereo Shading Re-Projection Sample
Oculus Integration
Vive software
Vive Stereo Rendering Toolkit
Vive Input Utility
Vive Media Decoder
NVIDIA
NVIDIA VRWorks
NVIDIA VR Samples
Unity Technologies
Summary
Other Books You May Enjoy
Leave a review - let other readers know what you think
With the pervasiveness of games and the use of gamification in nearly every industry, the desire to discover how to use state-of-the-art development software has never been so great. There is an increasing number of software tools available to help developers create amazing games for consoles, the web, desktop computers, and mobile devices. Game engines are among the most powerful of these tools available. The Unity 3D game engine is one of the elite game engines. It has been used to create popular 2D and 3D games by large game studios and indie developers. With a free version available, and the newest release of Unity, the time has never been better to start using Unity.
Getting Started with Unity 2018, Third Edition covers one of the most popular game engines available. This book will guide you through the entire process of creating a 3D game, from downloading the Unity game engine to publishing your game. You will enjoy the coverage of some exciting topics in this book, including player-controlled characters and animation. Whether you are just getting started as a game developer or have experience with Unity or other game engines, this book will provide you with a guided tour of developing games with Unity 2018. With clear explanations, tips, and ample screenshots, you will be provided with detailed steps to develop your game.
This book takes a practice hands-on approach to learning Unity 2018. As you progress through each chapter, you will build a 3D interactive game called Cucumber Beetle. As you create the game, you'll learn the key features of Unity 2018, including creating a game environment, animating characters, scripting, and more. All meshes, models, textures, animations, and other assets are available on the book's website.
By the time you complete the lessons in this book, you'll have the confidence to start using Unity 2018 to create your own games.
This book is written for people new to Unity or those who have some experience with a version prior to Unity 2018. If you want to take a look at Unity 2018, get a refresher, or if you just want to see how games can be developed with a top game engine, this book is for you.
Chapter 1, Downloading and Installing Unity, gives an overview of game engines, followed by a deep look at Unity's beginnings, where the game engine is today, and how it progressed to being one of the top game engines in use today. Unity's capabilities and features are highlighted, and instructions are provided for downloading and installing it.
Chapter 2, The Unity Interface, examines Unity's primary views, windows, layouts, and the toolbar. The interface components covered in this chapter are the ones used most often.
Chapter 3, Designing the Game, covers the design of the book's featured game—Cucumber Beetle. The game design includes gameplay, game mechanics, the player character, the non-player characters, game assets, animations, and more. Screen mock-ups and narratives are used to document the game's design.
Chapter 4, Creating Our Terrain, features the creation and customization of game terrain. Shaping tools are introduced, and water and vegetation features are added to the game environment.
Chapter 5, Lights, Cameras, and Shadows, explores cameras and lighting in Unity. The chapter starts with a look at cameras to include perspectives, frustums, and Skyboxes. The use of multiple cameras to include mini-maps is covered. Different types of lighting, reflection probes, and shadows are also explored.
Chapter 6, Creating and Importing 3D Objects for Our Game, focuses on making the game environment more robust, and trees and other objects are added to the game scene. This chapter also examines the steps necessary to create 3D objects using Unity's native modeling tools. Assets are added to the game from the Unity Asset Store and from 3D assets prepared specifically for the Cucumber Beetle game.
Chapter 7, Implementing Our Player Character, incorporates the game's player character—the Cucumber Man. The character is imported, and the controls and animations are reviewed. By the end of the chapter, the game will be ready for testing in the game mode.
Chapter 8, Implementing Our Non-Player Characters, explains the non-player characters—the Cucumber Beetles. The beetles' 11 animations are examined and changes are made to the non-player character's animation controller. In addition, scripts will be written to control the non-player characters. Also, in this chapter, cucumber patches, cucumbers, and cherries are added to the game world.
Chapter 9, Adding a Heads-Up Display, covers the design and development of, and how to incorporate, a Heads-Up Display (HUD) in the game. A canvas is used to create text and graphics that provide visual indicators of points, health, and additional information to help the player maintain situational awareness during game play. A mini-map is also implemented.
Chapter 10, Scripting Our Points System, looks at the design, scripting, and implementation of the game's point system. This includes providing frame-by-frame updates to key onscreen components of the game's HUD.
Chapter 11, Scripting Victory and Defeat, dives into the design and scripting of the game's victory and defeat conditions. Scripts will be updated to manage the Cucumber Man's health, provide frame-by-frame onscreen updates, and ensure that a player life is lost when the health runs out. Character lives and respawning are also covered.
Chapter 12, Adding Audio and Visual Effects to Our Game, demonstrates the plan and implementation of audio and visual effects in the game to help enhance overall game play. Specifically, audio is added to the key events in the combat system and several special effects, using Unity's particle system, are added to the game.
Chapter 13, Optimizing Our Game for Deployment, discusses optimization and deployment. The steps required to diagnose Unity games for performance problems are explored, in addition to how to optimize scripts and graphic rendering. The Unity build process is explained along with how to create a standalone player and how to deploy games for multiple platforms.
Chapter 14, Virtual Reality, examines Unity's capabilities with regard to virtual reality. An introduction to Virtual Reality is provided, including the hardware requirements. you will learn how to create a Virtual Reality game using the Unity game engine.
You do not need to have experience of programming, working with game engines, or knowledge of Unity to benefit from this book. No assumptions have been made regarding knowledge or experience.
The only software requirement is downloading and installing the Unity game engine. Those steps are detailed in the book, so no software is required before you start reading.
You can download the example code files for this book from your account at www.packtpub.com. If you purchased this book elsewhere, you can visit www.packtpub.com/support and register to have the files emailed directly to you.
You can download the code files by following these steps:
Log in or register at
www.packtpub.com
.
Select the SUPPORT tab.
Click on Code Downloads & Errata.
Enter the name of the book in the Search box and follow the onscreen instructions.
Once the file is downloaded, please make sure that you unzip or extract the folder using the latest version of:
WinRAR/7-Zip for Windows
Zipeg/iZip/UnRarX for Mac
7-Zip/PeaZip for Linux
The code bundle for the book is also hosted on GitHub at https://github.com/PacktPublishing/Getting-Started-with-Unity-2018-Third-Edition. In case there's an update to the code, it will be updated on existing GitHub repository.
We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!
We also provide a PDF file that has color images of the screenshots/diagrams used in this book. You can download it here: http://www.packtpub.com/sites/default/files/downloads/GettingStartedwithUnity2018ThirdEdition_ColorImages.pdf.
There are a number of text conventions used throughout this book.
CodeInText: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: "Ensure the Skybox folder is selected in the Project panel"
A block of code is set as follows:
public AudioSource audioSource;public AudioClip eating;public AudioClip attack;public AudioClip die;
Bold: Indicates a new term, an important word, or words that you see onscreen. For example, words in menus or dialog boxes appear in the text like this. Here is an example: "Select Fill option from the HUD_canvas."
Feedback from our readers is always welcome.
General feedback: Email [email protected] and mention the book title in the subject of your message. If you have questions about any aspect of this book, please email us at [email protected].
Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book, we would be grateful if you would report this to us. Please visit www.packtpub.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details.
Piracy: If you come across any illegal copies of our works in any form on the Internet, we would be grateful if you would provide us with the location address or website name. Please contact us at [email protected] with a link to the material.
If you are interested in becoming an author: If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, please visit authors.packtpub.com.
Please leave a review. Once you have read and used this book, why not leave a review on the site that you purchased it from? Potential readers can then see and use your unbiased opinion to make purchase decisions, we at Packt can understand what you think about our products, and our authors can see your feedback on their book. Thank you!
For more information about Packt, please visit packtpub.com.
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
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.
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.
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 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
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.
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.
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 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.
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 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.
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 further information 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.
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.
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 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.
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 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
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
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.
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
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
