Halo engine (Blam!)
The Halo engine, colloquially called the Blam! engine by the community, is the proprietary game engine powering Halo. It was developed in-house at Bungie and has undergone significant evolution over the series' expansion. According to a Jason Jones interview, the engine has its roots in Myth:
Halo didn't begin as a strategy game but the engine it uses started out that way. The engine Halo uses began as a next-generation Myth terrain engine, with polygonal units.
By 2001's standards, the engine and asset tools were fairly innovative and powerful, combining techniques like portal-based occlusion, radiosity, particles, AI and pathfinding, dynamic physics, advanced shaders, and a scripting engine. It was written in C and C++.
Blam! is not a generic game engine like Unreal or Unity; it was purpose built to implement a sandbox shooter. Concepts like projectiles, wind, and vehicles are part of the engine, and it is not possible to add new systems to the game which were not required to build the kind of gameplay Halo has now. However, the systems which do exist are highly data-driven through the use of tags. Aside from writing singleplayer scripts (part of the scenario tag), map authors can expect not to have to write any code to build new experiences.
Tags come in expected types only and can be seen as the "interface" to the game. All customizable assets and gameplay parameters are represented as tags within map files, with tags forming a dependency tree via references. When the game loads a map, it will use the included tags to drive game systems such as AI, weapons, vehicles, rendering, physics, and more.
- Map loading
- The renderer
- The physics engine
- AI system
- Sound system
- In-memory game state
- Scripting engine
Note that on Xbox, the engine makes some in-memory tag edits for balancing.
The Halo engine was not just used for the Halo series. Bungie co-founder Alex Seropian went on to found Wideload Games and used the engine for Stubbs the Zombie in Rebel Without a Pulse. In fact, it is possible to extract tags from Stubbs using Refinery and recompile levels for Halo.
Another lesser-known use was in prototyping Shadowrun gameplay while its own engine was under development.