CryENGINE 3 Game Development: Beginner's Guide

2 (1 reviews total)
By Sean Tracy , Paul Reindell
    What do you get with a Packt Subscription?

  • Instant access to this title and 7,500+ eBooks & Videos
  • Constantly updated with 100+ new titles each month
  • Breadth and depth in over 1,000+ technologies
  1. Introducing the CryENGINE 3 Free SDK

About this book

CryENGINE is a complete game development environment used by AAA game development studio Crytek to produce blockbuster games such as Crysis 1, 2 and 3. This complete Beginner's Guide takes the would be game developer through the steps required to create a game world complete with event scripting, user interface and 3D environment in the free CryENGINE SDK.

Learn to create game worlds with the CryENGINE 3 Sandbox, the tool used to create AAA games like the soon to be released Crysis 3. Follow straightforward examples to sculpt the terrain, place vegetation, set up lighting, create game sounds, script with Lua and code with C++.

Learn to navigate the interface within the CryENGINE 3 Sandbox, the tool used to create AAA games like Crysis 1 and 2, as well as the soon to be released Crysis 3. Learn to create your own worlds by following straight forward examples to sculpt the terrain, place vegetation, set up lighting, create game sounds, and script with the Lua language. The book covers all beginner aspects of game development including an introduction to C++ for non- coders.

Publication date:
September 2012
Publisher
Packt
Pages
354
ISBN
9781849692007

 

Chapter 1. Introducing the CryENGINE 3 Free SDK

The CryENGINE 3 Software Development Kit (SDK) comes from a pedigree of high fidelity, real-time game engines. It is now freely available for non-commercial use, which allows anyone to leverage the power of the CryENGINE 3 to make their own games and simulations.

In this chapter we will be:

  • Joining the development community on http://www.crydev.net

  • Downloading and installing the CryENGINE 3 SDK

  • Reviewing past and present games created using past and present iterations of the CryENGINE

  • Exploring some of the latest features available in CryENGINE 3 SDK

  • Running the sample content in the launcher.exe application

  • Analyzing the typical roles that developers undertake to create a game on the CryENGINE, and establishing where we fit in

  • Installing the 3D Studio Max exporter tools and acquiring the sample source asset package

  • Installing the Adobe Photoshop CryTif plugin

  • Opening the Forest map in the CryENGINE 3 Sandbox application

  • Interacting with objects and entities in the CryENGINE 3 Sandbox application

 

What is the CryENGINE?


Not every new computer game needs to start from scratch. A technique that's becoming increasingly common for most developers is to reuse existing game engines. This is where the CryENGINE 3 SDK comes in. The CryENGINE 3 SDK is a game engine which drives the visual actions taking place on the screen. Within this engine are the rules that dictate the way the game world works, and how objects and characters should behave within it. Due to the fact that creating the underlying code for the variety of systems within a game engine is usually very expensive and time consuming, the starting point of working with a game engine thus makes excellent financial sense for most developers. Throughout this book, and for all intents and purposes, we will be referring to the CryENGINE 3 SDK as the engine.

The CryENGINE has been developed over the past 10 years by the award winning independent developer, Crytek. Crytek has made major iterations to the original CryENGINE over a number of years and is currently on the third iteration, which is why we refer to this version of CryENGINE as the CryENGINE 3.

Arguably, the most prominent tool provided by a game engine is the level, or World Editor. The editor used with CryENGINE is known as the CryENGINE Sandbox, and it contains a whole suite of tools and sub-editors for developing games.

You can think of the CryENGINE Sandbox as a game compositing tool that acts similarly to any digital video compositing software such as Sony Vegas, Adobe Premiere, and even Windows Movie Maker. However, as opposed to inserting video and audio clips, the developer inserts art, design, and code that will all eventually come together to create a game.

 

Applying your vision


Many people will have their own ideas for games. The first step on the path to manifesting that idea into reality is to undertake some basic research in order to expand the idea into a robust proposal, or "pitch" as it's in the game industry. There are simple considerations that a game designer can make in order to take their loosely defined idea into a solid concept. It might be tempting for some of us to jump straight into designing levels, characters, icons, and other fine details but as the saying goes, "the devil is in the details". It is best to avoid getting caught by this. If the basic premise of the game changes in the early development stages, much of the work on these small details will be wasted. A good practice is to spend a relatively short but valuable amount of time at the outset making sure the idea has the potential for development.

