Version 2, last updated by Nik Radford at Oct 24 09:20 2008 UTC
What is Elyseion?
Elyseion is meant to be a Mud Engine and Framework that is put together by and extensible via components.
The Idea is that each part of the Mud is either a component or plug-in, and if you don’t like the default implementation of a component you can replace it by implementing the interfaces within the core. For example, the Database component: The initial component will be a flat file storage for the engines data, however if you don’t like it, you can implement your own back end for example a MySql back end.
The challenges of the project
This is proving to be a huge test of not only my programming knowledge and skills, but of my architectural skills as I wish trying to keep everything separate yet provide an interface between them (mainly using a service locater pattern of sorts) is quite trying on my mind. Mainly as I need to determine what needs to be exposed, how things are generally represented and what to provide in the Core that would make writing plug-ins or replacement components easier.
Already I’ve decided to write the default components as separated from the core, as the core should only contain functionality common to all possible permutations of usage of the engine / framework and shouldn’t be a game within itself. But as time goes no doubt I’ll be moving things into the core and out of the core. However, the whole solution is stored within this single Git repository, due to Visual Studio’s solution handling.
Also it’s going to take a shear amount of effort to stop this from becoming a complete mess :P As most MUD codebases I’ve come across usually are. I want the framework and main engine to be clean code, and to encourage cleaner code from those that may in the future become plug-in and component writers.
Help is always welcome as well as design comments and constructive criticism.
Space Home