Davis / Baptiste / Craig | Unity 3D Game Development | E-Book | sack.de
E-Book

E-Book, Englisch, 370 Seiten

Davis / Baptiste / Craig Unity 3D Game Development

Designed for passionate game developers—Engineered to build professional games
1. Auflage 2022
ISBN: 978-1-80107-723-1
Verlag: De Gruyter
Format: EPUB
Kopierschutz: 0 - No protection

Designed for passionate game developers—Engineered to build professional games

E-Book, Englisch, 370 Seiten

ISBN: 978-1-80107-723-1
Verlag: De Gruyter
Format: EPUB
Kopierschutz: 0 - No protection



This book, written by a team of experts at Unity Technologies, follows an informal, demystifying approach to the world of game development.
Within Unity 3D Game Development, you will learn to:
Design and build 3D characters and game environments
Think about the users' interactions with your game
Develop an interface and apply visual effects to add an emotional connection to your world
Gain a solid foundation of sound design, animations, and lighting
Build, test, and add final touches
The book contains expert insights that you'll read before you look into the project on GitHub to understand all the underpinnings. This way, you get to see the end result, and you're allowed to be creative and give your own thoughts to design, as well as work through the process with the new tools we introduce.
Join the book community on Discord to read this book with Unity game developers, and the team of authors. Ask questions, build teams, chat with the authors, participate in events and much more. The link to join is included in the book.

Davis / Baptiste / Craig Unity 3D Game Development jetzt bestellen!

Weitere Infos & Material


Table of Contents - A Primer to the Third Dimension
- Design and Prototype
- Programming
- Characters
- Environment
- Interactions and Mechanics
- Rigid Bodies and Physics Interaction
- User Interface and Menus
- Visual Effects
- Sound Effects
- Build and Test
- Finishing Touches
- Bonus: Other Unity Tools!


1


A Primer to the Third Dimension


Welcome!

It’s a pleasure to have you join us on this journey to learn the fundamentals of 3D game development. Firstly, we will introduce you to the team who wrote this book.

  • Travis Bapiste (3D Artist) directed the art, modeled every model in the game, rigged the character, and helped define the design of the story.
  • Russell Craig (Sr. Software Engineer) created the scripts for the mechanics.
  • Ryan Stunkel (Sound designer) created and implemented all the sounds throughout the project.
  • Anthony Davis (Sr. Technical Artist) wrote the book, managed the project, built effects and shaders, and polished the project.

Ensuring we brought out the best of our collective experience of over 50 years (with 4 brains behind every page in this book) was a roller-coaster (and too much fun!) each day. We’ve spent over six months and two revisions to the entire book (as well as hundreds of GIFs that we have exchanged during the process) to include the most suitable use-cases that explain new concepts and, most importantly, offer a teaching approach that works. In the end, we believe we’ve successfully created a book that would have shaped the trajectory of our careers in game development and pushed us ahead by at least 3-5 years.

This book will equip you with all the tools you’ll need to start building; however, you might need more support and advice en-route to turn your ideas into creations.

That’s where our Discord server comes into play. It introduces the element of interactivity for us to connect, read the book together and have a conversation about your 3D game projects. I am available on Discord more than ever to ensure you get through with the book with ease, so please feel free to come say hi and ask any questions!

Don’t forget to drop in your quick intro in the channel when you join in: https://packt.link/unity3dgamedev

Well, let’s get started!

Goal of this book


Our goal with this book is to enable every reader to build the right mindset to think about 3D games, and then show them all the steps we took to create ours. An absolute beginner is welcome to work through this book, however the topics may ramp up in difficulty quite quickly. Though difficult, if you stick with it, you will have taken multiple steps towards mastery in game development. The main target audience for this book is those with some prior knowledge in game development, though regardless of your experience, we hope to create an enjoyable learning journey for you. The concepts we will cover soon become complex with characters, programming, design patterns, and more that we’ll learn.

To make the best use of the book, I’d recommend you follow the approach below:

  • Read through the chapters, deliberately taking breaks to think about the concepts.
  • When something is brand new, check our project in GitHub to see if viewing it in action can help explain it further. If it doesn’t, take to Google to do your own research on it.
  • If something isn’t available in the project, send me a message over Discord or seek help from peers in the community server—the link is shared above.
  • Move on to the next section and repeat!

This approach will allow you to take ownership over the areas you struggle with; once you have gone through the process, you can seek help from peers. The problems that you encounter may also be encountered by others. Solving them and bringing them to the Discord or having your peers help with the solution emboldens the overall knowledge of the community.