There are some genres that are inherently easier to achieve in CryENGINE simply due to the nature of its underlying design. Developers should consider that the CryENGINE has historically been used to create realistic and highly interactive experiences.

Creating a game that uses the first-person or third-person perspectives is relatively easy compared to creating something as a full scale real-time strategy game. To get some inspiration, let's explore the pedigree of the CryENGINE and what other visions have been achieved using it. As you browse through these games, remember that none of these were created in a day! These games were built with large teams over a number of years and thus, we should be realistic with ourselves about what we can achieve and how long it will take.

Far Cry by Crytek – first-person shooter

Far Cry, launched in 2004, sporting the first version of the CryENGINE used the technology that changed the face of gaming.

Tip

Downloading the color images of this book

We also provide you 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 http://www.packtpub.com/sites/default/files/downloads/2007_graphics.pdf.

Far Cry was the first full game developed on CryENGINE. It can be argued which came first, the engine or the game; but so as to not commit to either side, I would like to say the vision and requirements that were put forth for the game drove the technology, or the engine, into what would finally be known as CryENGINE 1.

This critically acclaimed game put to use the technology that allowed for a level of graphical fidelity, never seen before in games, such as huge view distances, high precision HDR lighting, and even more importantly, the game introduced a toolset for development that expressed the what you see is what you play (WYSIWYP) philosophy. This philosophy describes how Far Cry was created as the designers were able to enter in and out of game mode instantly using a shortcut key without having to wait for any saving, compiling, or baking. Designers were thus able to try as many iterations as it would take to create a particular aspect of gameplay in far less time than it would take in other game engines.

The game was truly a Sandbox first-person shooter. To be more precise, it was designed so that the player is directed to achieve certain goals, but the way in which they can accomplish these goal is completely up to him or her. The developer decides to give the player certain tools, which they can use or combine for a unique experience while accomplishing these goals. To be able to do this requires technology to be able to support huge maps and thousands of game entities.

Aion by NCsoft – massively online role-playing game

First released in Korea in 2008, Aion redefined the standard for the quality of art and rendering achievable in such a massive world, populated by thousands of players at once.

Aion was developed by NCsoft on the CryENGINE 1, with a significant amount of customization done to the engine to support the complex database and server requirements of a massively multiplayer online role-player game. It also demonstrated some unique gameplay features never before seen in an MMO. For example, the ability to fly and glide with your character's wings to travel in the world.

Expecting to create Aion in our spare time is largely beyond the scope of this book and likely also beyond the scope of any small development team. Aion was created by a large team and required developers who were experienced in creating MMO games.

This is a good example demonstrating how the engine is easier to adapt to certain genres than others. Of course, Sandbox and the CryENGINE can be used to achieve this; but it requires significantly more customization and innovation than a first-person shooter would.

Crysis by Crytek – first-person shooter

Crysis truly drove the next generational leap for the CryENGINE. Crysis, upon its launch in 2007, exceeded all expectations and set the new standard for real-time PC gaming.

CryENGINE 2 was made available for licensing shortly after the release of Crysis,due to popular demand of many developers in the industry.

The big technological jump for CryENGINE 2 was in sheer rendering fidelity and hyper-interactivity of its physical worlds.

This leap made it even more ideal for developing open-world Sandbox games. Though Crysis was a first-person shooter, the engine lent itself well to third-person adventure games and even vehicle simulations. In addition, visualization with CryENGINE 2 expanded as artists discovered the ability to create photorealistic scenes in comparatively less time than was considered possible at that point in time.

Crysis Warhead by Crytek – first-person shooter

CryENGINE 2 was further updated, in tandem, with the release of Crysis Warhead in 2008. This expansion took the player back to experience the same timeline of events from the original Crysis, but from a different protagonist's perspective.

In terms of technology, the engine's performance was further optimized to allow for a truly cinematic experience. It was designed to be a faster, more intense an experience than the original and it achieved its goal.

At this time, it was recognized by Crytek that to remain competitive, games must be able to run on the Xbox 360 and PS3, as such, development began in earnest of the console-friendly future generation CryENGINE 3.

Crysis 2 by Crytek – first-person shooter

Finally, we end our nostalgic journey at the current generation of CryENGINE 3.

