Sonntag, 28. Oktober 2012

CryENGINE 3 Game Development (Review)

Back in 2004 when i started to play around with the first iteration of CryENGINE all we had back then was the game FarCry. Compared to today we had no documentation at all, so most of us were just self-taught people playing around with an unknown piece of technology: CryENGINE 1.

Of course we had our good old FarCry Modding portal to share information and we were so happy once some Crytek Devs actually started to answer some of our questions on the forum. Today there is a lot more information available for a beginner. The forum, online documentation, tutorial videos etc.. But the main problem for a beginner is: Where do i start?

The forum doesn't really solve that problem as it's more a chaotic collection of information, sure it's useful information (if you know the right threads), but a beginner won't really find the information he needs to start doing stuff. Especially not in an ordered way. Also the online documentation can't really solve the problem as it's main purpose is to store all (possible) information in one place. A bit too much for a beginner.

One solution, even if it's a bit old-school, is to read a (real) book about a certain topic you are interested in and to be honest that is even the best way to start. Of course you could just put the full book content online but it's still not the same. Switching between online documentation and the tools you are using can be a bit annoying after a while.

For CryENGINE development there are actually 2 books available:


This review is about the latest book: CryENGINE 3 Game Development by Sean Tracy and Paul Reindell. Even though the book cover states it's a "Beginner's Guide", also experienced CryENGINE users will gain some knowledge out of it. If not... well... Hail to the king, baby!

The book itself is published by PACKT Publishing and is available as a printed and an e-book version. Especially for learning new stuff i personally prefer a printed version but... that's just me. On 320 pages you will learn about a wide variaty of CryENGINE features, obviously it won't cover everything in detail but that's perfect when you start with a new piece of technology. No one really wants to be overwhelmed by too much detailed information, especially not a beginner. And if you are interested in more information, once you understand the basics, you can move on to the forum, documentation etc..

The book actually starts with a quick overview what CryENGINE is, where it comes from and for what kind of games it was used in the past. It also gives you a quick introduction about the CryENGINE 3 FreeSDK, which is used as a base for all examples across the book, so everyone can play around with them right away. What i really liked was a short explanation about the typical roles in a game development team, which should give most beginners an idea of what maybe their own role would be in such a team. As mentioned before the whole book is example based, so you won't get too much boring theory. Most examples are structered in a couple of sections:

  • Short introduction with not too much theory
  • Time for action to actually create something right away
  • Short summary what just happened
  • Optional task for the reader to play around with the learned stuff
  • Optional small quiz to check if the reader really understood what he just read

After getting some information about the Sandbox Editor basics the reader will directly start to create his/her first level. Guided by the author it is really easy and fast to see some results on the screen. The good thing about it is that it's not just "Click here, click there", the reader will also get information about why he/she should do it like this or about different ways to achieve the goal. All examples are full of screenshots which makes it a lot easier to follow them. They are only black and white in the printed version but you can download the colored screenshots online and to be honest the quality of the printed screenshots are actually more than good enough to follow the examples. 

Once a basic level was created the reader will learn how to add more (dynamic) stuff into the level. Entities, AI, Spawnpoints, Roads, Layers, Brushes and Solids are just a couple of features the reader will play around with. At this point everyone, even experienced users, should be on the same page with CryENGINE and Sandbox Editor basics. 

Now the book starts with the fun stuff: Scripting! This not just includes Visual Scripting (aka. Flowgraph) but also the communication between Flowgraph and Lua, debugging Flowgraphs and playing around with the AI. 

The next big step will be an introduction into C++ and how to compile the Game DLL with some code changes to finally script a custom Entity, including Scriptbinds to communicate directly with C++ from within Lua. Don't worry if you are not part of the Programmer Species, it's well written and covers all needed information for the examples.

"One of my most productive days was throwing away 1000 lines of code."
     — Ken Thompson

The next part of the book is all about Scaleform (Flash), how to create your own HUD (Head-Up-Display) from scratch, bring it in-game and how to test it directly in the Sandbox Editor with the included UI Emulator. A very nice, detailed and interesting section of the book. As a side note: The author of this chapter wrote the actual core system of the UI used in the CryENGINE 3 FreeSDK, so the reader will definitely get some detailed information.

The HUD is actually the first custom asset (apart from the Entity) the reader will create, so the obvious next step is to learn how to bring even more custom assets into CryENGINE. From basic static objects, over destructible objects to skinned characters and animations the reader will get a really good overview about the asset pipeline in one big chapter.

Creating Real-Time cutscenes and Cinematic Events with custom assets or existing ones is what the reader will learn in the next chapter. Animating Cameras, animating Entites and video capturing are just a few keywords which are covered. You want to be the next James Cameron? Go ahead, you will definitely learn the basics to create some cool cutscenes or machinimas yourself.

Everyone knows Hans Zimmer i guess? The god of film music? If someone wants to be the god of his/her game music and sounds the next chapter of the book coveres using the included sound entities and existing sounds but also how to use the FMod designer to create custom sounds and bring them into CryENGINE. Sound and Music are actually the most underrated parts of a game, so read it carefully. It can make the difference between a good and an awesome game experience.

The last chapter is all about how to debug the game and share it with the outside world. Especially debugging and getting an overview of the most important console variables to actually find the problems in the game is a must have knowledge for every future CryENGINE game developer.

So is this book worth buying? Definitely Yes. For a couple of reasons. First i know the authors. No seriously, it's well structered and gives the reader all needed information without overwhelming him/her. I wish i had such a book back in 2004 to start with. It would have saved a lot of trial and error hours... If you buy such a book as a beginner you don't want to read too much about theory, you want do something actively. You want a proper guide on how to achieve a goal and you want to achieve this goal as fast as possible. All of this is actually well done by the authors of the book.

Cheers,
JR

Keine Kommentare:

Kommentar veröffentlichen