Skip to main content

The Hail Audio System is now GPL

Submitted by Lorien Dunn

The Hail Audio System is now GPL.

You can get the sourcecode from http://sourceror2.tripod.com.

It works on win32 and linux (soon to be macos 10). This is an entirely scriptable (with Ruby- http://www.ruby-lang.org) 2d/3d hardware accelerated game audio engine. It uses FMod http://fmod.org, which is a game-audio API developed here in Oz.

Most of the Australian games industry has already recieved a much earlier version of this code, as I'm looking for work.

This version fixes many bugs, has more functionality, is tested on two platforms, and has an automated build system.

Note that you should understand the GPL before putting it in a game- you would have to release the entire sourcecode for your game under the GPL too. Or buy a different license from me (expensive, as I'd have to get a commercial FMod license). Alternatively you could hire me :)

The package contains:

Timer: Provides millisecond accurate timing from a hardware clock.

Log: A unified debug log for c++ and ruby.

Memory: A screaming fast memory pool allocation system. On win2k seems to be around 6* faster than malloc/free, and on (a very optimised) linux 2.4.19 around 2*.

Vector3: A basic 3d vector class that is very easy and fast from c++ and very easy from ruby.

Scheduler: Allows deferred execution of ruby code-blocks. If your event loop runs fast enough it is accurate to the millisecond, otherwise it catches up. Based on a scheduler by Roger Dannenberg for interactive music systems and midi sequencing.

Signal: Like a Signal/Slot framework, but lets you connect to any number of ruby code-blocks.

RubyMM: An exception safe c++ to ruby communication library. Lets you use any ruby class/instance/module from c++ with minimal effort, and hence makes it easy to write c++ classes with virtual ruby methods. Also eases embedding ruby in a c++ application.

Audio: a realtime 3d game audio engine written with the above classes and Fmod. Makes it easy to embed all the sounds an entity can make inside that entity, and allows control of all those sounds at once though a Manager.