Roguelike Games created by Thomas Biskup, the Creator of ADOM

Author: roguelike-admin (Page 1 of 2)

Realms of Ancardia (Dev Update 13)

First of all… wow, it’s already this special time of the year:

Merry Christmas days to all of you!!!

(or whatever else you decide to celebrate or not to celebrate –
I wish for love and peace for all of you!!!)

Enjoy a small glimpse into christmassy Ancardia:

Now for the game dev content stuff…

Wow, a lot of time has passed since the last update. Sadly development was not as focussed as I had hoped due to many real life commitments. Still a lot got done. And Krys did truly marvelous things on the graphical side so this update will contain tons of graphical additions. Kudos to Krys for his amazing work… now I feel really pressured to catch up on the dev side 😉

Random wilderness encounters

The random encounter system for wilderness encounters on the surface world map has been activated. There are several hundred different encounters available depending on terrain type (and this later will be expanded by environment factors like vicinity to settlements, dungeons, etc.).

Encounters can be handled in various interactive ways, combat being a very typical way of coping with an encounter. Later on there will be lots of other kinds of wilderness encounters, like travelling merchants you can trade with, caravans you might want to deal with, patrols from cities seeking troublemakers and many others. But for now it’s all about random (combat) encounters.

If you evade or flee encounters they might remain on the map for some time so that you can run into them again (or they block passage or continue chasing you). After a while random encounters vanish – but this adds a nice level of detail to the world.

Encounter screen:

In total there already now is like 10+ options about to react to an encounter that might be presented to the player based on skills, talents, race and other factors. Mind you, all of them still need to be implemented but I am very much looking forward to the variety offered by the game.

A map with several random encounters still present:

So you can evade encounters but they might remain on the map (see the red skulls) for a while before disappearing representing a prolonged threat, especially if for some reason you are in a hurry and trying to navigate difficult terrain.

Random encounters still are work in progress. There’s lots of stuff that still needs to be finished in regards to the actual combats. I hope that the next update will be a lot more complete in this regard.

Beautified character generation screen

The character creation screen has seen a glow-up.

Before:

After:

Krys has prepared a ton of these refinements and I will continue to add them over time.

Tons of graphics prepared

Krys prepared an amazing amount of graphical refinements, details and additions and I am quite pressed to implement all these wonderful things. The list below should give you a glimpse of how Realms of Ancardia will look and feel once it’s starting to be more complete. For now there are lots of fragments but IMHO they foreshadow a wonderful scenery for the future game. Here we go…

More decorations

Krys has designed dozens of decorative features for the game screens and windows, of which I will show only a few to get the feeling across we strive for.

Here is the updated status message window (not yet implemented):

And generally we agree that the game needs a lot of skulls 🙂 Enjoy the close-up:

Besides skulls there are many other improvements pending, e.g. a much nicer look for the settlement names:

Personalized character portraits

Realms of Ancardia eventually will include a portrait builder for your character. Krys already has prepared a modular system with tons of graphical tiles for the various parts that make up a face and he also prototyped the actual portrait designer with color palettes and everything else. Very much looking forward to its implementation in the actual game as we also can use it for NPCs.

As you can guess from the image above Realms of Ancardia (at least initially) takes place in a pretty tough world with hard characters.

Above you can see the prototype for the character builder. It allows to customize lots of aspects of the portrait allowing for almost infinite possibilities.

Here you can see it in action:

Skill icons

Krys designed icons for all our skins. Beautiful icons. And they can be used both in a graphical size to adorn screens and in a smaller in-font version where they easily can run in texts.

Standardization of the color palette

While working on the many icons, monsters, tiles, etc. Krys also defined a standard palette for the game so that it will have a coherent and unified look. I love the high standards he puts into the very basics of the game.

Item graphics

Next we get to icons. Like ADOM Realms of Ancardia will tons of items, some predefined, some randomly generated for each and every game. Krys has started to work on the graphics for the icons:

(they are all white because this allows us to color them at runtime BTW, based on materials, enchantments or whatever else strikes our fancy)

Monsters-in-arms

