39,59 €
With every successive console generation, the cost, time, and complexity of developing games has grown. Meet CryENGINE3, a middleware engine that is the perfect fit for most developers allowing users to exceed current generation quality standards while using less people and time than ever thought possible.The CryENGINE3 CookBook is packed full of recipes for junior and senior developers alike. It covers everything from creating photo realistic architectural visualizations to implementing advanced physics such as ragdoll and tornado effects. Topics covered include the sandbox, level layout, environment creation, AI, character creation, creating vehicles, and game logic. Every recipe is designed to add AAA quality to your games. The CryENGINE3 SDK has many tools immediately available to developers of all disciplines. For designers the book has recipes for building up your own levels and populating your levels with intelligent AI and photo realistic assets. For artists we have recipes for practical workflow tools and techniques used when working with the advanced CryENGINE shaders and materials. For animators we have recipes that will bring your creations to life using skinned characters and advanced animation systems like locomotion groups. Finally for programmers we have recipes that show how to employ the core mechanics behind entities such as vehicles and weapons while also utilizing the strengths of the physics engine to create a unique and exciting game.
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Seitenzahl: 374
Veröffentlichungsjahr: 2011
Copyright © 2011 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: June 2011
Production Reference: 1170611
Published by Packt Publishing Ltd.
32 Lincoln Road
Olton
Birmingham, B27 6PA, UK.
ISBN 978-1-849691-06-2
www.packtpub.com
Cover Image by Sean Tracy (<[email protected]>)
Authors
Sean Tracy
Dan Tracy
Acquisition Editor
Steven Wilding
Development Editor
Alina Lewis
Technical Editor
Aditi Suvarna
Copy Editor
Laxmi Subramanian
Indexer
Rekha Nair
Project Coordinator
Zainab Bagasrawala
Proofreader
Aaron Nash
Graphics
Geetanjali Sawant
Production Coordinator
Shantanu Zagade
Cover Work
Shantanu Zagade
Sean Tracy is Crytek's Senior Field Application Engineer for the award-wining CryENGINE. He is responsible for adapting the engine and its features to individual licensees, as well as developing full technical and vertical slice demos for prospective and existing clients. Describing himself as a generalizing specialist, he also gives support directly to CryENGINE licensees, while designing and maintaining their workflows, pipelines, and development techniques.
Sean was recruited by Crytek in 2008 after working as an electronics technician for the Canadian Military. He was recruited due to his role in founding and leading the development on the award winning total conversion project MechWarrior: Living Legends. Since then, he has been featured in numerous gaming magazines and has been invited to speak at many game related trade shows and seminars. He is an avid gamer with extensive modding experience on titles including Never Winter Nights, the Battlefield engine Frostbite, Doom, and Quake.
I would like to thank my wife for her understanding and support throughout the process of writing this book and for her ongoing support in allowing me to do what I truly enjoy for a living. I would also like to thank my brother for co-authoring the book with me as it's a pleasure to be able to work with someone with the same love for the technology as I have. Finally, I'd like to thank Crytek and Packt for their support in allowing me to write this book and for making one of the best game engines in the market.
Dan Tracy is Crytek's Technical Level Designer for the award-winning CryENGINE and Crysis 2. He is responsible for the creation and maintenance of numerous technical features and external applications used for telemetry and optimization. Viewed as more than a level designer, Dan prides himself on pushing the envelope when it comes to improving both technical and game related designs across multiple production disciplines.
Dan was recruited by Crytek in 2009 after previously working as a Quality Assurance Technician for BioWare. He was recruited due to his pivotal role in co-founding and leading development on the award winning total conversion project MechWarrior: Living Legends. Since then, he has been featured in numerous gaming magazines and has been interviewed by multiple media outlets. Dan is a passionate gamer, but an even more passionate modder and game designer, with vast knowledge and experience with multiple engines and titles including Never Winter Nights' Aurora, Battlefield's engine Frostbite, Unreal 3, and CryENGINE. This is Dan's first book.
I would like to thank my friends and family for giving me their support during the crunch time of the Crysis 2 production, which also paralleled the creation of this book. If it wasn't for them, this wouldn't have been possible. I would also like to thank my brother for co-authoring the book with me as well as Crytek for providing me with this amazing opportunity to share my knowledge of CryENGINE with the world. Finally, I'd like to thank Packt for their support and setting this whole project in motion and publishing my first ever book.
You might want to visit www.PacktPub.com for support files and downloads related to your book.
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.
http://PacktLib.PacktPub.com
Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can access, read, and search across 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 nine entirely free books. Simply use your login credentials for immediate access.
With the overall complexity involved in creating games becoming exceedingly difficult and expensive with every successive console generation, many game developers have turned to middleware engines, such as the CryENGINE, that offer a complete pipeline for the game development process. CryENGINE is a perfect fit for most developers as it allows users to create their content quickly and easily and thus, allow games to meet and exceed current generation quality standards and still be created by fewer and fewer people.
As CryENGINE 3 is globally recognized as one of the world's most powerful real-time middleware development platforms, with this book we will deliver the best of what the engine has to offer. Through the use of CryENGINE's intuitive and powerful toolset, named Sandbox, designers, artists, animators, and even programmers will be treated to real-time creation and iteration tools for bringing their visions to life.
Chapter 1, Getting Started, helps you set up the entire CryENGINE 3 Software Development Kit, which can be a difficult task. This chapter will guide you through the stages in setting up the required folder structure and how to set up your layout for the Sandbox Editor.
Chapter 2, Sandbox Basics, helps you to learn the basic and most commonly used features provided by Sandbox.
Chapter 3, Basic Level Layout, helps you create your first Level Layout within the Sandbox Editor and learn some of the more advanced techniques used by designers for object placement and manipulation.
Chapter 4, Environment Creation, utilizes the CryENGINE 3 rendering tools to create photorealistic environments.
Chapter 5, Basic Artificial Intelligence, helps you learn the basics of how to the use AI to navigate in your levels.
Chapter 6, Asset Creation, helps you learn the pipeline of asset creation and export your 3D models to the CryENGINE format.
Chapter 7, Characters and Animation, describes how to create new characters to be used in the engine along with your own custom animations.
Chapter 8, Creating Vehicles, describes how to create a new vehicle from scratch and set up the entity code required so your players can drive.
Chapter 9, Game Logic, helps you to get started with the highly versatile Flow Graph Editor and create many useful scripts used in the level.
Chapter 10, Track View and Cut-Scenes, helps you to learn how to create your own cinematic cut-scenes within CryENGINE.
Chapter 11, Fun Physics, describes how to set up some enjoyable physics contraptions using CryENGINE 3's physics system.
Chapter 12, Profiling and Improving Performance, helps you to learn the tools behind profiling your levels and discover the best methods for improving performance.
The Software Development Kit version of the CryENGINE is used for all examples in this book, thus, the reader should have a version of the development kit to be able to follow the recipes contained in this book.
This book is written with the casual and professional developer in mind. With that said, it is important that the readers have some fundamental knowledge of some Digital Content Creation Tools, such as Photoshop and 3d Studio Max. Though not a fundamental requirement, having some basic knowledge of real-time graphics software and, consequently, the terminology used will make the goal of these recipes more clear.
In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning.
Code words in text are shown as follows: "The level must also be inside of your Build folder."
A block of code is set as follows:
When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:
New terms and important words are shown in bold. Words that you see on the screen, in menus or dialog boxes for example, appear in the text like this: "To open an existing level, we need to access the File menu."
Warnings or important notes appear in a box like this.
Tips and tricks appear like this.
Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.
To send us general feedback, simply send an e-mail to <[email protected]>, and mention the book title via the subject of your message.
If there is a book that you need and would like to see us publish, please send us a note in the SUGGEST A TITLE form on www.packtpub.com or e-mail <[email protected]>.
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 on 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 for all Packt books you have purchased from your account at http://www.PacktPub.com. 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.
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 would 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/support, 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 on our website, or added to any list of existing errata, under the Errata section of that title. Any existing errata can be viewed by selecting your title from http://www.packtpub.com/support.
Piracy of copyright 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.
You can contact us at <[email protected]> if you are having a problem with any aspect of the book, and we will do our best to address it.
In this chapter, we will cover:
The main focus of this particular chapter will be in getting the CryENGINE 3 Software Development Kit installed and having you up and editing a level in the Sandbox editor right away! One of the key things to keep in mind when learning a game compositing tool such as Sandbox is to remember to experiment and have fun! It is important not to forget that most of us (game developers) are trying to make things fun and not dreary and dull.
With such a powerful toolset waiting for you to dive in, let's get right to it!
As most people involved in the game's development process should be familiar with opening levels, this section will take you through the relatively straightforward task of opening a level within the CryENGINE 3 Sandbox editing tool.
Having already located the Editor.exe in either your bin32 or bin64 folders, it will now be started in this section.
If a level is not already loaded, the editor's subsystems can still access assets and resources from your game. Keep this in mind as some tasks don't require the loading of a level.
Let's get to opening a level:
The editor will now start to load this level for you to start exploring!
The editor reads the .cryfiles and can also access the subfolder layers within the level folder.
As the level loads, it reads the information present in the .cry file.
You may want to know what the .cry file is composed of or even how to apply console command changes to individual levels.
A .cry file is the principle level editing format for all levels built in the CryENGINE. It is actually an archive comprised of binary and XML data that is used only by the editor. You can open .cry files in the editor, or you can open them with an appropriate archiving program such as WinRAR.
Similar to the system.cfg, the level.cfg is a file that is executed upon the loading of a level. The level.cfg can simply be stored in the level's directory. You may add console variables or level-specific configurations to this file.
The ability to intuitively navigate levels is a basic skill that all developers should be familiar with. Thankfully, this interface is quite intuitive to anyone who is already familiar with the WASD control scheme popular in most First Person Shooters Games developed on the PC.
You should have already opened a level from the CryENGINE 3 Software Development Kit content and seen a perspective viewport displaying the level.
The window where you can see the level is called the Perspective Viewport window. It is used as the main window to view and navigate your level. This is where a large majority of your level will be created and common tasks such as object placement, terrain editing, and in-editor play testing will be performed.
The first step to interacting with the loaded level is to practice moving in the Perspective Viewport window.
Sandbox is designed to be ergonomic for both left and right-handed users. In this example, we use the WASD control scheme, but the arrow keys are also supported for movement of the camera.
The Viewport allows for a huge diversity of views and layouts for you to view your level; the perspective view is just one of many. The perspective view is commonly used as it displays the output of the render engine. It also presents you a view of your level using the standard camera perspective, showing all level geometry, lighting, and effects.
To experiment further with the viewport, note that it can also render subsystems and their toolsets such as flow graph, or character editor.
You will likely want to adjust the movement speed and how to customize the viewport toyour individual use. You can also split the viewport in multiple different views, which is discussed further.
The Speed input is used to increase or decrease the movement speed of all the movements you make in the main Perspective Viewport.
The three buttons to the right of the Speed: inputs are quick links to the .1, 1, and 10 speeds.
Top View, Front, and Left views will show their respective aspects of your level, consisting of bounding boxes and line-based helpers. It should be noted that geometry is not drawn.
Map view shows an overhead map of your level with helper, terrain, and texture information pertaining to your level.
Individual users can customize the layout and set viewing options specific to their needs using the viewport menu accessed by right-clicking on the viewports header.
The Layout Configuration window can be opened from the viewport header under Configure Layout. Once selected, you will be able to select one of the preset configurations to arrange the windows of the Sandbox editor into multiple viewport configurations. It should be recognized that in multiple viewport configurations some rendering effects may be disabled or performance may be reduced.
It would suffice to say that every user of Sandbox will have different preferences to how different views and toolsets should be distributed on screen. The CryENGINE 3 Sandbox allows for this kind of user-based customization and this recipe will take you through the use of some of the built-in tools for customizing your interface.
Before starting, it's important to introduce the view menu. The view menus allow you to turn various windows, toolbars, and subsystems on or off as well as open the various Sandbox extended editors and tool dialogs.
While experimenting with views, be aware that if you close a window and want to open it again, this can be done easily using the View | Open View Pane menu.
Another important toolset that you will likely want on your layout is the Rollup Bar.
The Rollup Bar is similar to the 3ds Command Panels for those already familiar with 3ds. It is a quick menu bar for the majority of the functions available to the editor exposed to the developer in an easily accessible format.
The final important tool you will likely want is the Console.
The Console is a direct command-line editor to the CryENGINE 3. This essentially allows access to various advanced functions within the Sandbox editor, including various debug and test profiles.
To start this tutorial, you should have Sandbox Editor.exe started.
The first step of customization will be to learn how to scale and move the various windows in Sandbox around:
Now that the window is docked, we should learn how to undock it:
You can also dock windows at the top and sides of other windows using the other docking buttons:
The docking helpers work very similar to windows office applications, so any users of those applications may be familiar with this system.
The save layout process creates a folder under the CryENGINE3/editor directory called layouts.
In this folder, it then saves a .layout file that is essentially an .xml file. This means that it could be edited by hand if required but can also be version controlled, which means multiple presets can be shared across large teams.
The Status Bar contains translation/rotation/scaling information for selected objects, editor interaction shortcuts, and camera controls.
The Console in the Sandbox editor is used to input variables. It can be visually toggled on or off by going to the View Menu and selecting View Console or by pressing the caret key (^) while the Perspective Viewport is selected.
In the editor, a full list of console variables can be accessed by double-clicking the input field on the Console to open the Console Variables window.
Search for variables with partial or complete commands. Information on individual variables can be shown by hovering the mouse over a Console Variable for a couple of seconds in the Console Variable window; text will then be displayed as a tool-tip.
The Toolbox is a set of user-defined tools that contains some example shortcuts to useful editor command lines and different functionality. It can also be added to with user-specific shortcuts and/or console variables.
This section will now introduce you to the various toolbars and menus available in the Sandbox. With these toolbars, users can very quickly access many of the features of the Sandbox editor by using simple icons and groups of icons at the top of the interface. These toolbars can be configured to fit the preferences and needs of individual users.
Before adjusting the toolbars, it is important that we explore a brief summary of the default toolbars that are available in Sandbox.
The Standard ToolBar contains open, save, hold, and fetch options.
The EditMode ToolBar contains various tools for level editing. These tools include undo and redo, link and unlink, select all, object movement/scaling, axes and terrain options, as well as object selection, saving, and loading.
The Object ToolBar contains tools for object alignment. The icons are go to selected object, align selection, align object to grid, set object(s) height, align object to the surface normal, and fix and unfix selected objects.
With the Mission ToolBar, you can select the current mission, duplicate a mission, delete a mission, and reload and edit mission scripts.
The Terrain ToolBar contains shortcuts to tools within the Terrain Editor, the Terrain Texture Layer editor, and Terrain Lighting dialog.
The Dialogs ToolBar contains icons used to access extender editor such as the Materials Editor, the Character Editor, the DataBase View, and the Flow Graph Editor.
The Console ToolBarhas options specific to console game development. The buttons include sync data to console, automatically sync data to console, sync camera, options, load current level on console, and launch current level on console.
Now that we know about the default toolbars, let's go ahead and set up our layout:
Toolbars can be arranged horizontally at the top of the editor, vertically on the edges, or completely undocked from the editor.
