All posts by Michael Heilmann

Egoboo Development Diary – Part 3

It’s time for the third part of the development diary series of Egoboo! This time we are happy to announce some new gameplay improvements.

In-Game GUI

Egoboo finally has a proper user-interface in-game. We have designed the current system so that it is easy to expand or improve upon. This features a new inventory and character screen. Now you can finally examine your character attributes and defences.

New character and inventory interface

The minimap can now be moved around and resized using the M button. Now the icon of characters or monsters is drawn on the minimap instead of tiny blips.

New minimap zoom feature

A new simplified and improved Video Options screen is implemented. A similar screen for Audio and Input Binding is in the works.

Attribute Revamp

Some focus has been made into making the character attributes more interesting. Egoboo currently features the following character attributes:


Formerly known as Strength. Represents the fortitude, power and physical prowess of your character. Your Might attribute directly affects the following:

  • This increases damage with melee weapons
  • Determines knockback effect
  • Jump power
  • Block chance for shields and chance to break a Block
  • Increases character size

Formerly known as Dexterity. Represents how fast, energic and quick your character can react and move. A character’s Agility directly affects the following things:

  • Increases attack speed
  • Movement speed
  • Hit chance with ranged weapons
  • Damage with ranged weapons
  • Chance to disarm traps and unlock chests

Both the Intelligence and Wisdom attributes were merged into a single Intellect attribute. Too little separated these two attributes in terms of game mechanics so it made sense to merge them to make intellect an overall more interesting attribute. Intellect is the measurement how clever, wise and perceptive your character is and affects the following:

  • Damage with all spells (both Arcane and Divine)
  • Hit chance for spells
  • Experience gain
  • Chance to find traps and hidden treasure
Mana Regeneration

How fast your mana regenerates per second. Was formerly called Mana Return.

Life Regeneration

A completely new attribute that determines how fast your life regenerates per second. Only special effects and magic usually gives life regeneration.

Spell Power

Formerly known as Mana Flow, your Spell Power determines which spells you can cast and how powerful they are. For example: a Wizard with 3 Spell Power can summon 3 Magic Missiles while an Adventurer with 1 Spell Power can only summon one Magic Missile.


Character development is integral in any rogue-like RPG and Egoboo is no exception to that. We felt that the old level up system did not really feel satisfying so we have expanded this using the new GUI system mentioned above. Each time your character gains an experience level, you clearly see which of your attributes is improved and by how much. Furthermore you get to select a Perk to learn. A Perk is a unique bonus that your character gains permanently. Some of them unlock new abilities or improve your existing ones. Each class has a different set of Perks to select from and some Perks are unique to each class. So far we have added almost 100 unique Perks!
Here are some examples of the Perks an Adventurer can learn:

Athletics: +25% Jump Power and +50% movement in water
Rally: Nearby allies gain +10% movement speed and attack damage
Dodge: +1% chance per Agility to avoid damage.


Which one to pick?

 Bugfixes and Changes

  • Fix collision boxes so that attacks actually hurt their targets and cause knockback
  • Faster texture loading by only loading textures into memory when they are actually needed
  • Fix Gonne particles spawning in the ground
  • Changed how damage resistance works so that it allows for more granularity and prevent resistance to block damage completely. (unless complete immunity was intended)
  • Fix so that particles spawned by Weapons are owned by the holder of the Weapon
  • Fix particles not properly de-spawning (e.g Soldier Starter)
  • Replaced or removed some IDSZ flags in Objects that weren’t doing what was intended
  • Fix some Particles not being properly rendered
  • Healer and Paladin Healing cloud can now properly hit multiple enemies or friends
  • Fix knockback logic
  • Swipe weapons like Claw or Sword can properly hit multiple enemies
  • Make aiming with ranged weapons easier
  • Improve renderer logic
  • Improved memory management to reduce chance of memory leaks
  • Screenshots are not saved in PNG format
  • Prevent some in-game messages from being spammed
  • Game performance improvements
  • Improved cross-platform interoperability
  • Crash fixes
  • Many, many other minor bugs resolved

We need you!

We always welcome help! Pop into the developer chat if you wish to help us. We need anything from coders, graphic artist, web designer to game testers. We would like to have someone draw a new interface for the main menu among other things. This website sorely needs to be remade and kept up to date with 2015.

We have now fully migrated to Visual Studio 2015 and dropped support for 2013 so that we can fully utilize the new features of C++11. We have also an up-to-date build system for both MinGW and Linux using GCC. OS X has also a working build system.

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!


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.