Crysis 2 was released in March 2011 on Xbox 360, PS3, and PC. This was a huge milestone for CryENGINE, as it demonstrated that CryENGINE could achieve its historic rendering quality on this generation of gaming consoles, namely, Xbox 360 and PS3. Finally, the console users were able to experience the level of fidelity demanded by Crytek games, and other developers began actively pursuing their own AAA games using CryENGINE 3.

 

CryENGINE 3 Free SDK


This brings us to the present as the package that you will be soon downloading and running, is the freely available CryENGINE 3 SDK, initially released in August 2011. It gives anyone with an Internet connection access to the CryENGINE 3 game engine. It continues to be updated to keep it in line with the same features and tools Crytek uses internally, bringing a huge advantage to anyone wanting to make high quality games and simulations.

The following screenshot is a depiction of a CryENGINE 3 creation:

What's in it for me?

Having seen some of the games that have been released on CryENGINE, you may have dreams and visions of creating huge open world online role-playing games, or AAA first-person shooters. This is quite normal, as the most aspiring and even veteran game developer's bite off more than they can chew in their initial designs. Creative and passionate people typically have big ideas, and this is great! I say that, with my fingers crossed behind my back, as there is one caveat to this, that it's ok as long as you practice a very important skill, which is, to be able to temper those huge ideas and split them up into smaller, more achievable goals. Achieving smaller victories while approaching such a vast and complex piece of technology will keep you far more motivated and will build confidence so that eventually you will be able to solve creatively just about any problem that you are faced with while creating your game.

Do I need a full team to develop with the CryENGINE?

As we mentioned before, the previous games we explored were created by huge teams, and you might think it's impossible then to create a game by yourself or even with a small group. I have some good news though! In the examples to come, you will not require an entire team. We will create some customizable elements, which are useable in games through a set of understandable examples. Working as a team, however, is becoming increasingly common even among hobbyist game developers. When working in a team you should recognize that there can be generalists and specialists in every field. Typical teams break down to the following groups. It should be noted that there are a variety of subcategories within each group, and the following breakdown doesn't claim to describe them all:

  • Programming: The entire gaming industry was created by programmers. Without programmers this industry simply wouldn't exist! They are the specialists who take the expectations and designs of everybody else and are tasked with finding a way to make them a reality. They are tasked with everything from creating and modifying the game engine to developing tools, and implementing game mechanics. If there are bugs or important changes to be made usually it's the programmer who must work late to fix or implement changes. There are a variety of subcategories of programming, which include physics, rendering, shaders, animation, sound, tools, and so on.

  • Art: Artists have become increasingly important in the production of high-quality games. Having truly talented artists can take a bland game created using teasingly named, programmer art to an AAA photorealistic experience. There are many subdisciplines within art as there are in programming, some of which include concept, environment, character, technical, lighting, and visual effects.

  • Animation: Animators are the ones that perform the role of providing life to otherwise static games. This is just as essential to a game's immersion as the texture or geometry of any model. There are a few subcategories to animation which include riggers, facial animators, technical animators, cinematic animators, and others.

  • Design: I really think designers can come from anywhere within all the disciplines and roles! They are typically people who excel at combining mechanics to make fun! Creating fun, as strange as that may sound, is the main goal of the designer within any game production. During my career, I have personally seen a trend in the industry where designers are often undertaking the role of what I would term game compositors. Game compositors take all the different aspects of a game's production, including art, animation, code, cinematics, and so on, and combine them all together in creative ways that challenge and reward the player. For this reason, being a designer can be a demanding, yet rewarding role, as it allows you to generalize in many areas. One thing I have personally found as a designer is that the more you know about each area of the technology with which you are working, the more tools you will have at your disposal while creating interesting puzzles, challenges, and adventures for your players.

  • Sound: The sound group consists of sound engineers and musicians. Sound engineers are typically skilled at designing sound into games. This may sound abstract, but it's the skill of being able to amplify emotions throughout different areas of the game. For example, if you had a creepy cave with no sound, it would be less realistic. The immersion and believability could be greatly improved by adding ambient wind sounds and the sound of dripping water echoing off the walls. Musicians add unique soundtracks, which have vaulted games to high popularity and are sometimes the most memorable parts of some of your own gaming experiences! This is a difficult role as you must depend on sound engineers to implement your creations into the game and accurately represent the mood and intensity of the piece.

  • Quality Assurance (play tester): Quality assurance plays a huge role in any production that you wish to release to an audience, especially when the audience is large. Games that go to market with mistakes and bugs in their code, art, or design have potentially disastrous consequences for game development teams and companies. A typical entry-level point into quality assurance is that of a play tester. They will play and replay levels, repeat and document certain circumstances, however obscure they might be, the same with levels that crash or interfere with the game.

  • Producer (project manager): In game development companies, the producer plays a major role and will most likely have a good deal of experience at varying levels of the gaming industry. The producer is responsible for all sorts of things and can be seen as a shield for the team against the business of a game. One of the other critical roles for a producer is to make sure that the development schedule meets all of its milestones and is finished on time.

