EOR Core Technology
All of our games use our proprietary cross-platform engine. Because the engine is created and supported in-house, we know it inside and out. We can customize it for a particular game, add features, fix problems, and prototype far more efficiently than would be possible with any off-the-shelf engine. We currently support the Sony PlayStation®2, Sony PlayStation®3, Microsoft Xbox™, Microsoft Xbox 360™, Nintendo Wii™, Nintendo GameCube™, and the PC.
Development Process - EOR Workbench
One of the most unique features of the engine is the way it revolves around efficient content creation and team collaboration. Perhaps the most critical challenge in game development is to create an efficient development process that allows team members to work independently, make iterative changes with rapid feedback, and integrate those changes into the game. Nearly six years ago, we began work on the EOR Workbench to address this challenge.
Today, Workbench is the heart of our development process. It's a powerful automated build and asset management tool, designed to handle the unique problems in game development. Using Workbench, every member of the team makes a local build of game data. From the Workbench interface, source files can be checked out, modified, and added or removed from the project. With a single button press, the user's changes are quickly built from the source files to the game data files. The user can continue to test and make changes inside his or her "sandbox" until the task is complete. At that point, the modified source files are checked in to version control. In theory, it's the same process that programmers have been using for ages to collaborate with code files. In practice, it took years of refinement to get it really working well, and we continue to tweak it as our needs evolve.
Here are some of the features that make this possible:
- Game assets can be updated interactively, while the game is running.
- Very fast builds, thanks to fast dependency checking, incremental building, incremental linking, and centrally cached compiles. Scales nicely for large teams and huge numbers of source files.
- Simple graphical interface can be used by all team members.
- Detailed tracking of interdependencies between assets.
- Automatically adds and removes referenced assets to and from the project.
- Automatically builds dataset files for single-seek loads.
- All data types are versioned for automatic rebuilds when conversion tools change.
- Mergeable ASCII file format, allows multiple, simultaneous checkouts.
- Multiple build configurations enables fast switching between platforms and localizations.
EOR Engine
The EOR Engine is a state-of-the art engine, designed specifically for console platforms, currently supporting the PlayStation2, GameCube, and X-Box. The feature set is constantly evolving to meet the needs of our games, but here are some highlights:
Instant Updates
Listens to update messages from tools in order to update game assets while the game is running.
High-Performance Renderer
Pushes each platform to the limit. Display lists do not require CPU involvement. Textures are loaded asynchronously on the PS2 without CPU involvement. Optimized VU0 and VU1 microcode on PS2. Assembly optimized character renderer on GameCube. Optimized pixel and vertex shaders on the X-Box.
High-Fidelity Animation Compression
Provides typical compression rate of 100:1, without perceptible loss of quality. This includes any type of motion data, including motion capture.
Advanced Animation System
Some features include multiple blending, procedural animation (such as IK), animation driven movement, and animated rotation, translation, and scale for each bone.
High Performance Analytic Collision
Allows collision directly with visible geometry, avoiding the need to create separate collision geometry in mode cases. Characters move smoothly though environments using swept volumes, and do not fall though cracks in geometry.
Portal Occlusion Culling
Only renders visible part of scene.
Unicode
Double-byte text and localization support throughout.
Scripting System
Low overhead byte-code scripting system with interactive console and debugging.
Extensive Metrics
Performance metrics, graphs, hierarchical profiling, memory tracking and reports on all platforms.
Advanced Lighting
Preprocessed and real-time lighting effects.
Particle System
2D and 3D particle effects interactively respond to particle editor.
Sound System
3D sound effects, streaming audio, and asynchronous sample loading.
QuickData
General purpose editor and relational database for game data, using ASCII file format for multiple check-outs and merges.
Level Editor
A Max plug-in, our level editor is data-driven, and can instantly support new object types and data.
Trap Screen
Blue Screen of Death provides post-mortem diagnostic information on consoles.
Extensive Sanity Checking
Comprehensive tools for detecting and resolving problems such as memory corruption, memory leaks, deadlocks, and much, much more. Sanity checking is enabled in debug and test builds, but not release candidates. Plentiful debug modes offer useful features like wireframe rendering, single-step rendering, and bounding box rendering.
Special Effects
Render surfaces, projected textures, light rays, animated water, fog, lens flares, motion blur, multi-pass rendering, pixel shaders, vertex shaders, and much more.
Havok Physics
Havok Physics is integrated into the pipeline and engine for advanced physics support. This can be easily excluded for games that don't require advanced physics.
Code Cache
Never compile a file that has already been compiled by someone else in the building. A real time saver when using certain slow console compilers. Instant dependency generation doesn't hurt either.