Posted on 30 January 2009 by Jeff Ward

This is news to me. Apparently EA has release one of its prototyping GameJam frameworks to the public on Google Code. The framework (called Angel) is available here:

http://code.google.com/p/angel-engine/

From the site:

Angel was originally made by a group of employees at Electronic Arts Los Angeles for use in a GameJam they were planning for April of 2008. The source was opened in January 2009.

Angel provides:

  • Actors (game objects with color, shape, responses, attributes, etc.)
  • Texturing with Transparency
  • “Animations” (texture swapping at defined intervals)
  • Rigid-Body Physics
    • A clever programmer can do soft-body physics with it
  • Sound (.wav only)
  • Text Rendering with multiple fonts
  • Particle Systems
  • Some basic AI (state machine and pathfinding)
  • Config File Processing
  • Input from a mouse, keyboard, or XBox 360 controller
    • Binding inputs from a config file
  • Tuning Variables that write out to a config file
  • In-Game Console
  • Logging

It should be noted that Angel is not a framework for beginning programmers.  Again, from the site:

Angel is designed for experienced engineers. That doesn’t mean that it uses all sorts of crazy programming techniques or is difficult to use (quite the opposite: see #1), but nor does it hold the developer’s hand very much. It’s expected that a developer has at least some experience exploring a codebase to see how it works.

I think this is fine for a prototyping framework, as they’re made to get “out of the way” so that a programmer can do exactly what they want quickly.

I look at prototyping frameworks as one of the key tools a company can provide to programmers. It allows them to quickly and easily investigate a new system in your game without having to go through the complicated mess of your engine (and, yes, regardless of how awesome your engine is, it’s still a complicated mess). In my mind, this is a big thing, and I hope it continues to evolve over the next few years.