Vice President, CTO
Vicious Cycle Software, Inc.
So here I am sitting at my computer trying to build a solid strategy around my Vicious Engine promotional trip to Tokyo next week. Eric Peterson and I are flying to Japan’s largest city for the purpose of introducing many of the country’s great game developers to our middleware solution, and we want to make a big impression. So where to start? Should I focus the presentation on the Data Driven Design, the updated graphics engine, or maybe the engine’s unique scripting system? Or maybe we should talk about all the new features that make Ve2 great? All of that is rather important and therefore the presentation should include all of the above information. The thing that really stands out about the Vicious Engine is how it has helped us develop our first Xbox 360® and PLAYSTATION®3 title, Eat Lead: The Return of Matt Hazard.
Because we could build on an existing engine that we all know how to use, Eat Lead was able to leverage a good amount of prototyping to get it to where it is today. While we were prototyping, we were able to rebuild core engine features without risk of losing a tremendous amount of work to redo. There were some exceptions to this rule but they were not too bad.
With past iterations of the engine we had the challenge of solidly supporting many different platforms. For instance, Ve supported the GameCube, the Wii, the PSP®, the PlayStation®2, the Xbox®, Xbox 360® and of course the PC. When designing new features we had to consistently evaluate if those features could be simulated on each of the target platforms and would often have to make critical compromises. With Ve2 we are targeting the Xbox 360®, the PLAYSTATION®3 and high end PCs; all of which have similar hardware capabilities. The sky is the limit when it comes to the kinds of things we can do and it shows in Eat Lead. Everything from texture quality to lighting to performance benefited from a tighter spectrum of hardware support
As I mentioned earlier, Eat Lead is our first Next Gen game (it seems that it is no longer cool to say “Next Gen”, so from here on out I promise I will use the term “Current Gen”). Ve is a great engine and we knew that to hit the ground running on Eat Lead we could not build a brand new current gen engine from the ground up. We had to leverage what worked in Ve and build on top of that by adding the necessary features that current generation titles require. These features include a new graphics engine, a stronger animation solution, a more feature laden UI development component, better physics and some supporting AI components. We’ve also updated all of our audio features to take advantage of the capabilities of the target platforms. What remains from earlier versions of the engine includes the vast majority of our production pipeline, our scripting features and the Vicious Editor. We have a lot of talented people at the company that really know how to use the engine so it was very important to us that it didn’t change too drastically.
Probably the biggest addition to Ve was our new graphics and lighting engine. The new system includes dynamic lighting with ambient occlusion and variance shadow maps for softer shadows with faster performance. We also developed a really intuitive material editing solution which includes a visual editor that allows users to connect inputs with nodes to create truly fascinating material effects. Because it is entirely visual there is no need to write any shader code. On Eat Lead is was very helpful to light our environments in real time from within the Vicious Editor; just move lights to a location and set their characteristics and the user instantly sees how it affects the world. There is no lighting build step involved to slow the process down.
Eat Lead needed to really stand out in terms of character animation as well. It’s a cover-based game and the first game we’ve developed that uses a lot of mo-capped animation data. Back when we developed Robotech: Battle cry we had a nice animation engine that allowed us to blend any number of animations together during runtime; this allowed us to create very realistic movements on our main character by blending a walk and run, for instance, to achieve an accurate animation that matched the player’s rate of speed. The problem with that system was that it was not data driven and was rooted in lots of C code. Ve2 now includes a data-driven system that is even more powerful than the hard-coded one in Battle cry. This allows our Gameplay programmers and artists freedom to manipulate animation from the Editor. They can also use arbitrary parameters from script to control how the animations blend. This gives the system a nice procedural aspect; especially when used with “look-at controllers” and other programmatic features at the developer’s control. The cover mechanics and AI movement in Eat Lead have really come to life because of these new features and the great work contributed by our team of animators.
Vicious Engine has always included everything a developer needs to develop a game including a UI component. We’ve upgraded Ve2 to include more animation features for nicer, more dynamic game interfaces. Interfaces can also be applied to animated 3D objects in the world. Everyone’s first impression of a game is the front end UI so it was important to us to really ramp up the aspect of our engine so that Eat Lead really pops when the end user puts the game into their system. It is truly top notch and offers a lot of flexibility for developer creativity. It’s also localizable. Given tight deadlines and publisher requirements of simultaneous world-wide release we have to make sure the game could be translated for other territories easily and that the UI automatically adjusts based on the length of text displayed.
AI development has been streamlined in Ve2. We’ve added goal based AI planners so that we can perform more complicated behaviors that go above and beyond the standard finite state machine setups that many of us are used to. Path finding has been completely rewritten as well. In Ve setting up navigation meshes for path finding was an often a tedious exercise of triangle placement and edge adjustment. Navigation meshes in Ve2 are automatically generated by analyzing the world geometry and surfaces. AI can quickly and accurately find paths to their destinations without us having to devote development resources to meticulously set up an environment; saving us tons of time on this project.
Because we wanted Eat Lead to be as immersive as possible, the Engine’s physics have been given a bump with ragdoll, improved rigid body support, hinge constraints, surface friction/restitution, buoyancy, and bullet penetration. We even added in some IK solutions for good measure.
The audio engine in Vicious Engine and been completely redefined. Instead of directly playing Sound Data (single WAV files), the engine now plays Sound Effects. A Sound Effect contains a track list which can store up to 32 Sound Data files and/or nested Sound Effects; mono or stereo. It can play a sequence, a random choice, or a blend of those tracks. Plus, we now have support for routing of sounds to any combination of the center, sub-woofer, and four satellite speaker channels, with a separate volume slider for each type of speaker. Reverb effects and occlusion filters can be attached to room objects for added player emersion.
There have been numerous other improvements and features but I don’t want to bore you with the details. Let’s just say that the new version is spectacular and I look forward to showing it to developers out there. Be sure to check out Eat lead once it is released; all of us at Vicious Cycle truly hope you like the game. As for my presentation, I think I’m all set now. If you happen to be Tokyo next week give me a holler!