AngelXNA v1.0

Thanks to a lot of help from Darren, today we're officially announcing the release of AngelXNA 1.0. For those that don't know, AngelXNA is a port of the Angel prototyping engine made by EALA and released open source not too long ago. The justification for making a C#/XNA version is that I, personally, like working with C# more than I like working with C++, at least when I'm trying to do prototypes. C# allows me to program faster and worry less about things like memory leaks, memory trashing, and weird side effects. By utilizing XNA, we get a lot of stuff for free, including input handling, sound, and music handling, along with the possibility (though it has not been tested) or running prototypes on the 360.

The interesting thing about creating / porting Angel was a question Darius posed to me while we were working on it, which is this: were there any decisions we'd made about the design of Angel that favored simplicity of creating games over speed / efficiency? Did we do anything that we wouldn't do in an actual game engine, just because it made programming games simpler? It\'s a pretty good question. Certainly, neither Angel nor AngelXNA take advantage of memory optimizations like object recycling or pooling, and there's no inline optimizations in AngelXNA. In addition, we didn't optimize any of the rendering or animation systems by doing things like pooling similar objects together, and AngelXNA ends up opening SpriteBatch blocks a bit more often than it should. But the question is could either version of Angel be optimized this way and still keep the same interface? It's a pretty good question, and right now I'm not sure. Regardless, I think AngelXNA is pretty easy to develop on and runs fast enough to make it a pretty nifty prototyping system, so at least that part is a success.

If you'd like you can grab the v1.0 tag from our bitbucket site (zip direct link), and Darren did a great job of creating some initial documentation on the wiki, so please check it out and tell us what you think! Darren and I (and anyone else who\'d like to contribute?) will be looking at moving on to version 1.1 soon, which should include some simple pathing using A* (something that\'s in the original Angel) and some other simple AI.

Bookmark the permalink.

5 Responses to AngelXNA v1.0

  1. SJML says:

    This is something we wrestled with a lot when designing the original Angel. It’s a tough line to tow, but when it came time for any decision of “should we do it X way or Y way” we used the razor of “What would make things easier on someone who has no idea how the engine works?” That doesn’t necessarily mean only doing things simply, but it means hiding the complexity as much as possible and providing nice handles to the user.

    In the initial architecture, I was inspired (in spirit, if not in style) by Rails, with the attitude of “do what 90% of people want to do by default.” If people want to delve deeper, we did our best to document things and make the code as clear as possible.

    Of course, that means sacrificing some efficiency and doo-dads. Angel doesn’t use a scenegraph of any kind, and thus would be hard to scale to massive amounts of Actors. Including shader support would also be hard. We only support one type of controller, but hopefully it’s the kind most people have access to. At the end of the day, it’s kind of freeing building something to *just* be a prototyping engine, because you get to optimize for understandability instead of framerate or ultimate flexibility.

  2. Marc says:

    “C# allows me to program faster and worry less about things like memory leaks, memory trashing, and weird side effects. ”

    But why would you care about memory leaks and memory trashing in a small prototype?

    • Jeff says:

      So, memory leaks aren’t really an issue unless they’re so big they cause your program to crash, but memory trashing 90% of the time causes crashes, and the other 10% of the time causes really weird behaviors. 100% of the time, those bugs are REALLY hard to diagnose and remove, and if you’re doing something for a game jam, where the end result is a demo, this can rob you of a lot of time.

  3. Pingback: Playing with Prototyping Tools « The Toolsmiths

  4. Pingback: Intelligent Artifice / Back from Game Forum Germany 2011