pICE Downloads

Install pICE like any other perl module:

perl Makefile.PL
make test
make install

You will need two other modules to make pICE (aka Alleg::*) work. The Clone module and my enum pragma, both can be found through CPAN. Easiest way for most Perl users is just to use the CPAN shell (perl -MCPAN -e shell) and type 'install Clone' and then 'install enum'.

You will also need to know Perl quite well, including its object oriented features as this module makes heavy use of them. You should also know how normal ICE works quite well before trying to play with this interface.

pICE is x86 only (Linux, *BSD, Windows (using Cygwin, which I've tested quite a bit)). ActivePerl also works, however you must use version 5.8.2 or better. I'm not sure why, but the 5.6.x versions of ActivePerl don't work with pICE (although 5.6 works fine under Cygwin and *BSD so I'm assuming it's an ActivePerl only bug).

Don't try running this on a Sparc Solaris box or any other box with a different byte order or native floating point representation, it won't work w/o a bunch of rewrite. If you don't know what any of that means, you're probably fine.

There are almost no docs with the package yet. To start you off there is a script igc2perl.pl in the bin/ directory. The useage is pretty simple:

igc2perl.pl  zone_core.igc  new_directory

This will zone_core.igc (or whatever core you want to start with), create a new directory "new_directory", and generate a bunch of Perl files in there with a build script to tie it all together. Basically it does what it says; converts a raw Allegiance "icg" file (game core) into its Perl equivaliant. The wrapper script is my_core.pl. Run my_core.pl without any arguments and it will try to run all the Perl code and generate your new igc file as my_core.igc. If you like make, there is a Makefile as well with "all" and "clean" targets.

Note, since the above is auto-generated code it isn't going to be very elegant. While I've tried to keep it very readable, by its nature it can't take advantage of any of the really interesting parts of pICE such as dynamic Pre/Def ID generation, object cloning, etc. What it will do is give you something working to start with, which believe me is a hell of a lot better then starting a core from complete scratch. It should also serve as something of an example for how much of pICE works.

A typical core developer might ease into pICE usage by first converting their starting core using igc2perl.pl, and then add their new features using Perl code directly, taking advantage of the better "helper" features of pICE (at least once I document them...).

And of course, since this is all pure Perl code you can get some idea of toys I've built but not yet documented through the package source. A horrid way to learn an API, I admit, but hey I'm busy. :-P

Good luck!