If there were vague fears for the future itching in the depths of men’s minds…

The following is the list of outstanding items that are currently on my feature list. The intention is to add all of these over the next few releases. They all have a varying level of difficulty to implement and some will be quick wins. I’m not going to commit to an order or when as much will depend on me being on a roll or not, but I will place a marker against the ones I original intended for the Summer Solstice release. If you would like to discuss the items in any more detail, please feel free to following the links to my GitHub page for each item.

panel_select, panel_think – Add Next/Previous buttons for Desktop – Summer Solstice

panel_select and panel_think need an additional Next/Previous buttons for moving through the pages. The mobile pager is not always obvious.

Option – Don’t swap after successful approach – Summer Solstice

Give the option to stop the auto switch to the newly recruited lord after an approach. Maybe this could be Enable / Disable / Ask with default being Enabled.

Option – Auto Seek – Summer Solstice

Add option to auto seek when entering a location. Doomdark’s Revenge already does this as seek is not a player action. Maybe it could be?

Option – Auto Approach – Summer Solstice

Add an option to auto approach when entering a location in LoM or when trying to move in to a location DDR.

Game Difficulty – LOM/DDR – battle algorithms

Adjust battle algorithms to give Doomguard more success. This would be a difficulty option.

Game Difficulty – LOM – Armies

Add more armies tracking Luxor, Morkin in LoM. This would be a difficulty option.

Game Difficulty – LOM – IceFear / Moonring

The ice fear is calculated based on Morkin’s distance from the Ice Crown and the distance from the warm glow of luxor. The ice fear is then fed in to other calculations.

increase the falling rate of Invigorated/tired, bold/afraid, + effect on + distance to Moon ring. This would be a difficulty option.

LOM: Campaign for Novel

Create a campaign that would mirror changes made for the Novel.

  • Lord of Silence
  • Tarithel the Fey
  • Utarg changing sides
  • Tunnel to the Tower of Doom

LOM: Gameplay Rule – Varied start positions

Allow various different start positions for the lords. Needs some thought to whom this should affect.

LOM: Gameplay Rule – Replenish Cup of Dreams

LoM – Locations that have a Cup of Dreams have the ability to respawn after x amount of time. This could be altered by the difficulty mode. Other ‘things’ could also be respawned. This would not be dissimilar to how DDR works.

DDR: Gameplay Rule – Armies continue to fight after attacking.

Currently in Doomdark’s Revenge AI Lords have the habit of leaving a fight. This option would make them act like LoM and stay until death or other lords leave. Another potential option would be for them to leave if they consider they are losing… Could also be linked to difficulty.

DDR: Gameplay Rule – Armies attack when near an enemy

Currently AI lords have the habit of not attacking enemies that are close by, unlike LoM. This feature would make them act more like LoM. Could also be linked to difficulty.

DDR: Gameplay Rule – Adjust lord death rules – Summer Solstice

In Doomdark’s Revenge the death rules for Lords should be tweaked to be more like LoM, meaning that can’t die until their army is wiped out. And not if attacking a critter with an army.

panel_map: Add Pinch and Zoom

  1. Add Pinch and Zoom to map for Mobile
  2. Add Shift and Mouse move for Desktop

Add guide and novella to embedded browser

Rather than open in a external browser, open the novella and guide in a embedded browser.

Should we prepare to do battle against the wind and snow?

I was looking at a battle issue reported recently that battle reports were not always being displayed. I’ve had reports before that the AI Lords don’t appear to engage in battle the same as the original, but I have tested this many times and not been able to find an issue other than the AI being unpredictable and a little shaky.

I had recently done some testing while adding the new game rules in place and had my lords attacked, and indeed failed an approach of lord and been attacked, and attacked a lord and battle had commenced, so on the whole it seemed to be working.

I poured over the code again to check the AI conditions of battle and noticed something interesting. The rule is that if the lord can’t walk forward and it is dawn and they are not blocked, then there is a 50% chance of them staying in the current location and ending their turn.

Analysing that a little; blocked means exactly that, they cannot move in the direction they want to under any circumstances. This is usually because of Icy Wastes or there are too many people in the location. Can’t walk forward is usually a transitory check, something in the location they are in or entering could potentially stop them entering, but nothing that would break the game. The Dawn check is just helping to differentiate moving into a location during the turn from moving out of a location at the start of the turn.

The code that makes those decisions is separate from the code that is handling the AI Turns logic. So I went to look at that to check under what condition the lord could not walk forward, and the thing that caught my eyes was – if there is an enemy in the current location. Combine that with the checks in the AI Turns logic and what you have is, there is a 50% chance that a lord will leave a battle at the start of his turn, but if they enter a location with an enemy they will always stop to fight.