With large projects or titles, such as the ones we discussed earlier, it's essential to recruit these specialists to your team or if all else fails become one yourself.

This book is written in a way that will explore each role in a lightweight and exploratory manner. My personal experience comes from being a generalist technical designer. Thus, each example will concentrate on getting game features to function using some tools and techniques from art, design, sound, and code.

If you are already a specialist in one or more of these roles, you will still be able to follow these examples to add additional tools to your repertoire of skills and techniques for creating games.

 

Learning by example


The best way, in my opinion, to go about learning to use CryENGINE 3 SDK is by actually using it to create a variety of achievable genre-specific mini games or prototypes. These examples will then become the stepping stone that will give you the ability to create more complex games using the same skills and functions explored in simplified examples. You should be aware that these examples most likely won't make you millions of dollars, but will rather teach you the tools and techniques required to make your own successful game, should you have the passion and desire to do so.

The relatively straightforward examples in this book will give you a focus to concentrate your efforts as you learn CryENGINE 3 SDK, since attempting to master the engine all at once would be an extremely difficult and a time-consuming task for anyone.

This book will mainly focus on what you can do within Sandbox, but we will still explore the occasional need for external applications, such as 3ds Max and Photoshop. There are countless resources available to learn these applications.

Once you have gone through these examples, you will understand and even feel empowered by being able to create your very own game worlds within CryENGINE 3 SDK.

 

Time for action – installing the CryENGINE 3 Free SDK


Before we dive in, we must ensure that our computer system meets the requirements for development with the CryENGINE 3 SDK. As opposed to some reports, it does not take a super computer to run the CryENGINE 3 SDK. It should be noted that the system requirements for a developer do differ from that of a player, otherwise known as the end user.

Note

The CryENGINE 3 SDK is designed to scale reliably on a variety of systems with varying amounts of video and computational processing power.

The system requirements for a developer are as follows:

  • Supported Operating Systems: Windows XP SP2, Windows Vista SP1, Windows 7.

  • Processor: Intel Core 2 Duo 2 GHz, AMD Athlon 64 X2 2 GHz, or better.

  • Memory: 2 to 4 GigaBytes of RAM.

  • Video card: NVIDIA 8800GT 512 MB RAM, AMD 3850HD 512 MB RAM, or better. Shader Model 3 is the minimum.

Note

A multi-core processor is strongly recommended for development, as subsystems in CryENGINE 3 SDK can make use of multiple cores.

The system requirements for end users are as follows:

  • Supported Operating Systems: Windows XP SP2, Windows Vista SP1, or Windows 7.

  • Processor: Intel Core 2 Duo 2 GHz, AMD Athlon 64 X2 2GHz, or better.

  • Memory: 1 GigaByte of RAM is the minimum, however, 2 GigaBytes is strongly recommended.

  • Video card: NVIDIA 8800GT 512 MB RAM, AMD 3850HD 512 MB RAM, or better.

To get our hands dirty, we are going to need to download and install CryENGINE 3 SDK. This will allow us to create and run new games and the included sample content. Following are the steps to download and install CryENGINE 3 SDK:

  1. Go to http://www.crydev.net.

  2. Register yourself to create a unique login, which we will soon use to run CryENGINE 3 SDK.

  3. Once registered, download the CryENGINE 3 Free SDK package.

  4. Extract the content of the downloaded package to your desired directory. For this book, create a new directory on your C:, and name it Crytek. Then, create a new folder in the Crytek folder, and name it cryengine3_sdk. You should end up with all files from the archive in the directory C:/Crytek/cryengine3_sdk.

What just happened?

