CryEngine 3: It’s All About Real-Time Rendering
Call me a graphics-porn addict, but I love seeing what game engines can do — the way they push the boundaries of technology, the way that technology has evolved over the years, and the way they compare to the game engines I was familiar with over a decade ago. So getting to visit with Crytek at E3 2012 and see the CryEngine 3 demoed was a real treat.
The devs showcased a pre-made map in the CryEngine editor, spotlighting key features and the ease with which changes can be made. A simple keyboard shortcut allowed them to swap from editing mode to actually spawning into the level with a character, with virtually no loading time between the transition. Tall grasses moved in response to player movement; shadows realistically faded and blurred with distance; precipitation caused rain drops in the ocean; surfaces wet by rain became reflective.
Even particle effects — such as a plume of flame — exhibited real-time local reflections. The caveat was that if the fire wasn’t being rendered on-screen, then the reflection didn’t show up on the surface.
But reflections were just the tip of the iceberg for particles. Motion blur based on speed, shadow-casting and receiving, and self-shading of the particles created one of the most realistic waterfalls I’ve ever seen in a game engine.
Oh, and the tessellation. That wonderful tessellation that dynamically changed with distance, creating more detail as we neared an object and dropping the detail level when we were too far to notice — and the end-user can configure, in a game’s settings, the detail drop-off distance.
That tessellation extended to the engine’s highly-realistic oceans, which generated white foam where water intersected with objects. The foam was fully customizable — how much foam was generated and at what shallowness of water it began to generate.
The team wanted to find a way to automate AI pathing. Having some experience with AI pathing back when I made maps for Unreal Tournament over a decade ago, I recall the painstaking process of placing individual pathing nodes that the AI would follow. CryEngine 3 employs a multilayer navigation mesh that lets you select an area with a couple simple clicks, and the pathing in the area is automatically determined. The AI immediately knows how to navigate the area, including jumping and climbing — and this is all rendered in real time.
That’s what CryEngine 3 boils down to: it’s all about real-time rendering. The dev team’s mantra is, “What you see is what you play.” It’s no surprise that so many developers have taken to the engine.
A simple slider lets you change the time of day instantly, automatically updating the entire lighting setup of the map. You can drag and drop rain effects, watching, in real-time, where the raindrops land and where terrain blocks the rainfall. Another slider lets you adjust wind speed, and the vegetation dynamically reacts to it, moving more vigorously.
The best part of all this, in my mind, is the fact that anyone can use this engine thanks to the CryEngine SDK, which is available free for download. I encourage any modders, indie developers, or game industry students to give it a whirl — I know I am.