The PBeM Engine - Introduction
About two years ago I began getting involved in PBeM games,
from typical war-games to more complex economic and historical simulations.
Although I found these much more interesting and challenging
than the typical online MMPG jump-and-runs or ego-shooters, I
was never really content with playing them, I wanted to create
my own. Being a programmer by trade this seemed doable but I
realized that there are probably many fine players out there who
would make excellent admins but are unable to get started simply
because they happened to have studied history, accounting or law
instead of computer science. So the idea was born to write a
PBeM engine, an application which could be used by anyone with
average computer-user skills to create an online game. After some thought, the following
guidelines were adopted:
- The application (engine) must allow the user to design and
run a strategic / tactical multiplayer war game online.
- No programming, web-publishing or advanced computer skills
should be required from the admin.
- The player (not the admin) should not be required to
install any software on his local machine)
- The player should be able to participate in the game using
nothing more than email (although some online maps and
instructions will probably be needed or at least of great
advantage)
- The engine should allow the design of both historical and
current scenarios
- The user of the engine should be able to define his/her
own map, terrain, units, weapons, formations and rules
within a menu-driven framework
- The engine should run on a typical Windows machine (Win 95
or better)
- The web-components needed to manage the multi-player game
should be created by the application and should not require
any server-side components (no server-side scripting, ASP,
PHP or other in order to be run on any free web-site such as
Yahoo!)
- The incoming and outgoing mails (orders) should be handled
over any MAPI-compliant mail-client (i.e. Outlook, Outlook
Express)
- All more or less current browser types (IE, Netscape,
Opera, ...) should be supported on the client side.
- Although there would be no limit to the number of players,
resource management and speed of the engine is laid out for
50 to 100 players per scenario
- The engine should be able to handle multiple scenarios and
multiple concurrent games.
- And finally: the engine should be and remain freeware (but
not open-source).
Choosing a development environment, programming language and
database format was a rather simple task. Since all high-end
databases, especially server-side DBs were out, Microsoft Access
was a rather logical choice. The DB format can be accessed by
most applications in most languages and does not require the
user to have Access installed.
Although C# was my first choice as programming language, I
quickly decided that Visual Basic, though slower and less OO
oriented, would be best for an application that will grow over
time.
The engine is split into three large components but packed
into one EXE (and two dozen DLLs)::
|