Having items means that we should show some of them. We have decided to go for a healthy mix, e.g. monsters will show weapons and shields to differentiate them a lot more. Here’s a sample:

Dungeons

Krys also already started working on dungeon tiles and setting up lots of features and extras. The following video gives you an impression (fair warning: all the videos are done in Krys’ Unity prototype which actually has a number of features my RoA engine does not (yet?) have – like the smooth scrolling and camera movement):

Naturally dungeons come to live with monsters and in this sample video you can see monsters with different equipment sets:

Krys also started working on special dungeons. Going from fire aspected dungeons in the following video…

…to a sample of how the tower of eternal flames or the temple of elemental fire might look like (should you be able to encounter them):

And as we were nearing the fire temple Krys also took at the old earth temple:

…and redesigned it for Realms of Ancardia:

Village people

As Krys was in full swing he proceeded to more detailed villages. Here you can see a sample of how a more detailed village environment might look like:

Improved cursor and tooltip handling

Krys experimented with fade-in/fade-out for tooltips and also worked on the cursor:

Wind?

Getting totally experimental here but maybe we will have wind…

Everything so far…

The following video shows a summary of many of the awesome things created by Krys – enjoy!

Introduced new header font

We now use a new header font for our dialogs. I think it’s beautiful and suits the mood of the game. Still we keep using our clean main text font because it’s so wonderfully readable.

Before:

After:

Beautified text input dialogs

The dialogs for text input have been greatly beautified. Both entering the world seed and the character name are affected by this:

Miscellaneous minor changes and additions

  • Implemented various caches for images and fragged border decorations. This greatly enhances UI fidelity because it reacts much faster now.
  • Dialogs now darken the background so that they are easier recognizable.
  • Added a means to display popup messages and close them by key or mouse.
  • All beings now have a size.
  • The possible genders of beings now are derived from available translations. If there are no translations for a specific gender, the gender is not available.
  • Fixed various problems with the internal actor system. Despite this being the fourth time I am implementing my actor pattern again and again a ton of complex bugs creep into this system. Finding and fixing them took quite a while – nasty bugssssss.

Total size of the codebase after this week

  • 51,679 LOC in 687 files for the actual Realms of Ancardia game
  • 29,334 LOC in 468 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 😉

  • 179 open issues in total
  • 76 closed issues in total

Groglike games are becoming a thing :-)

When I started working on Grog a couple of years ago it was just my personal nod to the giants of our roguelike genre, especially the initial Rogue game. I had the chance to play it on an original PDP-11 and this was a marvelous experience: The raw joy of living through a great game, unfettered by technical marvels. Plain, simple, powerful.

As a kind of joke I invented the term “groglike” because Grog posed the question of why rogues had become a central trope of the genre despite most of the early roguelike games totally centered on warriors and combat. Therefore the term “grog” (for seasoned fighter) seemed a lot more appropriate to me and I imagined a parallel world or timeline in which groglike games had become the main stream instead of roguelikes.

All that was more of an inside joke I told myself.

But now there is a second groglike game: We have Grog at Home. And I love it! Go and play it and support the author!

We have Grog at Home: The surface world
We have Grog at Home: Dungeoneering

And let’s build more groglike games 🙂 !

Realms of Ancardia (Dev Update 12)

This week work simply continues on a variety of topics.

And one big change: For now we probably will switch to roughly monthly updates instead of weekly because there is so much work yet to be done in the background of our framework and custom engine that I fear that weekly updates will simply feel to irrelevant. Be assured this does not mean that work slows down… it just gets more focussed on things that matter.

As soon as I feel that update posts get too long and extensive we’ll again return to a somewhat shorter time frame between updates.

Started mouse integration

So far the game has been mostly usable via keyboard only (except for tooltips). I have started the work to extend my framework so that mouse clicks can be used everywhere. Contrary to my initial estimate it takes far more effort to extend my framework with this feature than I had expected. Therefore this story will continue for a while as I add more and more mouse support.

