PacktLib: CryENGINE 3 Game Development: Beginner's Guide

CryENGINE 3 Game Development Beginner's Guide

Credits

About the Authors

About the Reviewers

www.PacktPub.com

Preface

Introducing the CryENGINE 3 Free SDK

What is the CryENGINE?

Applying your vision

CryENGINE 3 Free SDK

Learning by example

Time for action – installing the CryENGINE 3 Free SDK

Time for action – load the sample map in the launcher

Visual Studio Express and C++ game code

Acquiring the sample source assets

Time for action – installation of the 3ds Max exporter Plugin

Time for action – downloading and opening the sample assets

Time for action – installing the Adobe Photoshop plugin-CryTif

CryENGINE 3 Sandbox

Time for action – starting Sandbox and WYSIWYP

Getting around in the Sandbox Editor

Time for action – manipulating the perspective camera

Handling level objects

Time for action – selecting and browsing objects

Time for action – saving our work

Summary

Breaking Ground with Sandbox

What makes a game?

Developing out of the box

Time for action - creating a new level

Time for action - creating your own heightmap

Using alternative ways for creating terrain

Time for action - creating some basic terrain texture layers

Time for action - creating some flora for your level

Time for action - setting up time of day and its basic parameters

Summary

Playable Levels in No Time

Building levels with entities and objects

Starting a level

Time for action - creating a spawn point

Landmarks to guide the player

Time for action - creating a road object

Time for action - creating and managing layers

Time for action - adding brushes to the level

White boxing

Time for action - creating constructive solid geometry

Time for action - place a basic AI entity

Time for action - creating your own archetype

Time for action - exporting your level to engine

Summary

I'm a Scripter, Not a Coder

Scripting and the CryENGINE 3

Lua usage in the CryENGINE 3

Visual scripting with Flow Graph

Scripted events

Time for action - making a Flow Graph to spawn the player at a specific location

Using trigger entities with Flow Graph

Time for action - adding a trigger to Flow Graph and outputting its status

AI scripting with Flow Graph

Time for action - creating a patrolling AI

Debugging Flow Graphs using the visual debugger

Time for action - debugging the patrol Flow Graph

Time for action - adding and removing breakpoints

Summary

C++ and Compiling Your Own Game Code

Installing Visual C++ 2010 Express Edition

Time for action - downloading and installing Visual C++ 2010 Express

Starting CryENGINE 3 with Visual Studio

Time for action - starting CryENGINE with the debugger attached

Breakpoints, watches, and code

Time for action - setting up your first breakpoint

Create a new Lua entity and call C++ code to interact with it

Time for action - creating a new entity

Time for action - placing your entity into your level

Time for action - making the teleporter usable

Time for action - writing a new scriptbind function in C++

Time for action - changing the teleporter entity to execute the C++ code

CryENGINE specific data types

Summary

User Interface and HUD Creation with Flash

Adobe Flash as a very powerful UI design tool

Time for action – creating a new Flash asset with Adobe Flash

Bringing your Flash asset into CryENGINE 3

Time for action – bringing your Flash asset into CryENGINE 3

Time for action – making functions, variables, and movieclips accessible in CryENGINE 3

Different alignment modes for UI elements

Using the UI Emulator to display and test your asset

Time for action – starting Sandbox and testing your UIElement

Creating a new UI Action for the new HUD

Time for action – making the HUD work

Basic event handling from Flash to CryENGINE 3

Time for action – creating a simple interactive menu

UI Emulator, UI Actions, and FreeSDK example menus

Time for action – using the UI Emulator to test the FreeSDK demo menus

Summary

Creating Assets for the CryENGINE 3

What are assets?

Understanding the CryENGINE 3 asset pipeline

Exploring the CryENGINE 3 asset file types

Following a workflow for artists

Time for action - setting up 3ds Max units to match CryENGINE scale

Time for action - creating your own texture

Time for action - creating and exporting your first model

Time for action - making your object destructible

Using character assets

Time for action - creating your own skinned character

Time for action - creating animation for a skinned character

Creating animation for rigid body assets

Time for action - creating animation using rigid body data

Summary

Creating Real-time Cutscenes and Cinematic Events

Discovering the Track View editor

Time for action – creating a new sequence

Animating a camera in Track View

Time for action – animating a camera

Triggering a sequence using Flow Graph

Time for action – triggering a sequence

Animating entities in Track View

Time for action – animating an entity in Track View

Playing animations on entities in Track View

Time for action – playing an animation on an entity in Track View

Using Console Variables in Track View

Time for action – adding a Console Variable to a sequence

Using Track Events

Time for action – creating some Track Events for a sequence

Capturing video from CryENGINE 3

Time for action – capturing frames from CryENGINE

Summary

Immersion through Audio Design

Introducing sound design

Understanding the CryENGINE sound event system

Setting up a project structure

Reviewing sound event system file formats

Getting your first sound into the CryENGINE

Time for action - creating an ambient sound event

Leveraging advanced parameters of ambient sounds

Time for action - nesting ambient sounds and using other parameters for sound events

Randomizing sounds

Time for action - creating random sounds

Reverb volumes

Time for action - create your own reverb preset

Adding sounds to particle effects

Time for action - add a sound to a particle effect

Sound events and weapons

Time for action - add sound to a weapon

Summary

Preparing to Share Your Content

Profiling performance in Sandbox

Time for action – enabling and reading display info

Saving a level's statistics

Time for action – Save Level Statistics

Enabling Debug Draw modes

Time for action – enabling Debug Draw modes

Profiles

Time for action – using profiles to break down frame-time performance

Optimizing levels with VisAreas and Portals

Time for action – set up a VisArea

Light clipping boxes and areas

Time for action – create a light clipping box

Activating and deactivating layers

Time for action – use layer switching logic

Packaging your content to share

Time for action – create a team, project, and share an upload

Summary

Pop Quiz Answers

Pop Quiz Answers

Pop Quiz Answers

Pop Quiz Answers

Pop Quiz Answers

Pop Quiz Answers

Pop Quiz Answers

Pop Quiz Answers

Pop Quiz Answers

Pop Quiz Answers

Index