Eamon CS, also known as ECS or by the longer name The Wonderful World of Eamon (C# Branch), is a version of Eamon ported to the C# programming language by developer and adventure author Michael Penner. The project began with a prototype known as Eamon AC released in July 2015 and now obsolete; Eamon CS was first released in early 2017 and continues to be developed and expanded.
Eamon CS is free non-commercial software and runs on Windows, Unix, or Android devices; an iOS version is planned. The project's source code and documentation is managed through GitHub.
While studying Computer Science in college in the 1980s, Penner learned the C programming language and became interested in how Eamon, originally developed in Applesoft BASIC, could be adapted to the more powerful C. The idea was left unrealized until 2014 when his interest in Eamon was rekindled and he set out to build the system. Penner completed the first iteration, known as Eamon AC, in 2015 but was unhappy with its architecture and at a colleague's suggestion began work on a second iteration in C#. Writes Penner, "I realized the immense benefit of using C# and .NET Core for Eamon, with its rich and powerful libraries, simplified syntax, and long-term platform viability. I loved the idea of being able to build Eamons of limitless complexity in a modern programming environment like Visual Studio using C# and paradigms like LINQ, which seems perfectly suited for use in text-based games."
In correspondence with Huw Williams in 2020, Penner says that one of the challenges of developing CS has been maintaining focus over a period of years; another is keeping the system well-structured while also letting it develop organically without explicit design specifications. "I was always open to refactoring parts of it that proved deficient," Penner writes. "There have been dozens of overhauls — some of them taking months. This kind of work is taxing, especially when you're taking something that on the outside appears to work but architecturally needs an overhaul." Penner also notes the difficulty of keeping the documentation up-to-date as the game develops.
Penner says he takes particular enjoyment whenever a new adventure debuts and any time a technological or documentation hurdle is cleared, but says the most enjoyable part of the project is hearing that people are playing and enjoying the game.
Penner created Eamon CS to be "the definitive version [of Eamon] for the C family of languages" and takes full advantage of C Sharp's class-based and object-oriented nature to produce a system that's logically structured, flexible, extensible, and consistent with modern programming methods and practices. Penner describes the result not just as a port but as a fully-featured toolkit for building adventures within the Eamon ruleset, and includes utilities to help authors construct new adventures.
Penner's Eamon CS website gives more details on the system's architecture.
Experience and features
A distinguishing feature of CS is its faithfulness to the classic Eamon system and the adventures it reproduces. Though the C# code was written from scratch, the logic is drawn from the original Applesoft BASIC by Donald Brown (originally converted by Penner as part of his prototype Eamon AC project) with some features also drawn from Eamon Deluxe by Frank Black such as the village and practice yard. Character creation and management in the Main Hall and the mechanics of adventuring in the system's 14+ stories are true to the original.
Since the system has no formal installer, players normally launch the game using one of the several provided .bat files which opens the game in a console window.
As of mid 2022, Eamon CS includes 14 complete adventures, one test adventure, and two works in progress:
Test adventures and in-progress adventures are listed as part of the game's Developer's Workbench.
Penner continues to develop Eamon CS and hopes to add more adventures, including both original stories and ports of older classics. He also plans to explore some of the earlier Eamon works to see what other functionality might be suitable to bring into CS. "I have some ideas for new enhancements," Penner writes, "but I suspect some of these are not really new and maybe have been introduced before. It makes sense to look around and see what's been done already."
Penner also plans to work on the game's documentation, and once the Player's Manual is complete may try to develop a mobile version of the game. He also assists players who want to develop adventures of their own.