The problem was that this flag was being reset by another piece of logic which was actually more to do with the player and not the AI, and also some shared LoM logic. The net effect was, if you attack an enemy lord, or have a failed approach, then the enemy will pretty much always move on and not engage. Now, this seems counter to what my testing has shown, so I can only posit that there was something else happening in these situations that was keeping the enemy at the same location.

Once I realised this it was a quick fix to isolate the piece of code that was overwriting the can’t walk forward flag. However, this then highlighted another bigger issue, and that was that the lord was not considering the enemy as their enemy, and thus the trigger was not occuring.

Again, I checked out the area of the code that handles this, and clearly it was based on LoM, in that Luxor is the friend, and Doomdark/Shareth is the foe. But this does not take in to account the multi-race nature of DDR. So what in effect was happening is that the AI was not really considering the players lords as enemy, or indeed not always correctly considering the enemy AI lords as enemy, which means they would often over look them. Obviously there were fighting, but again I think other issues were causing them to stay in the location of another lord. And as long as multiple lords are in the same location, the battle algorithm would get the friend/enemy check correct and they would fight.

Now, this looks like it has always been wrong, ie: nearly 10 years since I released the games. But I suspect the problem is actually due to the merging of the code bases and likely crept in in the later stages of v1 and then rolled over in to v2.

The dawn did not linger but hurried on its endless journey

3,287 (or 164 score and 7) days have passed since I released the first version of The Lords of Midnight remakes on the Apple Store. Over the next few days, weeks, year I would release both The Lords of Midnight and Doomdark’s Revenge for iOS, OSX,  Android, Amazon Fire, Amazon Underground, Windows, Windows Phone, and Blackberry.

As you all know the choice to continue the remakes was difficult after the loss of Mike, but in the end I felt the need to keep these games in some way alive on modern devices. To that end I chose to keep the game look and feel very similar to the original and just apply a light refresh or paint job.

You will also know of the issues I have had with the SDK that the games are built on. Without going too technical, the games are native c++ but in order to reduce the workload for me, I used a thin amount of an SDK called Marmalade to help facilitate the cross platform support that I needed. But Marmalade got out of the business and I had to move to another SDK, Cocos2d-x, which has taken some time.

About this time last year I almost finished the migration after having bitted at it over the previous few years and I was making really good progress until life kicked in and completely floored me when it came to any personal projects and development. Basically the increase in workload brought about by the Pandemic just made sitting in front of a computer in my spare time – a misery.

I finally started picking up again recently, and here we are…

So I am glad to say that The Lords of Midnight is now available again for iOS, OSX, and Android. Windows will be available just as soon as I work out the best way to distribute it as currently the old versions are still available on GoG. These games are now completely free and will remain so. (I may add other purchasing options later for additional content). Doomdark’s Revenge will follow very shortly. The game is fully running I just need to do a lot more sanity checking.

The frontend of the games have been completely rewritten so some things may feel a little different.

There some known issues… 

  1. There appears to be a random crash bug that I have been chasing down for a while. As far as I can see it has something to do with the graphics rendering of the SDK but as of yet I have not been able to pin point it. I will keeps chasing this down.
  2. Incorrect sizing of filter buttons on mobile
  3. Android back button doesn’t give option to close the game from the main menu

There are some missing features…

  1. The compass has been removed. This will be replaced shortly.
  2. Some of the gestures have not been recreated yet.
    1. Pinch and Zoom on the map
    2. Quick access to the Map from the look screen
    3. Drag to move
  3. Button to revert scale to normal on map screen
  4. Use of haptic feedback on mobile
  5. Next and Previous buttons for desktop on think and select screen
  6. Cursor image on desktop
  7. Escape key usage on desktop
  8. Shortcut keys on desktop

And a few features I wanted to add which I will try to get in soon…

  1. Add filter for ‘Hidden’ on Map and Select screen
  2. Add option to disable ‘Are you sure” for night prompt
  3. Add in game option on Tutorial popups to mute/unmute tutorial

There will likely be a new build in the next few days as I made a couple of changes during the Android release that needs to ripple through to all versions, I just didn’t want to mess with the current release schedule by submitted the latest changes to all variants.

Moving forward I am not 100% sure what approach I am going to take. I am already aware that Cocos seem to have downgraded the importance of their c++ engine as there hasn’t been any updates in the last two years. I’m already starting to move to a new system – this time Unity – I think this might have more future proofing. The only problem is, this becomes a complete rewrite in c#. In the end this opens up much more opportunities for the future direction of the games. It may be that the current versions are kept ticking over as they are as I focus all my energy on rebuilding the new system.

Anyway, apologies for the delay, but I hope you can all enjoy The Lords of Midnight and look forward to Doomdark’s Revenge in the New Year.