Eamon CS - The Eamon RPG steps into a new language!
This webpage is dedicated to the Eamon CS (ECS) project - a successful port of
Eamon to the C# programming language. ECS is a hybrid system - functionally,
parts of Donald Brown's Classic Eamon and Frank Black Production's Eamon Deluxe
have been integrated, but the system itself was written from scratch and
contains many new features. It is the production version of Eamon AC, a
prototype which is now obsolete.
Eamon, with its record-oriented structure, is surprisingly well suited to the C
family of languages. Although the feature sets of C# and BASIC overlap
somewhat, they are aimed at different audiences. Adoption of BASIC by hobbyists
in the 1980s contributed to Eamon's popularity as a game development platform.
The C# language, on the other hand, was designed as a modern, object-oriented
replacement for C/C++, and has a fairly steep learning curve. By porting Eamon,
many possibilities open up that have never been explored before. The
expectation is that custom adventure design with ECS will appeal mainly to
advanced users or professional programmers.
The software repository includes a Dungeon Designer, a Main Hall, an Adventure
Runtime and The Beginner's Cave (as required for any true Eamon port).
Additionally, a Test Adventure is included which showcases the system in a more
rounded way. The documentation set typically found in BASIC versions of Eamon
has been omitted, but is planned for the future; at this point, a README file is
provided. It is assumed you are already familiar with Eamon as a system and (for
designers of custom adventures) comfortable stepping through it in a debugger to
discover its nuances. Here is a partial feature list for the game:
Complete system rewrite that fully leverages the C# language.
Uses namespaces, inheritance, generics, interfaces, LINQ, etc; extremely
restricted GOTO usage.
Highly portable. Currently Windows is supported, but future
versions may expand on this.
Native 64-bit Windows console apps – state of the art. These are
structured like typical C# utility programs – lots of command line interface
flags to control behavior.
Formal high-performance in-memory database architecture – no
array based implementation. The concept of #s (eg, Artifact #) has been
replaced with Uids so you can create/edit/delete as many objects of any type
as you want – dynamically, at run time.
The system stores data files as ASCII XML object graphs – far
more powerful than files containing simple data.
Polished text aesthetics – looks more like modern IF.
Extensive use of constants throughout code – minimal use of
“magic numbers” make this system fairly easy to enhance (game object Uids
are an exception).
Each artifact can be up to 4 “types”. For example, this allows
artifacts like light source weapons or wearable containers to exist.
You can configure each adventure with how many save slots it has,
from none (Classic Eamon) to N. It defaults to 5 which is typical.
Adventure game state is defined by a GameState object which can
be any size and contain any type of data. You can even build complex game
states spanning numerous save game files.
Control over game state cleanup is delegated to the adventure
itself, making complex game states possible.
An Intellect stat has been added which affects, among other
things, spell casting (The Beginners Cave also puts it to use).
The Dungeon Designer has an Analyse Record Interdependencies menu
option that can catch a variety of logic errors like dangling references,
invalid artifact types, etc.
The Dungeon Designer is fully interoperable with custom game
subclasses (eg, Room, Artifact, etc) when proper scaffolding code is added.
The Adventure Runtime has been implemented as a formal Finite
State Machine, a construct used to model complex program behavior.
To play Eamon CS, you should have a Windows computer capable of running the .NET
4.0 platform. Modern Windows environments typically have .NET installed, but if
needed you can find ithere.