Home-grown. This is from the tail-end of my oly designer's notes:
Some meaningless numbers
Metrics such as program line-counts are of dubious merit, but since
many are often curious about these details, I will mention them here.
The Olympia engine is written in C, is approximately 45,000 lines long,
and runs under Unix. The map generator is another 3,000 lines. A
playtest game with 40 players runs in about 5 minutes on a 486/33,
and consumes 12 megabytes of RAM.
During a turn run, the engine loads the entire database into memory, works
through the turn, then saves all of the player events and the updated
database back to disk. A back-end processor generates the final turn
reports which the players see.
The program tries to avoid imposing arbitrary limits (or at least ones not
suggested by the game rules). A strong enough character could hold every
item in the game, for instance. Every unit in the game could move into
the same province, and even band together into one huge army. The
Olympia engine is bounded only by Unix's virtual memory (I currently have
40MB configured, but this can easily be expanded.)
-- Rich Skrenta <email@example.com>