Ask a Developer!
Ben Wei, currently attending Purdue University (go Boilermakers!), asks us about our game engine:
Can you tell us more about it? What is it called? What sort of third-party tools and components did you use (things like physics, sounds, and even modeling programs interest me)? Does your engine run on more than just the Xbox 360?
These days we refer to our engine simply as the Vector Engine. When we first started our company, we explored using various middleware solutions, but none of them were a great fit for what we were trying to do. Our most important requirement for an engine was content creator efficiency. We chose this as our number one feature because we knew that as a small developer we would need to get the most out of our relatively small budgets to be competitive.
Our engine is able to achieve this efficiency with rapid iteration, a short learning curve, stable and intuitive tools, and keeping things simple. Some examples of specific engine features which allow us to do this:
- Real-time telemetry between our tools and the game - when a content creator makes a modification in our game editor, the change can be seen instantly in the running game, on any platform.
- Assets are 'baked' on-demand by the game engine running on the target platform. This means that there is no complicated set of processing tools to run on the PC after an asset is exported. If a texture is modified, for example, the game itself will process this texture when needed. No need to bake a bunch of assets that are not even in the part of the game you're working on.
- Game shaders run in hardware inside the Maya viewports. Allowing artists to work directly with our game shaders saves a ton of iteration time.
- Visual scripting. This is an intuitive way to create game logic. If things get complicated enough where more control is needed (give me some lua!), then we might as well write it natively (C++).
Ok, got a little side-tracked there, but I guess the point I am trying to make is that content creation is king: A game engine and tools are supposed to enable creation, not hinder it.
As for the next part of your question, the two pieces of middleware that we integrated for HTH are FMOD for audio, and Bullet Physics Library to handle collision detection and rigid body physics. On the content creation side, we used Maya, Photoshop, and Crazy Bump. For version control we're all about Subversion.
And yes, our engine is designed to be cross-platform. Currently the two platforms we support are PC and Xbox360, but it will not be a problem to extend to more platforms when the need arises (e.g. PS3, Wii, iPhone, Android, Mac, whatever...).