Eamon CS

From Eamon Wiki
Jump to navigation Jump to search
This is a Class A (gold star) article.
The Eamon CS welcome screen.

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 Linux, macOS, Windows, or Android devices; an iOS version is planned. The project's source code and documentation is managed through GitHub.

Background

While studying Computer Science in college in the 1990s, 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.

Architecture

Game code as shown in GitHub in 2020

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 19+ stories are true to the original.

Since the system has no formal installer, players normally launch the game using one of the several provided .psh files which opens the game in a console window.

Adventures

As of late 2024, Eamon CS includes 19 complete adventures, two test adventures, and one work in progress:

Number EW# Title Author Added
000 Test Adventure Michael Penner 19 April 2017
000 Sample Adventure Michael Penner 26 August 2022
000 Riddles of the Duergar Kingdom Michael Penner Halted
001 1 The Beginners Cave Donald Brown 19 April 2017
023 23 The Temple of Ngurct James Plamondon, Robert Plamondon 10 September 2017
042 42 Alternate Beginner's Cave Rick Volberding 20 April 2021
073 73 The Deep Canyon Kenn Blincoe 30 June 2021
074 74 DharmaQuest Roger Pender 24 November 2024
121 121 Wrenhold's Secret Vigil Bob Davis 4 January 2018
126 126 The Pyramid of Anharos Pat Hurst 31 January 2023
140 140 Beginner's Forest Margaret Anderson 5 July 2017
186 186 Beginner's Cave II John Nelson 12 April 2021
195 195 The Training Ground Charles Hewgley 17 July 2017
262 262 The Sub-Aquan Laboratory Michael Penner 19 April 2017
263 263 The Vile Grimoire of Jaldi'al Michael Penner 26 June 2020
268 268 Demo Adventure Frank Black 1 July 2017
271 271 A Runcible Cargo Thomas Ferguson 19 April 2017
273 273 Stronghold of Kahr-Dur Derek Jeter 19 April 2017
276 276 Land of the Mountain King Kenneth Pedersen 27 February 2020
278 278 Escape from Mt. Moon Logan Blizzard 26 August 2022
279 279 The Tower of Eamon Frank Black, Thomas Ferguson, Huw Williams 28 July 2022
280 280 The Wayfarers Inn Michael Penner 31 October 2023

Test adventures and in-progress adventures are listed as part of the game's Developer's Workbench.

Future development

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.

External links