The captains of Doomdark were tallying supplies

As per my last post, the latest versions are ready for release. They are currently in the hands of testers and should be good to go for the Equinox. Windows and the OSX non store versions can be downloaded now from The Lords of Midnight and Doomdark’s Revenge update pages.

Anyone interested in testing can sign up here…

Additional features not mentioned previously.

  • In The Lords of Midnight : Novel Preview, you can dismount from your horse. It’s exactly what it appears to be. There are no airs and graces. You get off the horse and it runs away… I will leave it to you to find out why you might need the feature.
  • There are also two little discovery map fixes. The discovery map will no longer update for the land above you when you are in a tunnel. And you will not see critters who are in a tunnel, unless you have visited that tunnel location.

The Solstice. Doomdark grows stronger yet. We must act. I know no more.

I’ve been quiet of late. No real reason, at least no more than just life in general. So I figured a quick update is probably in order.

I’ve missed two release schedules. I intended to release a patch every quarter, around the solstice and equinox. Well, I missed the Autumn Equinox release for no other reason than I hadn’t done anything. So I bumped it to a Winter Solstice release… and well… you’ve probably noticed the lack of a release. This means that it will now be bumped to the Vernal Equinox. I’ll try and get on this one… please bear with me…

There will be two Doomdark’s Revenge bug fixes in the release that have already been fixed.

There are currently three features marked for inclusion.

The first one is interesting as it was reported as a bug, but as far as I can see it is actually a problem in the original data. So yes, it is a bug, but one from the original release. I have no issue fixing this as I don’t think it will really have much affect on gameplay.

One other feature that was tentatively going to be in the next release was

Game Difficulty – Easy / Medium / Hard

The reason for the tentative status was purely because it needed more thought than what I added on the ticket, but ultimately I need to start somewhere with it.

Anyway, that’s what I’ve not been doing for the last 6 months…

The Icemark was indeed a changed place

An interesting thing came from fixing the battle code in Doomdark’s Revenge, it highlighted a bug that is in the original code, that I can’t tell if ever caused an outward problem.

It is all to do with loyalty.

Loyalty in DDR is about race. Which race are you loyal to: Giants, Dwarves, Hearstealer, Moonprince… etc. When a lord recruits another lord, they become their liege and the new vassal becomes loyal to the same loyalty race.

When a AI lord moves in to a location, they check the loyalty of any lords present and if there is a difference in loyalty, they may attempt to recruit.

The problem is – if a lord who has vassals is recruited the loyalty of the vassals does not change, but the loyalty of the lord does. The liege of the vassals does not change either. So these lords have a liege of a lord who is not loyal to the same race as them. And they will potentially attempt to follow them or follow the same instructions. Even though they are technically the enemy.

Should the vassals ever find themselves in the same location as their liege, they are no longer the same loyalty so they will attempt to recruit them. In this instance the, the vassals becomes the liege of their liege, but their own liege does not change. Confused yet?

What we have here, is circular lieges.

Example:

Glormeon the Giant’s liege is Imagrorn the Giant, and Imagrorn’s liege is Varagrim. But let’s say Imagrorn is recruited by Carormand the Barbarian, then Imagorn’s liege is now Carormand, and his loyalty is to the Barbarians. But Glormeon’s liege is still Imagrorn, however his loyalty is still to the Giants.

The first problem here is that these two lords now see themselves as enemies or potential recruits. So they could fight or recruit. But also Glormeon will follow orders of Imagrorn even though they are enemies. Which may be tracking him down or following his enemies, or liege… and should Glormeon enter a location with Imagrorn he may attempt to recruit them. If this is successful then Glormeon’s liege would be Imagrorn and Imagrorn’s liege would be Glormeon.

In the original this situation would occur. Which I think really just messes with the AI. But in the remake, I traverse the liege tree to work out who is the overall lord in charge, and if we have a circular liege then the game crashes!

So the question is – how to fix.

So I remove the liege traversal and allow the original messy AI or do I break the liege link as soon as recruitment happens… ie: When Imagrorn is recruited and his liege changes to Carormand, then Glormeon’s new liege becomes Varagrim. Or should Glormeon remain loyal to Imagrorn and change his race loyalty to the Barbarians?

As a bug fix the first seems the quickest and keeps the gameplay the same. The other two options the potentially becomes gameplay rules.

This also doesn’t take in to account that the human player, ultimately The Moonprince, may be the loyalty race of some of these lords.

I am tracking the bug here on the GitHub repos for anyone interested.