In the previous section, we took our first and very important step on our way to becoming a CryENGINE developer.

Now that you've installed the CryENGINE 3 Free SDK, you can run and view the sample content. Now, you can also interact with the rest of the CryENGINE 3 developers, post screenshots, ask advice, or even download other developer's creations on http://www.crydev.net.

Come in...stay awhile

Now, we can go to explore the sample level. This sample map should give you a good idea of the fidelity of rendering and interaction that can be achieved with the currently available generation of the technology.

 

Time for action – load the sample map in the launcher


Let's rev it up! Let's see what the example level would look like from the end user or what we can call the player's perspective.

  1. Navigate to the Bin32 or Bin64 folders in your installation of the SDK. For this book, the root directory is C:/Crytek/cryengine3_sdk The Bin32 folder is where the 32-bit binaries are stored and the Bin64 folder stores the 64-bit versions.

  2. Run the launcher.exe application in either 32 bit or 64 bit.

  3. When prompted, enter your CryDev login information created in the previous Time for action – installing the CryENGINE 3 Free SDK.

  4. Once the launcher has opened, you will be presented with a start screen and menu.

  5. Select Single player from the menu, and then select Forest. This will load the forest sample map for you to explore.

  6. Move your player character through the level using the W, A, S, and D keys; you can also press the Space bar to jump.

  7. A nice path has been kindly laid by the developers, thus making this level easy to explore. Follow the river all the way down to the coastal village.

  8. Experiment interacting with different objects by firing your weapon at them, or by pressing the F key to initiate actions like opening doors. Go ahead and explore the sample interactions that are available in the level.

  9. Once you are done exploring and interacting with the level, you can close the launcher.

  10. To close the launcher, you can simply close the window if in windowed mode, or press the Esc key, and select Exit game.

What just happened?

Having loaded and explored the sample content, you should now have a pretty good idea of the overall quality you can achieve with the engine and how a first-person shooter might look like when built on it. Up to this point, you have experienced CryENGINE as a user or player would. Let's now get into some of the different tools we can use to edit this experience so that we can call ourselves developers.

 

Visual Studio Express and C++ game code


As discussed earlier, programmers basically rule the world when it comes to game development. For this reason, having C++ game code released in the Free SDK for the CryENGINE is an invaluable tool. I encourage everyone to download the freely available Visual Studio Expressto at the very least explore the provided game code. This game code is designed to be a template to create your own games and has a huge array of possible functions.

Later examples in this book will delve into how we can use the game code to make our games truly unique and explain how to download and install Visual Studio.

 

Acquiring the sample source assets


Crytek provides a downloadable file containing sample assets on http://www.crydev.net. These assets are in the form of uncompressed textures and source 3ds Max or Maya scene files. For many, it is valuable to use these to learn how to use complex asset features or to customize them to create your own amazing piece of interactive game art.

The examples in this book will exclusively use 3ds Max. However, the process for many asset creation procedures for Maya can be found online in the provided documentation at CryDev site.

 

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


The examples in this book will all use 3ds Max and Adobe Photoshop as the primary digital content creation tools, otherwise known as DCC tools. Since we will use 3D Studio Max for this book, let's install the tools we will need to open and export the sample models to the engine. The steps to do so are as follows:

  1. Explore to the \Tools\CryMaxTools\ directory in the root directory of your build.

    Locate and run copytoMax.bat, which will copy the required tools to your 3ds max installation directory. For whatever reason, should the automatic installation of the exporter tools fail, you can install the files manually. Follow these steps to either manually copy or to simply verify that the tools have been installed correctly.

  2. Locate the .dlu file that is matched to the 3D Studio Max version you will be using. The following files are found in the /tools directory of your build:

    • 3ds Max 9 32 bit use CryExport9.dlu

    • 3ds Max 9 64 bit use CryExport9_64.dlu

    • 3ds Max 2008 32 Bit use CryExport10.dlu

    • 3ds Max 2008 64 Bit use CryExport10_64.dlu

    • 3ds Max 2009 32 Bit use CryExport11.dlu

    • 3ds Max 2009 64 Bit use CryExport11_64.dlu

    • 3ds Max 2010 32 Bit use CryExport12.dlu

    • 3ds Max 2010 64 Bit use CryExport12_64.dlu

  3. Once you have located the .dlu file that is associated to your installation of 3ds Max, copy this file to the /plugins directory of your 3ds Max installation.

  4. Finally, we need to install the 3ds Max Cry Tools Max Scripts. To install them, simply copy the LoadCryTools.ms located under the /tools/CryMaxTools folder to the /Scripts/Startup folder of the 3ds Max installation.

