Technology
Overview
The Offset Engine is a complete platform for creating next generation games. Every aspect of the engine is designed around the goal of reducing development time and cost, while empowering designers and artists with the tools they need to create spectacular visual effects and immersive environments.
For Designers - The Offset architecture is different from any other engine out there. The game logic and editor are directly linked, allowing level designers to work and think in new ways. The core principle we have been developing around is fast iteration. A designer can block out a level, setup AI, test gameplay, and then iterate on these aspects very quickly. All the game logic runs in the editor which means instant feedback and on-the-fly testing.
For Artists - The Offset Engine empowers artists to create, change and experiment with visuals without needing a programmer. The shader builder, effects editor, and animation editor all share the same graphical interface and node based architecture.
For Programmers - Programmers will appreciate the straightforward layout of Offset's cross-platform code base. The C++ code is clearly separated into sections for the core engine, renderer, editor, game, and generic libraries. Additionally, all resource files are specified in easy to read XML format, making it easy to track down bugs caused by bad assets.
For Teams - The Offset Engine is designed to scale well to large development teams. A modularized code base, asset manager, and layer system in the editor gives teams the tools they need to organize a next gen project.
Rendering
Offset's state of the art, cinematic quality HDR rendering system takes full advantage next generation hardware.
In game screenshot demonstrating the level of quality achievable in real time with the Offset Engine
Unified Per Pixel Shading - Offset implements an approach to rendering which decouples lighting and surface shading, similar to how traditional offline renderers such as Pixar's Renderman work. This allows a huge amount of flexibility to create an infinite number of surface effects that work under any lighting condition.
Powerful Shader Creation - All the power of the rendering pipeline is exposed to the artists via an inuitive node-based shader editing system. Unlike the material system of other engines, there are no limitations on the type of shading models that can be used. Effects such as subsurface scattering can be approximated via custom falloff models that artists can place down.
Modifying a skin shader in real time
Lighting - Several different types of light sources are supported, including omni light, omni projector, spotlight, spotlight projector, directional, and sky light. The projector lights have the ability to cast any shader into the scene, allowing for interesting projected effects such as caustics or "strobing" effects. New lighting models can also be added by a programmer.
Shadows - Texture based shadows allow all objects in the scene (including particles) to cast and receive shadows, and be correctly self shadowed.
Normal Mapping - The engine fully supports normal mapping technology, which allows source art comprised of millions of polygons to be reduced to just a few thousand polygons with no apparent loss of detail.
On the left is source art comprised of 1.2 million polygons. On the right is the resulting in game model comprised of just a couple thousand polygons. Apparent detail is restored via the use of a normal map.
Light Mapping - The engine provides integration with Maya for computing lightmaps using GI rendering techniques. Directional lightmaps are supported.
Post Processing - Effects such as motion blur, depth of field, and specular bloom are all implemented with the engine's post processing architecture. Post processing passes can be 'chained' together, using previous passes as inputs into other passes, allowing for completely customizable post processing effects.
Motion Blur - The Offset Engine is the first engine to utilize true cinematic quality motion blur on all objects. Rather than being a simple special effect, the motion blur works uniformly on everything that gets rendered, including moving and deforming objects and particles. This, combined with unified lighting, shading, and shadowing, bridges the gap in quality between real time and prerendered graphics.
Hardware Occlusion - Automatic hardware occlusion eliminates the need for precomputed visibility, or for designers to manually place portals down in their levels. Large environments can thus be created without requiring a separate visibility pass from the designers.
Unified Editor Framework
The Offset Editor allows all aspects of the game and game content to be created and modified inside a single application. It is built from the ground up with the goal of decreasing development time and promoting fast iteration.
Instant Feedback - Modifying an asset, such as a shader, effect, script, or entity definition, can be done on the fly with instant results inside the editor.
Play the Game - Because the editor exists simply as a layer on top of the engine itself, all game logic and engine systems are running as you edit. This allows designers and artists to play the game at any time during editing, inside the same editor window. Editing can even continue while the game is being played, with instant results.
Layer System - The layer system allows multiple people to work on a level at the same time without overwriting one another's changes. This allows a level designer to work on a gameplay layer, and an artist to work on a lighitng layer, for example.
Maya Style Navigation - There is very little learning curve for developers already familiar with Maya. Offset's navgiation and object manipulation tools are modeled after Maya's functionality.
Robust Undo - All map editing actions can be undone with an unlimited undo / redo system.
Effects System
Offset's effects system allows special effects such as explosions, smoke, blood, magic, and impacts to be created through one unified interface. Camera shakes, particle systems, sounds, and light effects are all considered effect components that are tied together through the effects system.
The Offset effect editor ties together sound, camera, particle, and lighting effects into one interface.
Powerful Particle Editor - Similar to Offset's shader builder system, particle effects also use a node based approach. This allows for very complex effects to be created by artists without the need for a programmer. "Super emitter" type effects and particles that change their properties based on various conditions are trivial to set up. Artists familiar with 3dsmax's "Particle Flow" system will be right at home with the Offset Engine.
Cinematic Quality Particles - Particles work seamlessly with the engine's lighting, shadowing, and motion blur systems. Even the simplest of effects, such as the simple black square texture below, is brought to life with motion blur
Game Code
Offset's "simulation" code and entity system makes new gameplay systems straightforward to implement. New entity code automatically gets exposed to the editor's interface, so that no editor specific code has to be written to support new gameplay code.
The game code provides full integration with the LUA scripting language, allowing game logic and events to be created by designers outside of the C++ environment.
All the core tools for building gameplay logic are included: Triggers, weapon systems, player logic, etc.
Entities can be set to sync over the network, allowing for straightforward implementation of multiplayer code.
Hundreds of Goblins running realtime on the Offset Engine.
AI System
The AI system is designed to reduce work needed by the developer. Rather than forcing the programmer to create a collection of state machines, agents create plans at runtime through goal-oriented action planning. An agent-centric representation of the world is automatically generated rather than having a designer build it from scratch. Visual output for agent states and decisions can be viewed at runtime rather than requiring a programmer to enter the debugger.
- Agents automatically determine how to sequence their actions, allowing the developer to only concern himself with what each action should do.
- An agent's assigned goals and actions can be modified at runtime in the editor allowing for fast iteration and experimentation.
- A navigation graph is generated by the editor to help the agents navigate the world.
- Agents can track and prioritize multiple threats and suspicions to interact with.
- At any point in the editor, an agents can be told to draw the states of different internal systems to assist in the debugging process.
- Sensory system such as vision will display what other entities are being noticed and why.
- Memory systems such as threat tracking will display which entities an agent has classified as threats and how dangerous he perceives them.
- Planning systems such as motion path finding will display the current path being followed along with the current state of any paths that are being computed.
Various AI tools in the Offset Editor
Animation
The Offset Engine boasts a powerful animation system, with support for both skeletal and morphing animation data.
Transition Graphs - Animation states are governed by user-defined hierarchical transition graphs, which define how and when animations play. Transitions from one animation to another are defined completely outside of code or scripts.
Blend Trees- These control how the engine combines multiple simultaneous animations into a single, final pose at run time. Many types of blends are possible, with support for split body animation.
Event System - At run time, the inputs to the animation system are directly controllable through game events and scripts, giving animators and designers complete control over the end result.
Intuitive Editing - Blend trees and transition graphs are completely customizable through an intuitive node-based interface in the Offset Editor.
No Limitations - In order to allow as much creative freedom as possible, the Offset Engine's animation system places no limitations on the number of bone weights per vertex, the number of levels in the transition graph hierarchy, or even the number of simultaneous animations being blended together.
Animation graph editor controls transitions between animations
Network
- Client / server network architecture.
- Fast UDP based architecture built for FPS and fast action style gameplay.
- Minimal distiction between client and server in the game code, which allows for quick prototyping of gameplay without worrying about getting it to work over the network. Most things "just work", with some specific handling required in certain cases.
- Master server code provided.
Debugging
![]() | ![]() |
| CPU Profiler | Memory Profiler |
- Tracks profile statistics in a nested zone architecture for each thread.
- Find the source of performance spikes with the hierarchical graph of the CPU history.
- Multiple performance graph views including total call time, average call time, and number of calls.
- Tracks memory statistics in a nested memory heap architecture.
- Find the source of memory spikes with the hierarchical graph of the memory history.
- Multiple performance graph views including total allocated bytes, and number of allocations.
- Leaks are reported per memory heap.
- Easily track the source of leaks with optional call stack tracing per allocation.

