Saturday, June 27, 2009

I'm developing with ALLEGRO: A cross platform game programming library

Yesterday, I talked about how Windows was the best target platform to develop for. Today, I'm pleased to announce that I don't have to choose, because I'm developing my upcoming computer games with a cross platform library: ALLEGRO.

ALLEGRO (an acronym for Atari Low Level Game Routines) is a very powerful game programming library with code that is entirely portable and compatible with with any computer platform. In other words, this means that I can compile my code without any errors on Windows, Mac, or Linux computers, and it will run on those platforms. Thus, what I develop over the summer with ALLEGRO should be playable by literally anyone as long as there is a compilation available for your computer platform. Don't forget that I'm an open source developer, so it should be easy for anyone to do.

There are more reasons than just cross platform compatibility that lead me to choose to develop with ALLEGRO. Like it's name suggests, all of the functions in ALLEGRO are very small and simple. This saves an unbelievable amount of RAM and hard drive space with my programs. For example, all of the artwork used by my game is hand drawn pixel-by-pixel 24 bit color bitmaps. You can start to imagine how much space that saves when you compare them to the PNGs I'm forced to use when I develop for Wii.

For those of you who don't know, I'm a big OOP programmer. ALLEGRO isn't really all that object oriented at all. In fact, it doesn't even have a Sprite struct or class. While this may be annoying for some people, I actually really enjoy it. This challenges me as an OOP programmer to write powerful classes to wrap together all of the functions relating to an object that aren't bound to classes with original variables not bound to structs. Either way, doing some extra work on my part is a far better alternative to having to potentially rewrite parts of ALLEGRO (making a custom version of it) just so I can write a class that inherits from an existing class.

I could probably write an entire post about this, but as a last note, you should know that I'm developing not with the latest version of ALLEGRO (4.9.11) but instead with ALLEGRO 4.2 This is because 4.2 was the last stable release of ALLEGRO that contained (or so they claim) no bugs at all. Shortly after the release of 4.2, a new team of developers took over ALLEGRO and they haven't been able to push out a completely stable release yet (though they claim 5.0 will be a stable release). In short: Just be aware that I'm using version 4.2 of ALLEGRO instead of the latest release.

Well, that about wraps it up. Thanks to the cross platform compatibility of ALLEGRO, everyone should be able to enjoy my upcoming games. I hope everyone is looking forward to this as much as I am.

1 comment:

  1. Hello,
    The Article on A cross platform game programming library is Amazing ,It give detail information about it ,Thanks for Sharing the information.Xamarin Apps Development