Egoboo Development Diary – Part 2

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 second post of the “Egoboo Development Diary” series in which the developers keep you informed on the course and progress of the development of Egoboo.

Hello and welcome to the second part of the Egoboo Development Diary series! We are happy to announce that the game is already in a much better and stable state since our previous diary post. There still remains work to be done before the game is playable enough for end-users (some options features missing, still some game blocking bugs). We still need playtesters though and to facilitate this we are working towards introducing daily-builds to give playtesters access to the bleeding-edge version of Egoboo!

Upgrade to SDL 2.0

One of the major milestones of the roadmap has been completed, the conversion to SDL 2.0. For the user this means many minor improvements such as better platform compatibility, improved fullscreen support, improved keyboard support and many minor annoyances are gone. SDL 2.0 also has support for iOS and Android platforms, but development for those are not in focus yet – let’s get this game working properly on PC first!

Bugfixing

While some bugs still remain, many fixes have been implemented already. Here is a short excerpt of some of the bugs we have fixed since January:

  • Weather effects work again (rain, snow, etc.)
  • Fix item grabbing not working properly
  • Fix particle animations not looping properly
  • Lava now actually hurts you
  • Save games properly work again
  • Coins bounce again and make coiny noises
  • Blud hits the ground again and de-spawns
  • Water is properly rendered again
  • Lighting effects work properly again
  • Weapons have proper hitboxes again
  • Money can be picked up again!
  • Fixed many graphical issues or glitches like transparency, reflections or shine
  • Whips now uncoil when used
  • Memory leaks fixed
  • Various crash fixes
  • Many other minor bugs

Game Updates

We also took the liberty of improving some various game mechanics:

  • Looting a chest now drops its contents in front of the chest instead of all around it (leading to items stuck behind or inside the chest object)
  • Changes the story and some content of the Wizard Starter
  • Game logic now supports more than 4 armour types (no class has more than 4 yet)
  • Adventurer Starter now starts with a Knife
  • Improved module loading screen
  • Module difficulty is now represented by skulls
  • Game now runs at 60 FPS (was normally capped to 30 before)

Conversion to C++

We have already reaped the benefits of converting the codebase to C++. Major performance improvements and many bugfixes. There is still a lot of code to port from C to C++ and if you are interested in helping, don’t be shy to contact us on gitter.

Automated Testing

  • Initial AppVeyor CI integration
  • Cross platform unit testing

Future Plans

  • Windows unit testing and provision of windows builds using AppVeyor
  • More bugfixing

Egoboo Development Diary – Part 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 Development Diary” 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.