What just happened?

The tools that we have just installed are used by 3D artists and some multi-role designers to create models and other content for use within games. These tools are essential because, later on in this book, we will want to make some custom assets for use within CryENGINE.

 

Time for action – downloading and opening the sample assets


Having installed the required tools, let's now download and open the source sample assets and to do so we will perform the following steps:

  1. Download the sample assets from the following web location http://www.crydev.net/dm_eds/files/General_Downloads/CryENGINE_FreeSDK_v3_3_5_Sample_Assets.zip.

  2. Extract the contents of this package to the /game folder of your root directory.

  3. Browse to any 3ds Max scene within these samples and open it to ensure it works.

What just happened?

The source sample assets are provided as examples by Crytek. They are very useful as a learning tool and can also be used within your project. There are full characters, vehicles, and vegetation samples that can be used directly or simply as reference to verify the setup of your own assets.

 

Time for action – installing the Adobe Photoshop plugin-CryTif


The textures we will create throughout the course of this book will be created or edited using Adobe Photoshop. CryTIF is a Photoshop plugin developed by Crytek that can load and save merged Photoshop images as TIF files. It's important to realize though that the .TIF format images are not used when rendered in the launcher or even the editor, but they are rather converted to a more optimized format, in this case from a .TIF file to a .DDS. The following steps show how to install the plugin and save files in the .TIF format:

  1. Copy the following files to the root Photoshop directory:

    • Bin32\zlib1.dll

    • Bin32\jpeg62.dll

    • Bin32\libtiff3.dll

  2. Copy the file that enables support for the CryTif format Tools\CryTIFPlugin.8bi to the root Photoshop /Plugins folder.

  3. Test whether the installation is functioning by first starting Photoshop.

  4. Create a new image with dimensions 512 x 512.

  5. Create a simple pattern or import your own texture.

    Note

    If your texture has an alpha channel on it, the CryTIF plugin will detect this and change its conversion process automatically.

  6. Next, select File | Save As in Photoshop.

  7. Save this file as a CryTIF (.TIF) file type. This format should now be available as a file format in the Photoshop file dialog.

  8. Create a textures directory in your game folder and save this texture in your game under game/textures/test_pattern.tif.

What just happened?

In the previous section, we installed the very important CryTif plugin, which is essential while creating any textures for the CryENGINE. When saving a .TIF file, the CryTif plugin displays a dialog to the user where the compression settings may be selected. The settings that get chosen in the dialog are stored as metadata on the TIF file.

We have finally installed all the tools required for us to make an amazing amount of content from code, to textures, to models, and animation! Having done this, we are now ready to find out how to start putting everything together!

 

CryENGINE 3 Sandbox


The CryENGINE 3 Sandbox is the level compositing tool built for CryENGINE, which is used to create and edit the majority of the content for games, visualizations, and simulations. It is likely, if you are developing a game based on CryENGINE—whether you are an artist, programmer, animator, or designer—you will have to use it at some point of time. As such, you should have a basic understanding of the CryENGINE 3 sandbox and some of the subsystems contained within. Fortunately, you'll find it to be an extremely powerful tool with a deep assortment of subsystems available to just about anyone involved in a game's development process.

 

Time for action – starting Sandbox and WYSIWYP


Let's open the editor so that we can see the sample level from a developer's perspective. Perform the following steps:

  1. Navigate to the Bin32 or Bin64 folder in your installation of the CryENGINE 3 Free SDK.

  2. Run the editor.exe application in either 32 bit or 64 bit.

  3. Login with your CryDev account when prompted.

  4. Once the editor is open, go to File | Open.

  5. Browse to the Forest.cry file contained in the folder /game/levels/Singleplayer/forest/, and select Open.

  6. The editor application will then load the example map forest for us with which to experiment.

  7. Once the level is open, the first thing to try is to hit the shortcut Ctrl + G, or go to the Game menu, and choose Switch to Game.

    Upon switching to game, you will be able to instantly play as if you had loaded the level in the launcher.exe application, as you can see in the following screenshot:

    Using this feature, you are able to play the sample map the same way in the editor as you would in the launcher. This fact proves invaluable for iteration, because you can modify the majority of the game without having to restart the editor. It should be understood, however, that this is the emulated version of the game and doesn't fairly represent performance in the launcher as there is added overhead to running the Sandbox Editor and various debug modes.

  8. To go back to editing mode, press the Escape key at any time.

