EndlessClient

URL: https://www.github.com/ethanmoffat/EndlessClient Background EndlessClient is an open-source client for an old MMO, Endless Online. While the original developer has been actively working on the game in the past year, the original game went offline around 2012 and hadn’t received updates for about 4 years prior to that. An initiative to create an open-source server emulator has been in development since 2008/2009, and has been running a “clone” of the original game server for the past few years. Other popular private servers have been developed based off this server emulator software. ...

etheos

URL: https://www.github.com/ethanmoffat/etheos Background eoserv is a popular open-source option for running an emulated game server for Endless Online. However, the developer experience for setting up a local environment is extremely lacking. There are also a number of features in the game that remain unimplemented in vanilla eoserv. Project Goals There are two primary goals for etheos: Provide an excellent developer experience that simplifies setting up a local development environment Implement missing features from vanilla eoserv Features SQL Server Support Vanilla EOSERV ships with database support for MySQL (MariaDB) and Sqlite. Microsoft SQL Server support was added using the ODBC driver libraries as an alternate database engine. ...

PELoaderLib

URL: https://www.github.com/ethanmoffat/PELoaderLib Background While developing EndlessClient, there was a desire to support cross-platform execution on both Windows and Linux. However, the graphics loading relied on Win32 API calls LoadLibrary and LoadImage which were not available on Linux. There also did not exist a good library for loading PE resources from binary files in C# that worked cross-platform. Project Goals PELoaderLib was developed as a library to enable EndlessClient to load PE resources in a platform-agnostic way. To do this, the PE files are read as a raw stream of bytes and parsed according to the PE file format. Documentation describing the layout of a PE file was relied on heavily to accomplish this. The link for this documentation is no longer live; the information describing the format is captured elsewhere in MSDN documentation. ...

XNAControls

URL: https://www.github.com/ethanmoffat/XNAControls Background While developing EndlessClient, a pattern naturally emerged while working with XNA/MonoGame that relied on the use of individual game components to represent UI elements such as buttons, textboxes, labels, etc. Splitting up the game rendering logic into individual components made a lot of sense to develop individual, reusable pieces of UI code. Project Goals XNAControls serves to provide a UI library for EndlessClient (or other MonoGame-based games). Individual components handle their own input and events. Creating and using controls should be easy and sensible. Dialogs should work similar to how they do in Windows, with only the topmost dialog handling input/events. ...