This update is one day early – simply because tomorrow is Creator’s Day and on Creator’s Day there shall be no work 😉

This week saw major architectural changes. It started off with deleting lots of code I had created during the past weeks (and during several months when I started a first draft of this game a couple of years ago). This brings the one major change in week 6:

Curses foundation removed

When I originally started to work on Realms of Ancardia I had planned to create an ASCII-only game. Because it was meant to be a great passtime for me, I have no graphical talent, I had no artist available to help me (nor the resources to hire one) and I just wanted to move as fast as possible. And nothing beats ASCII-based graphics in that regard.

A couple of years passed, the project lingered and was almost forgotten and my good friend Krys was available and willing to enter the project.

Suddenly there was the option to find a unique yet old-school graphical representation for the game, taking all our learnings from working on ADOM and Ultimate ADOM and trying to do something even better.

And here we are working on a (hopefully) wonderful game with awesome old-school pixel graphics.

Therefore piece by piece the initial Curses implementation became more and more useless. As I already had implemented a new lean UI component architecture in order to show tooltips the decision has been made to extend this to cover all graphical aspects of the game.

Thus this week I ripped out my Curses implementation and replaced it step by step with my graphical component framework. Since the initial framework was designed to always use Curses this required quite a bit of fiddling. On the other hand it helps resolve a lot of weird ideosyncracies that had popped up when mixing the Curses implementation with the new graphical component framework.

This resulted in ripping out code, deleting unused stuff and more. But it makes the game cleaner and leaner which is great because I really try very had to fight technical debt as early as possible (having learned from ADOM what it means if you hit technical debt that has its origin in weird decisions that are 20 years old).

The result is this new look for the map screens where the changes are most notable. Naturally we will evolve the UI a lot over the next months as things grow:

Note that the ugly text are to the lower right will disappear. It’s just there due to the straight port but needs to be changed.

Miscellaneous minor changes and additions

  • There are now extensive mappings of talent category priorities to resulting professions.
  • The game window now has a decent title.
  • The game window now shows the number of frames per second. At some future point this will be disabled (or configurable) but for now during early development it’s an important indicator for our engine performance.
  • The full screen mode works again. It broke at some point during the past couple of weeks and fixing it required some refactoring but not it’s finer than ever.

Total size of the codebase after this week

  • 34,006 LOC in 593 files for the actual Realms of Ancardia game
  • 23,552 LOC in 399 files in my own underlying TBRLAPI framework library supporting my most recent roguelike games
  • plus extra external configuration files, images, tilemaps, audio files, etc.

The running total is available here.