Sadly some early architectural decisions that worked splendidly with a keyboard-only game now return to bite me and I yet have to find smart ways to get the ensuing trouble under control. But eventually Realms of Ancardia hopefully will be completely and easily playable by mouse. Stay tuned!

Color scheme improvements

We have changed the color scheme to feel a bit more consistent and darker.

Before:

After:

(yeah, my bad – I forgot to take a “before” image and thus had to use an older screenshot that also lacks the border lines – sorry for that)

Entering settlements

Work on this feature continues. Still not completed but evolving and lots of general framework features come out of this that will speed up the process a lot for other encounters in the game:

Miscellaneous minor changes and additions

  • Tooltips now show up after a short delay. This feels a lot more natural. Also delays can be individualized per tooltip type (e.g. button explanations might show up after 500-1.000ms while map tooltips explaining map features already show up after 300ms).
  • Internal color handling has been refactored. The number of color definitions we used started getting out of hand. About 50% have been scrapped and the naming now is a lot more consistent. This is somewhat important to (some) players because it is possible to change the color scheme(s) by modifying an external configuration file.

Total size of the codebase after this week

  • 39,595 LOC in 655 files for the actual Realms of Ancardia game
  • 28,656 LOC in 460 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 😉

  • 161 open issues in total
  • 63 closed issues in total

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

Realms of Ancardia (Weekly Update 9)

Back from vacation #1 (of 2) during this summer vacation season. As our flight back from the Seychelles door to door took about 32.5 hours (instead of the planned) and was accompanied by tons of stress due to total incompetence and stupidity of both Etihad and Abu Dhabi airport management we are still recovering. Work on Realms of Ancardia thus restarted more slowly than I had hoped. Still some stuff got done.

Map memory implemented

Before we could start working on actual combat and encounters we finally had to clean up some areas yet untouched. Combat eventually will require nice animations for attack, damage, etc. Before we can implement those we need to cement the architecture of how knowledge about the environment is retained. An important aspect of that is map memory (e.g. what does the player character remember of map areas he currently can’t see).

This is functionality that needs to be contained in the underlying TBRLAPI (my generic framework for all current and future roguelike games I build). Therefor I had to implement map memory and I needed a map memory that was meant to allow variants (e.g. total map knowledge all the time versus limited/growing map knowledge).

There the first thing added this week was a map memory management infrastructure.

Line of sight implemented

After implementing map memory the next important step was to finally add a “line of sight” architecture that allows for various use cases:

  • You can see everything.
  • You can see for a certain distance and map elements can block sight or not (the binary simple case).
  • You can see for a certain distance and map elements have different levels of sight blockage (e.g. plains barely block sight range, forest and hills quite a bit, mountains a lot depending on height).

All three use cases have been implemented and for now Realms of Ancardia useses the binary use case. But this will change soon to have more differentiated sight cases.

Here’s a brief video of the current unpolished state:

Cheat mode implemented

As the game becomes more and more complex we a more and more in need of a cheat mode to speed things up during testing. Therefor we implemented a cheat mode this week. It’s actually ported over from Ultimate ADOM and consists of a neat command line interface with smart auto-completion that can be infinitely extended with commands.

Here’s a brief video showing the initial version (more meaningful commands soon to come):

Tile style experiments

We wrestled with the question of how to evolve our art style for the tiles. After quite a few discussions (also on Reddit) we decided to go with our current art style (right side) and evolve it – it seems to be more distinct and also seems to create more emotions in people with its raw old school power:

3D Globe for the world map

We added a 3D viualization for the surface world map. While we love the style we sadly had to discover that using it causes motion sickness and headaches – therefor we will put it on the backburner for now, work on improvements and hopefully eventually integrate it into the game as a permanent feature.

Here’s a brief demo:

Miscellaneous minor changes and additions

  • A bug in the player movement code was fixed that caused weird player sprite flickering during movement.
  • The RoA engine now has nicer error handling when mappings are missing for tiles (which happens quite often these days when we add dozens of new beings, items, …). The engine now not only complains about problems with an exception but the exception also directly contains template code with sensible default mappings that I can copy over with one simple copy & paste operation so that adding stuff is more easy than ever.
  • Various optimizations and bug fixed have been added.