What just happened?

We have just learned how to launch and run a level in the editor and also how to simulate playing in the launcher. We will explore the interface to Sandbox in the next chapter of this book and do not be alarmed if the interface is a bit foreign to you.

 

Getting around in the Sandbox Editor


Now that we have run the two principal applications of the engine, we should take some time to learn the interface to the development application CryENGINE Sandbox. The ability to navigate levels is a basic skill with which all developers should be familiar. Thankfully, this interface is quite intuitive to anyone who is already familiar with the WASD control scheme popular in most first-person shooter games developed on the PC.

 

Time for action – manipulating the perspective camera


  1. If not already done, open the Forest.cry sample level with the editor.exe application.

    The window highlighted in the previous screenshot is the perspective viewport; this is where you can see the level. The perspective viewport is used as the main window to view and navigate and even edit your levels. 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.

    Sandbox is designed to be ergonomic for both left-handed and right-handed users. For this example, we will use the WASD control scheme, but it should be noted that the arrows keys are also supported for movement of the camera.

  2. Press W to move forward.

  3. Then press S to move backward.

  4. Press A to move or strafe towards the left.

  5. Press D to move or strafe towards the right.

Now that you have learned to move the camera on its main primary axis, it's time to adjust the rotation of the camera. The following steps will indicate the same:

  1. When the viewport is the active window, hold down the right mouse button, and move the mouse pointer to turn the view.

    You can also hold down the middle mouse button, and move the mouse pointer to pan the view.

  2. Roll the middle mouse button wheel to move the view forward or backward.

  3. Finally, you can hold down Shift to double the speed of the viewport movements.

  4. Adjust the Viewport Movement Speed Controls to find the speed with which you are most comfortable.

    The Speed input at the bottom of the Perspective window is used to increase or decrease the movement speed of the camera as you move in the main Perspective Viewport.

What just happened?

The Viewport allows for a huge diversity of views and layouts which you can use to view your levels. The Perspective view is just one of the many. This view also renders a view of the level using the standard camera perspective, showing all level geometry, lighting, and effects.

 

Handling level objects


Levels in the CryENGINE Sandbox are composed of any number of entities, brushes, and other objects. These will each be explained later in this book, but for now we need to know how to manipulate and adapt these objects to our desires.

 

Time for action – selecting and browsing objects


The following steps will help you to select and browse through objects:

  1. If not already done, open the Forest.cry sample map in the CryENGINE 3 Free SDK.

  2. Enable or Disable object helpers using the shortcut Shift + Space bar or use the toggle in the viewport shown in the following screenshot:

  3. You can now simply point and click on objects to select them, or if you'd like to be more accurate, you can hold the Space bar to get a small box selection helper around the object's pivot.

  4. Select an object.

    You should now see your gizmo attached to the object's pivot point also known as origin. The gizmo represents the three dimensions of space used within the world otherwise known as axis. Most game engines use Cartesian coordinates which consist of three axes X, Y, and Z.

    • X is red and represents left and right in the CryENGINE

    • Y is green and represents front and back

    • Z is blue and it represents up and down

  5. Click-and-drag on any of the axes to move the object along that axis.

    Note

    You can switch between the move, scale, and rotate tools by using their toolbar icons or the shortcut keys, which are 1, 2, and 3 respectively.

  6. Change the direction in which you are able to move the object using the constrain to axis tools in the main toolbar. There are six settings; the first three correspond to each axis, and the fourth XY will lock the object so it will not move up or down. The final two are the snap to terrain and snap to terrain and objects.

  7. Experiment by changing these values. To finalize the placement of the object you selected, it will likely be easiest to use snap to terrain highlighted in the following screenshot:

    An extremely powerful yet underused snapping ability is the shortcut Ctrl + Shift + click. This will snap the object to the first physical surface under the mouse cursor.

  8. Try this by holding Ctrl + Shift, and then click in the Viewport where you would like to snap the object.