This book is designed for you to read through our approach and then look into the project to understand all the underpinnings. It’s more important to understand the design of why we did what we did first. We take time to go over fundamentals of the Unity interface as well, but tech can be learned over time with plenty of resources online.

Some things you will not find in here are how to model characters, rig, or animate them. We speak very little about this process as that is its own training. We go over why we designed our character the way we did, to help you on your journey to do the same. The project has all the animations and cinematics in it, so the final products are available to see the results of our work. This approach is a strong way to learn, and we teach you why things are done the way that they are. This way, you get to see the end result, and you’re allowed to be creative and give your own thought to design, as well as work through the process on your own with new tools while working your way through the chapters.

Lastly, before we sink our teeth into the content, we’d like to advise you to open the GitHub repo, navigate to the folder, and play it for yourself. This will help you to see what our small team put together in its complete form. After playing it through, you can visualize what we went through while building this project from the start.

Let’s dive into what topics we will cover in this chapter:

  • Coming around to 3D
  • Essential Unity concepts
  • The Unity interface

Let’s get started by familiarizing ourselves with the basic components of 3D game development.

Coming around to 3D


We will be going over a basic understanding of 3D work within this section. From coordinate systems to the makeup of how the 3D model is rendered, we will only go surface-level to ensure that you fully understand the foundations as you progress through this journey. By reading through this, you will gain a strong understanding of how Unity displays items.

Coordinate systems


3D coordinate systems are not all the same in each 3D application! As is demonstrated in , Unity is a left-handed world coordinate system with facing upward. Looking at you can visualize the difference between left-handed and right-handed systems.

Figure 1.1: Coordinate systems

While we work within these coordinate systems, you will see the positions of objects represented in an array of three values within parentheses as follows:

This represents () respectively. This is a good habit to get into as programming utilizes very similar syntax when writing positions within scripts. When we talk about position, it is commonly referred to as the inside whichever Digital Content Creator (DCC) you’re using. In Unity, the transform holds position, rotation, and scale.

Now we understand the world coordinates, , and that those coordinates each start at 0, represented by . In below, where the colored lines meet is in the world. The cube has its own , which encompasses that object’s , rotation, and scale. Keep in mind that holds the local position, rotation, and scale. World are calculated from this following their hierarchy.

Figure 1.2: 3D coordinate system

The cube in is at . This is called world space as the item’s is being represented through the world’s coordinates starting from .

Figure 1.3: World space vs local space

Now that we know the cube’s is in relation to the world , we will go over the parent-child relationship that describes the local space. In above, the sphere is a child of the cube. The sphere’s local position is in relation to the cube. Interestingly, if you now move the cube, the sphere will follow as it’s only offset from the cube and its will remain in relation to the cube.

Vectors


Traditionally, a vector is a unit that has more than one element with a direction. In a 3D setting, a will look very similar to what we’ve worked with so far. is a ! Vectors are used in very many solutions for game elements and logic. Usually, the developer will normalize vectors so, that way, the magnitude will always equal 1. This allows the developer to work with the data very easily as 0 is the start, 0.5 is halfway, and 1 is the end of the vector.

Cameras


Cameras are incredibly useful components! They humbly show us their perspective, which allows our players to experience what we are trying to convey to them. As you may have guessed, a camera also has a , just like all GameObjects (which we will describe later in the chapter) in the hierarchy. Cameras also have several parameters that can be changed to obtain different visual effects.

Different game elements and genres use cameras in different ways. For example, the game uses static cameras to give a sense of tension, not knowing what’s outside the window or around the corner, while pulls the camera in close while the player character Lara goes through caverns, giving...


Davis Anthony:
Anthony Davis is a Sr. Tech Artist with AI at Unity. His experience led to a great many hats learning all facets of game development.Baptiste Travis:
Travis Baptiste is an Artist, father, gamer, and veteran. As a Freelance 3D Artist, he has sharpened his skills through modeling and rendering 3D assets and sketching concepts for projects.Craig Russell:
Russell Craig is a Sr. Software Engineer at Unity. He has 10 years of professional Unity simulation experience in the areas of app development, product hardware/firmware, sensor and medical training simulations, and AR/VR development.Stunkel Ryan:
Ryan Stunkel is a professional sound designer for video games who runs Blipsounds. In addition, Ryan is also a teacher and mentor to a community of sound designers through his youtube channel.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.