Roguelike Games created by Thomas Biskup, the Creator of ADOM

Tag: settlements

Realms of Ancardia (Weekly Update 11)

Vacation time is over (sadly) which means that we return full throttle to working on Realms of Ancardia. I needed a day or two to remember all the things I forgot during the past couple weeks (so much for my literate codind skills 😉 and I again was sidetracked by weird mini project I felt compelled to complete (after getting addicted to the Vampire Diaries I felt the need to write my own vampire TTTRP – 104 pages later it’s no at Lulu for layout 🙂 ).

If you care here’s front and back of the rulebook containing 104 pages in novella format with compact rules for nice Vampyr sessions…

Now I am finally looking forward to adding actual fun gameplay to Realms of Ancardia – pardon the distractions 😉

Message log and command popup added

We have replaced the continuous message log to the lower right with a context specific popup. We feel that the extra “pop” is a good change to indicate that something important is going on compared to long text logs where it is easy to lose sight of important status changes. What do you think?

Also we now have a popup that shows commands that are available depending on the current context:

Implementation of settlement gate procedure started

Entering a settlement is a small detail – but it has many intricacies. Depending on the organization of the settlement there might be (guarded) gates, guards might raise taxes, random events could occur, you might gather helpful information about the settlement before actually starting to move through it (which can be useful – some settlements might be very dangerous or could affect your health, sanity or whatever).

This week I started the implementation of the procedure for entering a settlement but I probably will need another week to finish it due to the amount of detail to be covered and some lose ends from earlier weeks (e.g. attributing precise number of guards to the individual gates) in order to present a tangible challenge at the gate.

Here we go with a preliminary screenshot – the UI still needs some polish:

Scene graph implementation

Realms of Ancardia uses content-based scene graphs. Note that this is different from the common understanding of scenes and scene graphs in many programming languages where these termins describe graphical nodes and the graphical composition of a view.

In Realms of Ancardia a scene graph is a logical content structure that describe how a specific scene might work out.

Scenes can be highly variable:

  • entering a settlement
  • visiting a shop
  • talking to a stranger
  • examining a weird altar in a dungeon
  • etc.

Logically Realms of Ancardia uses a graph of connected scenes. Scenes can lead into each other (e.g. the generic Gate of Settlement scene might lead into the Negotiate Taxes with the Guards scene or the Pick a Fight scene or … whatever).

Scenes have graphical elements (e.g. images or videos to make them more tangible), text elements (e.g. the impression of a city you get when moving towards its gate) and interactive elements (how you respond to the scene).

This week I finished both the implementation of the architecture and the data structure for these scenes as well as of the graphical scene handler that takes an arbitrary scene graph and navigates the player through it, altering the game state, executing consequences, etc.

The screenshot above already is using the scene graph mechanism underneath.

Portraits

Krys did an amazing amount of working on devising a system for building individual portraits:

The individual parts are configurable and you can colorize each element:

Miscellaneous minor changes and additions

  • The spacing for the in-game stats has been adjusted slightly to use the available white space more reasonably:
  • Internal mechanisms for adding missing translations have been improved.
  • Fixed an integer overflow bug in internal random number generation.

Total size of the codebase after this week

  • 39,413 LOC in 651 files for the actual Realms of Ancardia game
  • 27,357 LOC in 451 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.

State of our internal ticket system

We use YouTrack to manage ideas and bugs that pop up. The listings are by no means complete – it’s more of a “don’t eventually forget to fix this bug / add that amazing feature” pipeline that gives a little structure to our development process without turning it into a managed project 😉

  • 151 open issues in total
  • 59 closed issues in total

Realms of Ancardia (Weekly Update 10)

Since it’s vacation time only some little stuff got done. Also I was a bit distracted by working on my TTRPG “Mythen & Monster” which we tend to play every couple of months. 278 pages of player handbook are finished so far, about 50 more to go. And I started my fifth (or sixth or seventh?) attempt at writing a Gamma World TTRP clone suited to my tastes… but all that’s leisurely passtime during vacations and soon Realms of Ancardia will be back to full speed 🙂 After the next brief interrupt of about 10 days… expect development update around the 27th of August when holiday season “finally” is over 😉

Screenshot functionality added

You now can take screenshots from within the game:

  • F10 takes a screenshot of the whole screen.
  • Shift + F10 takes a screenshot without controls and tooltips.

Screenshots are saved as a PNG to the desktop for easy consumption.

Improved texts for settlements

Work on actual gameplay has started. First thing was to rework the endlessly long texts for settlements we had so far to install a “gate routine”. When you encounter a settlement there are basically two options depending on wether a settlement is walled or not.

If it is not walled you just can enter and might encounter guards or a lonely sheriff while wandering around. Easy times.

If it is walled you can try to sneak in (success will depend on your skills, alertness of the guards, moats and many other factors) or use the official entry via a gate. At the gate you might have random encounters, hear rumors and be tithed.

Tithes are an interesting thing… because they can bery very variable. Lawful/good settlements, free cities etc. just might let you in without any barrier. Merchant-rules cities, feudal settlements and others might demand a small monetary tithe but other governments might be VERY different. E.g. dreamocracies might demand one of your dreams (e.g. some experience points), undead necromancers might request a bit of your life force and religiously ruled settlements an oath of fealty or sacrifices to their religions (with all kinds of potential alignment implications).

Which leads to…

Random tithe generation system implemented

The highly variable nature of tithes has been implemented in form of a small procedural generator that takes settlement size, alignment, dominant population and form of government and derives the type and height of tithe that might be requested at the gates. Joyful times… now you can be taxed in a roguelike 🙂 And new enemy unlocked: The Ancardian Tax Office 🙂

Miscellaneous minor changes and additions

  • The background color of the game screen now is manually configurable.

Total size of the codebase after this week

  • 38,503 LOC in 634 files for the actual Realms of Ancardia game
  • 27,005 LOC in 447 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.

State of our internal ticket system

We use YouTrack to manage ideas and bugs that pop up. The listings are by no means complete – it’s more of a “don’t eventually forget to fix this bug / add that amazing feature” pipeline that gives a little structure to our development process without turning it into a managed project 😉

  • 150 open issues in total
  • 59 closed issues in total

© 2025 My Roguelike Games

Theme by Anders NorenUp ↑