Introduction
The Builder is a tool initially made to create big files (similar to Zip or Rar archives) using a format specially
conceived to allow efficient access on slow medias. Over time, and upon requests from game development teams,
new features have been added, thus transforming the Builder from a simple file packager to a full-featured script
language interpreter.
So far this tool has been successfully used in production on the following projects:
- VRally 3: Playstation 2, Xbox, GameCube, PC
- Kya: Dark Lineage: Playstation 2
- Titeuf: Playstation 2, PC
The two next generation games (in development currently for Microsoft's Xenon console, and later on Sony Playstation 3)
at Eden Games also use the Builder to generate resource packages, automate the
ClickSafe operations, launch nightly builds, ...
Quick description
The Builder is a simple executable that reads and executes instructions found in .BLD scripts. A BLD script can perform the following actions:
- Parse C header files: handle #include directives, extract #defines and enums values,...
- Manipulate strings: load and save text, search for patterns, parse lines and tokens, change text case,...
- Manipulate values: apply standard mathematical and boolean functions, convert to and from text, evaluate expressions,...
- Use structured constructs: if/elseif/else/endif, do/loop/exitif
- Create big files: with optional tagging of sub-files, offset alignment specifications, endianness handling, LZ77 compression, file extraction,...
- Send emails: text or html, with or without attachments.
- Interact with the user: input values, show message boxes, file and folder selectors, speak
- Interact with the system: call external applications, receive environment variables, access to the registry
Development information
Here is some information about the development itself:
- Software used: Microsoft Visual C++ 6, then Visual.net
- Language: C++, heavy use of STL
- Additional libraries: Blat (email), Greta (regular expression engine), ClickSafe integration.
- Number of developers: 1
New instructions, functions, pre-defined variables can easily be added to the core engine using a standardized registration interface.