Total size of the codebase after this week

  • 37,574 LOC in 629 files for the actual Realms of Ancardia game
  • 26,947 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 😉

  • 148 open issues in total
  • 59 closed issues in total

Realms of Ancardia (Weekly Update 8)

It’s vacation time… so for the next couple of weeks things will slow down quite a bit. My current goal is to start having something that resembles a game… e.g. something that allows you to do a few things.

But I expect serious work on the game to commence starting with the update #9 on the 6th of August. In the meantime we enjoy paradise and regroup creative energies…

A little work still got done before vacation time started though:

Settlements are a big focus in Realms of Ancardia and I want them to feel extremely detailed and vivid. Thus the first activity opportunities will focus on settlements. Since we need to test the combat system this will probably bring you into contact with local law enforcement. Which brings me to the primary focus this week:

Law enforcement generation

Realms of Ancardia already has a framework for crime and punishment. But so far I did not spent any time thinking about the makeup of local law enforcement in settlements.

This could be anything from a single old sheriff in some hurthling hamlet to a legion of undead guards led by death knight generals in a dark metropolis ruled by an undead necromancer (and lots of other setups inbetween).

I devised a complex system to determine the types of beings used in settlement watches and militia, determine their training level, morale, composition and equipment quality. All this factors in settlement sizes, dominant races, alignment and naturally government types.

As a side effect more than 50 new monster types were added (although the stats still need to be worked out).

Total size of the codebase after this week

  • 37,361 LOC in 625 files for the actual Realms of Ancardia game
  • 24,280 LOC in 408 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 😉

  • 132 open issues in total
  • 56 closed issues in total

Realms of Ancardia (Weekly Update 7)

This week was focussed on finally getting a little game ready to be played. For many things it’s still too early but a lot of basics needed to be finished and/or improved.

Soon vacation time starts and during the summer holiday I probably will work a lot less (if at all) on the game. So weekly updates 8, 9 and 10 probably will be much shorter – if they happen at all (or they will happen later). Should there be a brief period of silence, fret not – regular updates will return.

Random talent category selection improved

If you select random talent category selection during character creation the game now tries to create a variety of more sensible builds for the character. There are certain primary talent categories (arcane, combat, thievery and religion) and all the others are marked as secondary. In most cases the game will try to distribute the available talent points to a limited number of categories. It also ensures that (in most cased) one or more of them are selected from primary categories.

Skill selection implemented

Random skill selection was implemented. To achieve this a lot of things had to be done:

  • Skills had to be associated with talent categories (e.g. grouping all knowledge skills, all combat skills, etc.). Currently we have a total of 80 skills in 10 talent categories.
  • An experience cost system had to be implemented mapping initial skill points to levels.
  • Weapon types had to be mapped to combat skills.
  • Lots of layout issues were wrestled.

Skill selection tries to be smart:

  • Each category has some primary (more important) skills that are handled preferentially.
  • Available weapons and armor are taken into account to select the most useful combat skills.
  • Generic skill points from the ‘Skills’ category are distributed on more important skills.

Skills now are distributed across three tabs (yet unstyled):

Combat skills
Primary skills
Secondary skills

Started work on the extended combat system

If you look at the combat statistics for Realms of Ancardia in their current state you will notice more values than in ADOM:

  • DV: Dodge (or defense) value. I can’t decide on naming. This number needs to be surpassed by the attack roll in order to hit a being.
  • PV: Protection value. The amount of damage absorbed by armor, tough skin, magic or whatever whenever a being is hit by a damaging attack.
  • #P: The number of parries per combat turn. Each time an attack hits the defender gets a chance to parry the blow for as long as he still has parry attempts available. Note that you can’t parry blows from attackers two size categories larger than the defender. Usually weapons grant one parry attempt (rapiers grant two). High weapon skills can modify this.
  • PB: The parry bonus. A bonus to the roll to deflect an attack. If the parry roll is equal to or greater than the attack roll is blocked.
  • #B: The number of block attempts per turn. These are granted by shields but rules-wise work like parries. Small shields grant one block attempt per turn, medium shields grant two and large shields grant three.
  • BB: The block bonus. Larger shields grant higher bonusses. As well as high shield skills, magic, talents, etc.
  • H: Hit points. You are dead when they drop to zero.
  • P: Power points. Energy used to charge arcane spells.
  • F: Faith points. Like power points. But for miracles. Godly magic is intended to be quite different from arcane magic in Realms of Ancardia.

