35,99 €
CRYENGINE is a game engine developed by Crytek for PC, Playstation, Xbox, Android, and iOS. It can be used to create AAA games, movies, high-quality simulations, and interactive applications. It is most popularly used for game development.
In this book, you will start off by exploring the CRYENGINE “Blank” Game Starter-kit, creating a completely playable character from scratch and controlling its movement. You will learn how to implement a weapon and ammo class, and will create complete “start” and “end” game menus using Scaleform and C++.
Additionally, you will learn some key texturing techniques for PBR and how to create and bake maps to the lowpoly model. You will also explore how to get a static model from Maya and shaders setbup in the SDK to check the textures during creation, and create all the necessary engine files to export and see the game character's animations in your engine.
In the final third of the book, you will learn how to create objectives, set up saved games, layer on audio polish to help immerse the player in the experience, and debug game issues.
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Seitenzahl: 325
Veröffentlichungsjahr: 2015
Copyright © 2015 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 authors, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be 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.
First published: August 2015
Production reference: 1250815
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-78439-987-0
www.packtpub.com
Authors
Richard Gerard Marcoux III
Chris Goodswen
Riham Toulan
Sam Howels
Reviewers
Anthony Barranco
Keith Homola
Guillaume Puyal
Commissioning Editor
Usha Iyer
Acquisition Editors
Indrajit A. Das
Rebecca Youé
Content Development Editor
Mamata Walkar
Technical Editor
Taabish Khan
Copy Editor
Roshni Banerjee
Project Coordinator
Shipra Chawhan
Proofreader
Safis Editing
Indexer
Priya Sane
Graphics
Abhinash Sahu
Production Coordinator
Nitesh Thakur
Cover Work
Nitesh Thakur
Richard Gerard Marcoux III is a very hardworking and intelligent software engineer with a passion for teaching and helping others. He has captured the attention of over 600,000 people through his YouTube channel with his efforts to educate beginners in the field of game development using the CRYENGINE technology. He also has an extensive IT background, working in the computer / software diagnosis / repair field for the past 7 years. Lately, he has been heavily involved in C++ games and middleware development, where he plans to create compelling 2D and 3D video games for all ages in genres ranging from platform games all the way to RPGs.
Chris Goodswen is a 3D character artist currently working at Crytek with 4 years of experience working with CRYENGINE. He has also worked on Ryse: Son of Rome for Xbox One as well as Warface and Hunt.
Chris is responsible for modeling and texturing characters as well as developing technical systems for characters; alongside this, he also works with universities, mentoring students and giving lectures on 3D character art and video game development.
Riham Toulan is a senior technical artist/animator working at Dice EA, who specializes in character rigging. She has more than 4 years of experience working with CRYENGINE. She worked on the highly cinematic Xbox One launch game Ryse: Son of Rome at Crytek, where she was responsible for developing rigging pipelines and tools in Maya, helping the R&D team develop new CRYENGINE technologies, and consulting the CRYENGINE licensees.
Sam Howels is a senior designer at the Nottingham-based Deep Silver Dambuster Studios. He is currently working on the upcoming sequel to the 2011 game Homefront, titled Homefront: The Revolution. He was recruited at the age of 18 after his dedicated contribution to the modding scene. He has a strong passion for technical problem solving as well as creating engaging and diverse gameplay experiences. Before joining Deep Silver, he worked on multiple AAA titles at both Crytek Frankfurt and Crytek UK, and he has over 8 years of experience in developing content with the CRYENGINE toolset.
Firstly, I would like to thank Crytek for creating such a powerful toolset for designers like me to use and abuse. The versatility and ease of use that it offered when I discovered it in 2007 is still present today, and it has enabled numerous absurd prototypes as well as facilitated the creation of the final shipped content of each title I've worked on. I'd also like to thank the team at Packt for their continued support and feedback during the writing process. It has been a fulfilling experience being able to put pen to paper and share my knowledge of setting up the content with the engine SDK. Finally, I'd like to thank everyone I've worked with at both Crytek and Deep Silver. The teams that build the technology and games are comprised of incredibly special and talented people, and working with this game engine each day would not be nearly as rewarding as it is without sitting next to a hundred other people who pour their hearts and souls into the work they create.
Anthony Barranco is a software developer who has worked at several AAA game studios, such as Ubisoft, after receiving a degree from Marist College in Poughkeepsie, New York. He is an avid gamer and programmer; whether it's Unity, Unreal Engine, CRYENGINE, Source, or Construct 2, he has tried and loved them all. He encourages new and veteran software developers to try any of these engines and help contribute to make more great games. If there is one thing he believes in, it's that game development should be accessible to anyone and everyone.
I want to thank Packt Publishing for the opportunity, the authors for writing this book, and Crytek for making CRYENGINE. Books such as this helped me achieve my dream career, and I hope this book helps someone do the same.
Keith Homola is an independent game developer who dreams of working in a large studio one day. With dedication, he has learned the many different trades of game development, including programming, 3D and 2D art tools, and both the CRYENGINE and Unreal Engine 4 game engines. His experience comes from self-learning, and he puts it to use to make games and theory.
Keith has no formal employer in the game development field. All the experience that he has acquired is through his independent work, and he hopes to use his skills at a professional studio one day.
I would like to thank my friends and family for the support over the years, the online development communities for helping me and other people to explore game development, and Packt Publishing for giving me this opportunity.
Guillaume Puyal lives in France and can be described as an enthusiastic polymath. After completing his degree in electronics, he began working on an ambitious but commercially unsuccessful web technology.
Thereafter, his passion for video games led him to lean toward game development with the CRYENGINE technology. Here, his curiosity pushed him to learn everything from modeling to the UI, and he now specializes in the lighting and materials areas.
When he isn't experimenting and implementing his ideas in CRYENGINE or trying to improve his programming skills, he works on his new software project, which he hopes to introduce to the world soon.
You can learn more about him and his work, including a CRYENGINE specific tool and documents, at http://www.guillaume-puyal.com.
I would like to thank the authors and the team at Packt Publishing for giving me the unique opportunity to review this book.
For support files and downloads related to your book, please visit www.PacktPub.com.
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.
https://www2.packtpub.com/books/subscription/packtlib
Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can search, access, and read Packt's entire library of books.
If you have an account with Packt at www.PacktPub.com, you can use this to access PacktLib today and view 9 entirely free books. Simply use your login credentials for immediate access.
This book is authored by Richard Marcoux, Chris Goodswen, Riham Toulan, and Samuel Howels; they will be your instructors and friends throughout this book. You are about to embark on a journey of discovery and find out what you can achieve in CRYENGINE, learn some tricks of the trade, the game programming techniques, the new aspects of the CRYENGINE code, and most importantly, how to create full working games. If there is one thing that we want you to take away after reading this book is that it's not the game we will be making, but instead the techniques and the problem solving that went into making it. The goal is to arm you with the knowledge and out-of-the-box thinking that is required to create a CRYENGINE game.
Chapter 1, Getting Started, shows you the CRYENGINE "Blank" Game Starter-Kit that was specifically designed to teach developers how to create a CRYENGINE game from scratch, and provide a blank slate for them to start with. You will install and compile this kit.
Chapter 2, Creating a Playable Character, shows you how to create a completely playable character from scratch and control its movement with the keyboard.
Chapter 3, Implementing Weapons and Ammo, shows you how to implement a weapon and ammo system, as the player will need a way to defeat bad guys.
Chapter 4, Creating an Enemy AI, shows you how to create an enemy AI and give it some basic intelligence.
Chapter 5, Creating User Interfaces, shows you how to create a complete start and end game menu by using Scaleform, Flash, and C++.
Chapter 6, The Modeling Workflow for Game Characters and Tools, gives an overview of the character art workflow principles, terminologies, and how to prepare for the tasks ahead.
Chapter 7, Highpoly Modeling, discusses why we need to create a highpoly model and its uses in the game in current and next-gen game development. In this chapter, we will be working with some of the principles of highpoly modeling and going through a basic workflow to create the highpoly model in Zbrush.
Chapter 8, Lowpoly Modeling, covers the lowpoly generation and some of the most important areas to remember, such as efficient topology, areas to remember for deformation, other important topics, such as an efficient UV mapping, and how to generate LODs from the original lowpoly.
Chapter 9, Texturing and Materials, explores the techniques required to create and bake textures. In this chapter, we will take a look at the tools, such as Photoshop and Zbrush, used for creating texture maps, how to bake the highpoly information to the lowpoly model by using xNormal, and also see how these baked maps can be used in the creation of textures.
Chapter 10, Building the Character Rig, shows you how to build an animator friendly rig for the character in Maya. We will also discuss the folder structure for the character files and explore the already made deformation skeleton on the character, and how to create a simple and efficient rig using that skeleton.
Chapter 11, Exporting the Character to CRYEngine, shows you how to export a character to CRYENGINE step-by-step and explains the animation pipeline and how to use Character Editor to debug and add extra secondary animations to your characters with CRYENGINE physics.
Chapter 12, Initial Level Blockout and Setup, covers the good working practices and tips used for quickly jumping into making a new level in the SDK, giving us a good base to start adding more complex scripted content later on.
Chapter 13, The Flow Graph Workflow, introduces you to the concept of Game Tokens to communicate with the Flow Graphs. We'll also cover how to set up the level logic to modularly accommodate the various scripted elements that go into making a single player level in CRYENGINE.
Chapter 14, Scripting Gameplay Content, dives deep into creating all the elements that make up a Crysis style action bubble, as we now have a solid grounding in how to efficiently and cleanly produce content for a level in CRYENGINE.
Chapter 15, Maintaining Our Work, covers testing the content or fixing the bugs that take place in the last few minutes of a half hour level, which can be a repetitive and time-wasting process.
In this book, we would be using the following software:
This book is intended for CRYENGINE game developers wanting to develop their skills with the help of industry experts. You need to have a good knowledge level and understanding of CRYENGINE in order to allow the efficient programming of core elements and applications.
Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or disliked. Reader feedback is important for us as it helps us develop titles that you will really get the most out of.
To send us general feedback, simply e-mail <[email protected]>, and mention the book's title in the subject of your message.
If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide at www.packtpub.com/authors.
Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.
You can download the example code files from your account at http://www.packtpub.com for all the Packt Publishing books you have purchased. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.
We also provide you with a PDF file that has color images of the screenshots/diagrams used in this book. The color images will help you better understand the changes in the output. You can download this file from https://www.packtpub.com/sites/default/files/downloads/B03477_Graphics.pdf.
Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you could report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded to our website or added to any list of existing errata under the Errata section of that title.
To view the previously submitted errata, go to https://www.packtpub.com/books/content/support and enter the name of the book in the search field. The required information will appear under the Errata section.
Piracy of copyrighted material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works in any form on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.
Please contact us at <[email protected]> with a link to the suspected pirated material.
We appreciate your help in protecting our authors and our ability to bring you valuable content.
If you have a problem with any aspect of this book, you can contact us at <[email protected]>, and we will do our best to address the problem.
In this chapter, we will discuss the following topics:
In order to create any CRYENGINE game, there is a need to have a clear place to start. For us, this comes as a blank slate using my very own starter-kit. By using it, we rid ourselves of overcomplications and gain several advantages:
Now that we know why we will be using my starter-kit, let's see how to download it:
For the sake of clarity and consistency, even if there is a newer version of the starter-kit available, it is strongly recommended that you stick with Version 2.1.0. Version 2.1.0 of the starter-kit is fully compatible with CRYENGINE Version 3.8.1 and, as such, it is strongly recommended that you use that version for the remainder of this book.
Before the starter-kit can be used, it must be installed. Installing the starter-kit is very easy and it is responsible for adding a project wizard to Visual Studio and setting up the needed CRYENGINE environment variables. So let’s get started.
Now that we have downloaded the starter-kit, it's time to install it:
It is important to note that CRYENGINE's Code folder is the one that contains all of CRYENGINE's code. It contains the CryENGINE, GameSDK, and SDKs subfolders. In the event that you do not have a Code folder at all, you will need to extract CRYENGINE_GameCode_xxxxx or a similar zip archive located in CRYENGINE's root folder. It is very important that the Code folder is in the right location. There should be exactly 2 subdirectories in CRYENGINE’s root folder, like this: CRYENGINE_ROOT/CRYENGINE_pc_eaascode/Code.
Now that we have successfully installed the CRYENGINE "Blank" Game Starter-Kit into Visual Studio, we can create our CRYENGINE game project:
For this book, I will be using Visual Studio 2013 Ultimate. You are free to use any supported version you wish. However, you may notice some slight differences. Current supported versions of Visual Studio include any edition of 2012, 2013, and 2015.
You are free to choose whatever name and location you wish. However, I strongly recommend you choose a location outside your CRYENGINE install directory. Throughout this book, we will be calling our game project GAS, which stands for Great Action Side-Scroller. Make sure to uncheck Create directory for solution.
Since we have chosen to call our game GAS, it is recommended to set Project Name as GAS too. Also, it is strongly advised that you check the Include PluginSDK and Set As Active Game options. Including the PluginSDK developed by Hendrik Polinski allows users to add plugins to their game without modifying any actual game code. The advantage is that everything is modularized and features can be bundled up and shared between many projects. If you would like to get in contact with Hendrik, you can do so at https://github.com/hendrikp. Setting our game as active allows CRYENGINE to detect and use our game by modifying the system.cfg file in CRYENGINE's root folder. Although this is all advised, you are free to fill in the data however you wish.
Click on the Create button. After the project has been created, you will get the following screen:As we have concluded the setting up of the starter-kit, it is probably a good time to bring up a few disclaimers:
To address the previous concerns, let's take a closer look at some of the more important classes within the starter-kit that we will be using on a regular basis, keeping in mind that the names of these classes will be different for you as they are based on the project's name:
It is strongly advised that if you create a custom system for your game, you should add and implement a singleton get method, as shown in the other get methods in this class.
By now, you should have a good understanding of what each of the classes do and what they are used for. For a more thorough understanding, you may want to take a look at the in-code documentation.
Now that we have all of the setup ready and have a clear understanding of what all of the important classes in our game do, let's compile our project. Get ready to venture into the world of game programming and create the Great Action Side-Scroller.
Right-click on your game project in the Solution Explorer and click on Build, as shown here:
This concludes the chapter. If you come across any issues while compiling the game project, I suggest that you take a look at the starter-kit Crydev forum thread at http://www.cryengine.com/community/viewtopic.php?f=355&t=124265. In this chapter, you learned how to download and install my CRYENGINE "Blank" Game Starter-Kit, what all of the important classes in the kit do, and how to compile a CRYENGINE game project. The future is very bright as we move forward with the rest of the book. Good job!