What is IntelliArchiver?
IntelliArchiver is an archive format designed especially for games without any extra "fluff" in standard formats. No per-file CRC32 value, attributes, or filetime ... just the data, its name, and whether its encrypted. Likewise the header is also streamlined.
The result? An archive format that is extremely rapid and small. As much as 10% smaller than your standard Zip archive and made in as little as 66% of the time!
It's also written in Object Pascal.
Features
Five internal formats: Indexed; 24, 48, 255 & unlimited character-length filenames. Unlimited length filenames are stored differently and compressed for smaller archives.
Built in encryption: Using XTea to encrypt your data transparently from prying eyes.
Multiple Compression Algorithms: ZLib and BZip2; the archiver defaults to BZip2 wherever possible for smaller filesizes.
File Presorting: For an even faster binary search! (Coming in 1.0 Final, the archives already are presorted.)
Object Oriented File List: Adapts to the archive type without mangling your data.
Price: For development it's free! When you go to sell you pay $10 for $25k profit and less range games; IE, you 0.04% of your game's profit ONCE for the project. For full source an individual pays only $100 for ALL their projects. (Corporate folks may contact me on a per project quote.)
Support for 4gb archives! You are limited to a maximum of 2147483648 files per archive, however, and you must also make room for the actual file records. :P Suffice it to say IntelliArchive is "big enough" to handle your data, even when large in size.
Miscellany
License
Download
Support
Project Website (Coming soon!)
I can honestly say I never thought I'd make it to this point. Biggest milestone I've hit in programming yet! Happiest moment yet was when I implemented the interface method of passing the archive reader from the DLL -- after a bit of cleanup it was fully functional and didn't crash.
Thanks to:
- Yuriy Kotsarenko (AsphyreXTea, moral support)
- Alex Demchenko (CRC32 Hash Algorithm)
- Edison Mera Menéndez (Pascal Implementation of BZip2)
The Future...
64bit OSes & Vista? No idea how to do this without buying a copy of Delphi and/or directly testing it. Maybe if I get a corporate sponsor or a few corporate licensees...
Unicode Support: It's hard to get without paying, and I'd really like to support it. I'll figure something out though. I've got 3 more internal file types reserved and can do some internal testing. The trouble is making the wizard and search routines support it.
FPC Support: Currently this is tentative. IA
should work currently with Delphi Compatibility enabled, but I've not tested it and I'm getting a bit burnt out in troubleshooting.
Binary Searching of Archives (1.00 Final): This is half implemented. I have the files presorted before addition to the archive, so the internal flags and searching needs to actually be implemented. As I said in the previous point: I'm beat; I've been troubleshooting a DLL with memory errors and BDS crashing every 45 seconds. Gimme a few days.
Refactoring: Ugh, where to begin.... Simply put, the actual source is somewhat ugly. Especially the pairing between objects and records. I'll be looking into and reorganizing stuff like crazy prior to release. Also, the unlimited length filename record is identical to the indexed one -- originally there were differences -- so I've got to make the object a descendant of the indexed one. I even need to revise my comment header blocks in the units, since they're 2 revisions old.