Notice that when you selected the object, particular properties appeared in the RollupBar. The RollupBar is where entity parameters, settings, and controls are listed and accessed. These parameters will depend on the type of objects you have selected, but it should be known that this is the primary way to adjust any aspect of entities within the Sandbox.

The top of the RollupBar is split into four very different panels, which are accessed from their corresponding tabs. They are as follows:

  • The first tab contains the object and entity creation tools for the editor, as well as being the tab that will display all entity-specific information and dialogs.

  • The second tab is the overall environmental, vegetation, and terrain editing tools. It should be noted that these tools are usually used to modify the specific level you have loaded in Sandbox.

  • The third tab contains the display options.

  • The fourth and final tab is the layer organizational tool tab.

Finalize the placement of your object and experiment by selecting and moving different entities within the sample level.

What just happened?

You have just learned, arguably, the most important ability within Sandbox and that is the ability to move and shape the levels and worlds.

One of the greatest strengths that this gives us now is the ability to iterate quickly and with a full preview of what the placement will look like in the game, including full physics and gameplay using the switch to game function.

 

Time for action – saving our work


Having moved some objects around, we might be happier with the new placement of them, or simply want to save the level for further modification. In order to do that, perform the following steps:

  1. Go to the File menu, and select Save level as.

  2. You will now save your .cry file. Name the .cry file as forest_myedit.cry.

  3. Click Save, and the .cry file will be created.

  4. To save to the currently loaded .cry file quickly, you can use the shortcut Ctrl + S.

What just happened?

We have just reviewed how to save our .cry file, which will, of course, be required if we wish to be able to load our modification again.

The .cry file that we just saved acts as a container for the level. This container can only be accessed by the editor application.

Have a go hero – free your mind

Already with just a few examples, we know enough to be all powerful within CryENGINE 3. As some of the greatest ideas have come about from experimentation, challenge yourself by trying a few things, for example:

  • Use the rotate and scale tools on various entities. Access them using the shortcut keys 2 and 3.

  • Create a prototype platforming game using just dock objects. If you place a series of them at different angles, varying heights, and distances, you can get some rudimentary platforming gameplay.

  • Alternate between moving objects and then switching to game mode to try to jump from one object to the other. This is where the true power of the Sandbox toolset is shown and that's in speed of iteration. You can test your game play in full scale instantly after editing it.

 

Summary


We've come a long way in just a few pages! We can now open, edit, and save levels, giving us access to some of the most important tools to create games. The next chapter will take us deeper into Sandbox and will expose how we can use the interface to perform a enormous variety of modifications to our level.

We have learned a good deal already about the CryENGINE 3 SDK and how we can use the application within. We took our first few steps by opening a level in the launcher and in the editor, as well as installing some of the tools we will need in the later chapters.

Now that we are dangerous enough to load the sample level in the editor, we're ready to begin ravaging the example map and to learn a few of the useful functions available within the CryENGINE 3 Sandbox. In the next chapter, we will use some of the tools within the CryENGINE Sandbox to create our own levels and environment. It will guide through creating your own heightmap and terrain textures in addition to distributing vegetation and setting a time of day.

About the Authors

  • Sean Tracy

    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 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, conferences and seminars. He is an avid gamer with extensive modding experience on titles including Never Winter Nights, Battlefield, Doom and Quake.

    Browse publications by this author
  • Paul Reindell

    Paul Reindell has been an Engine Programmer in the SDK Team since June 2010. He is responsible for UI programming, next generation features and development of new tools for the CryENGINE 3 Sandbox, as well as forum support for CryENGINE licensees. He also worked on projects for licensees or evaluators. During his diploma theses Paul started as an Intern at Crytek in March 2010. He finished his diploma thesis successfully in June and started directly as a Junior Programmer in the SDK team. During his academic studies he created a mod prototype with CryENGINE 2 (GarbageWarz) and during his diploma thesis he was able to connect CryENGINE 3 successfully with a Headtracking API. Before working at Crytek he worked for three years as a programmer at DENSO, in Germany, beside his studies.

    Browse publications by this author

Latest Reviews

(1 reviews total)
I was unable to follow the book because the engine has changed since the release of this book. Some important links where outdated plus the book is based on a free version of the engine which is no longer available. Otherwise the book would have read well
CryENGINE 3 Game Development: Beginner's Guide
Unlock this book and the full library FREE for 7 days
Start now