Damage indicator added

We now have a nicely pulsing frame for the screen when the PC gets damaged. The frame gets thicker and thicker the more wounded the PC becomes. And the rate of pulsing increases as damage gets more serious.

Item statistics in the inventory

I spent way more time than I had planned or expected on displaying items in the inventory. Realms of Ancardia is pretty close to ADOM in the amount of statistics structurally (and has even more details like damage types, different but cumulative damage ratings and some other details) and it took quite a while to get the display of item statistics into a somewhat decent form. Here is a sample:

Equipment view
Backpack view: Here more work is open (e.g. item stacking, grouping, …)

The bad thing is that I will have to completely refactor this because I noticed too late that the current approach prevents me from using that data in messages. Doh!

There are also some details to be fixed (e.g. the coloring with the weapon damage entry). And graphical glitz will eventually be added. Also more statistics (like e.g. seeing the full combat values for the stuff you equipped, etc.)

Character creation modifier infrastructure

I created infrastructure in order to allow subtle and less subtle character (or game state) modifications during character generation. Currently this is being used for

  • handling hurthling special starting conditions
  • ensuring that mist elves have all-mithril equipment
  • very religious characters have guaranteed blessed equipment

In the future the same infrastructure will be used to e.g. handle special starting conditions due to date circumstances and other factors.

Time wasted on sucky Apple Silicon support

Apple really fucks up many great projects with its Apple Silicon move. Despite Apple Silicon being great. But so many good libraries simple don’t work because the hard-pressed communities spending their time, love and energy on these projects seem to be stretched too far by Apple Silicon requirements.

Our project was hit by the fact that LibVLC (at least to my knowledge) does not have any working support for arm64. At least I couldn’t get it to run after spending many hours trying to get this fixed.

As a consequence of my switch to Apple Silicon for the Apple version of Realms of Ancardia we no longer can play videos. Which sucks.

This caused me to switch to SkiaSharp as my new framework for video display. For now this seems to work (fingers crossed).

And Death rejoices…

Character generation is (mostly) complete

Except for some minor details (beautification, more starting equipment, saving defaults) character generation now is complete. It has (for now) four modes (random/deterministic world, random/deterministic player character) and you can select race, gender and talent priorities. Specific skills and starting equipment are selected by the game. Also the character generation screen has become a lot more interactive and smarter…

Character generation screen for an aspiring dwarven hero

Miscellaneous minor changes and additions

  • The skills tab on the ‘i’nformation dialog was split into “Combat skills”, “Primary skills” and “Secondary skills” as we ran out of room trying to put everything into one tab.
  • Combat skills now provide a lot of extra infos.
  • Added seven new skill definitions (climbing, mountaineering, consecration, compel undead, artificing, sacrifice, summoning).
  • Items now can be blessed, uncursed or cursed.
  • Three new items have been added.
  • The keys 0-5 now can be used to instantly alter talent category levels during character generation.
  • We now have functionality for string input (e.g. names).
  • The inventory and back now show more detailed item descriptions.
  • Fixed various small bugs.
  • Added a number of missing translations.
  • Krys designed tons of great graphical enhancements and detail improvements and I yet need to find the time to add them all. Our issue tracker (see below) is filled with them. For now we have decided to add a little more gameplay to see how certain things will work and stabilize before doing a grand graphical update development sprint (probably: several sprints).

Total size of the codebase after this week

  • 36,186 LOC in 615 files for the actual Realms of Ancardia game
  • 24,280 LOC in 408 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 😉

  • 132 open issues in total
  • 56 closed issues in total
« Older posts

© 2026 My Roguelike Games

Theme by Anders NorenUp ↑