Egoboo Development Diary – Entry 1

The dungeon crawler Egoboo is now actively maintained again: A team of developers is reviving the cross-platform dungeon crawler Egoboo on GitHub. This is the first post of the “Egoboo Dev Notes” series in which the developers keep you informed on the course and progress of the development of Egoboo.

It was pleasant surprise for the developers that resuming the development of Egoboo found some resonance. There still seem to be quite a few people out there who care for this odd piece of gaming history called Egoboo. For the ones who have never heard of Egoboo: it is a dungeon crawler and quite an entertaining game; however, its development stalled for a long time, bugs and glitches were not fixed and the game did not evolve. However, it is actively maintained now again. This is more or less normal progress for open source software such as Egoboo, but there are perfectly normal questions any open source project should answer – for one thing: indeed Egoboo is and will stay open-source and subjected to the GPLv3 license and you can download the game and its source code for free as before. This is the first question any open source project should answer. However, there are many more and those are not that easily answered: as a consequence, the team decided to start this monthly series of posts – primarily targeting prospect developers and content creators – that will keep you informed on the course and progress of development on Egoboo.

In this first post of this series, we will describe a few changes that are made or being planned to Egoboo’s technological basis and we talk about graphics and sound, controls and user interface. More importantly, we try to communicate our relation to to various aspects of Egoboo, in particular what we intend to change and what we intend to keep – eventually, this is important to some people out there as gamers really hate when something changes for the worse. Last but not least, we give you a target date for a first binary release.

Who we are is less important, what we do is maintain Egoboo, an old, weathered piece of code and data that had a bad start and allegedly suffered a lot. However, somehow it managed to stay a unique, entertaining game. Maybe this is the reason, why people still care for Egoboo. In any case, we care. This is why we want to make sure that Egoboo withstands the test of time as it did before for years to come. We want to improve and maintain the technology as well as the assets, to make sure that Egoboo lives long and prospers – and eventually we will make some old scars vanish.

Things to Change: Technology

The Egoboo developers wish to begin the time-consuming task of bringing Egoboo’s code and data up to date, so that it fulfills the quality requirements that ensure proper maintainability and documentation. We want to make sure that Egoboo withstands the test of time.

Drastic changes on the underlying technology are made such as the final transition from C to C++ shows: Egoboo compiles now with recent C++ compilers under Linux, Windows and Mac, the amount of C code/C-ish code is decreasing steadily (ultimately, Egoboo should take advantage of what C++ 11 and beyond offers to us). An improved build system and updating external dependencies (for instance, the transition from SDL 1 to SDL 2 is being prepared) are part of the roadmap plan. Egoboo accumulated quite a few bugs that over the years in which Egoboo was subject to irregular maintenance and wild expansion: bug-fixing is imperative. As a matter of fact, most of those bugs could have been avoided and in fact will simply vanish. Principles, methods and techniques that are widely known are employed – well-known algorithms, reasonable documentation and automated testing are prevalent examples. Indeed, Egoboo will receive a unit testing framework and a reasonable in-source and out-of-source documentation. We do not refrain from subjecting parts of Egoboo to more exhaustive methods, though. The goal here is simple: Egoboo – like any game – needs to be maintainable and expandable – to achieve that, it needs a good basis, a stable core with calm maintenance, reliable functionality such that the “hotter” parts can rely and build upon it.

Things to Change: Assets

The team also feels that improvements to graphics, sound, controls, user interface and game mechanics are long overdue. Partially, coders can do that, however – or as many Open Source projects slowly learn – graphics and sound are not part of the graphics or audio API used. The assets (e.g. graphics/sounds) need to be created and used in content (e.g. levels). Egoboo contains a decent amount of assets and content, however, creating/improving this requires more than coders: In the Open Source sector, the species capable of creating assets and content – namely graphic artists, audio artists and level designers – are rare: the team will improve the tool set that Egoboo offers to those, hopefully attracting those precious specimen.

Things to Keep: Egoboo

A perfectly normal question is (in case you have looked at the source code of Egoboo): “Why don’t you rewrite the whole thing?” The team decided against a rewrite of Egoboo in a sense of “starting from scratch” for technical and non-technical reasons. On the technical side, content exists for Egoboo already and this content can not be trivially accessed without the underlying game engine. But this would only be half the truth. An important non-technical reason is the feeling, that the unique spirit of Egoboo would be lost during the course of a full rewrite. Drastic changes to underlying technology do not necessarily imply that the feeling of a game is destroyed. They do, however, bear the danger. We are in fortunate situation to have one of the original designers of many of the modules among its members. Together with refactoring instead of rewriting, the risk of losing something without realizing it and effectively destroying the game, is reduced.

An important aspect of Egoboo is that it enabled users and developers to create their own adventures (called “Modules” in Egoboo). The existing content of Egoboo demonstrates the power of Egoboo’s provided tools. However, the tools are also dated and difficult to use so the content eventually demonstrates the capacity for suffering of the content creators. We think this is not necessary; there are great examples of tools that make content creation simple and fun (Neverwinter Nights 2 is such an example). To attract asset and content creators and for that we think that the ability to create your own content is an essential element of what Egoboo constitutes, tools receive a lot of attention from us. As before, the tools to be created should satisfy players and developers alike. That way, we hope to retain the feeling of Egoboo when evolving Egoboo to something that will last another few years: We want to keep the spirit of Egoboo alive.

Things to Come: Binary Release

In this post, we want to answer one of the more pressing questions of many people: A stable binary release is scheduled for around Christmas 2015/2016.

See you next month.