Software Engineer modds in his spare time.

RSS My Blogs

Learning to CRY - 2. Diving into Documentation

rvaldes63 Blog

In my last post I indicated I would be reviewing some of the current documentation for the CryEngine, specifically: Tracy and Reindell's CryEngine3 Game Development: A Beginner's Guide. But before I go headlong into that book, I want to take a few steps back and take in the broader picture of documentation for CryENGINE. I naturally started with the CryTek official documentation and soon ran into a couple of pet peeves of mine:

1. No PDF version that I can get on hard copy. I'm old school that way. I'm a firm believer that trees need to die in order for me to read something of significant length. Particularly when the subject is densely technical. I need to highlight, draw pictures and add snooty little comments in the margins in order for me to truly "GROK" the essence of the subject matter. To be sure there is a plethora of video tutorials to enhance the learning experience (and I watch these as well), but I need my paper to make it real. That said, I can see the appeal of being 100% online. It makes updating the documentation that much easier. More on that topic a little later.

2. For completeness, it necessarily is a set of references generated by a team of developers and writers. While this is necessary, it is not ideal for the individual like me learning a game engine from the ground up. I do know of some engineers who can take reference tomes like these and after a week or 2, have a pretty solid grasp of how the thing is supposed to work. I envy people like that, because I, unfortunately am not one of these people. I need a guide, a hand holder, someone who can give me the personal perspective that I can emulate and latch onto.

Pet peeves aside, CryTek has fielded an impressive amount of documentation and, from what I've seen so far, it IS in English believe it or not. As an American I am always humbled by companies based in non-English speaking countries, like Germany in this case, who can field impressive amounts of documentation in a foreign language. American companies, for the most part, are insanely spoiled that way. All our documentation is in English and we rarely bother with translation.... but I digress.

At this point you can tell I'm not someone who will be winning any Nobel prizes in physics any time soon. And some may wonder (as I often do myself) 'with such limited brain capacity, why do you even bother?' Good question! I believe that, historically speaking, something very important is going on here. The development and evolution of game engines mark a turning point in human civilization that will touch everything that we do from how we tell stories, teach one another to learn and, of course, the all mighty engines of commerce. Something this important deserves all of our attention.. well at least it gets my attention.

My final point: I fully intend to refer back to the official documentation from time to time as I need to get a better handle on specific aspects of the engine, but for now, a Beginner's Guide will be my guide into the technical subject until such time as someone writes the 'CryENGINE for Dummies.'

Learning to CRY - 1. Why Choose the CryEngine?

rvaldes63 Blog

Undertaking to learn a game engine is, needless to say, a daunting task.
I've chosen to learn the CryEngine for no super intelligent reasons other
than a. I liked the graphics, and b. creating a level was easier than doing
the same on Valve's Source Engine. I think a lot of folks get hung up on
the prospects of licensing when choosing their game engine. In my
professional career, corporate lawyers and technocratic busy bodies did
nothing to add to the business, but rather slowed things down... often to a
halt. I try not to let legal and/or "business" considerations get in the way
of the prime goal which is making a unique gaming experience.

When I watched the 2012 documentary movie, 'Indie Game', I was most struck
by some comments from Braid designer, Jon Blow. One of his primary goals was
to actually finish something. He indicated that he had never really
completed any of his many personal projects, but this time was going to be
different. I think these are sentiments that many of us in the computer
gaming arena can relate to. While they never seem like a huge endeavor,
computer programs and particularly video games are deceptively large and
time consuming endeavors. They are the proverbial icebergs where the bulk
of the object is submerged and hidden from view. Even today when I log on
to Facebook, I see only a few web pages with some well-designed forms. For
the life of me I can not figure out why it would take teams of coders and
support personnel to design, implement and maintain such a seemingly simple
interface. But I know it does require that much effort and then some. And
for this very reason, most of us indie-minded game designers end up biting
off far more than we can chew.

I guess what I am driving at is there appears to be a psychological
component to undertaking a technological design. It is the psychology of
the task that we often overlook or underestimate. We need to don blinders
and work feverishly even though this is something we are doing in our off
hours, our spare time, the little time we have between getting to work,
doing our jobs, watching our kids and keeping our stations neat and orderly.
These are the precious hours in which we are supposed to enjoy our lives.
Psychologically we need to prepare for this. We also need to scale back our
ambition and not take on too much lest we risk running out of steam before
anything of consequence has been accomplished.

Undertaking a game design requires carefully considering the building
blocks, tools and resources you're going to put into this endeavor.
Building a game engine from scratch is a non-starter for me. I may as well
try to design the operating system. Using Valve's aging Source engine ultimately
was too clunky and filled with
undocumented problems even if I followed a tutorial step by step. The
CryEngine Sandbox Editor got me from nothing to a little island that I could
package and ship in a very short amount of time. I was encouraged. But now
looking through the documentation, I realize there is a huge milestone to
reach in understanding the engine well enough to start crafting some unique
game play. An FPS with different characters, levels and weapons is NOT what
I consider unique. So for now, I scale back my goals to first gaining a
rudimentary grasp of the engine and blog about the journey that I need to
take in order to gain that rudimentary grasp. In the process I hope to
craft some clearer descriptions on how to use the CryEngine in new and
unique ways, develop a portfolio of sample code and assets, generate some
video tutorials and perhaps publish a book about what I've learned.

Finally for the purposes of completing something from start to finish. My plan is that this blog will
have a milestone of first completing and commenting on the current
documentation that exists for CryEngine 3+. Once I have covered that
material, I will then propose an outline for a workbook that can be used as
a primer to becoming proficient with CryEngine development.

For next time, I'll be diving into Tracy and Reindell's CryEngine3 Game
Development: A Beginner's Guide.