It was time, thought Luxor, it was time.

I know this is a long time coming because as usual I’ve been quiet for the last year. Anyway we are heading for the Spring Equinox release 2.0.9, and although we seem to be dropping in to a habit of one annual release, I figure that’s better than nothing at all; so I thought I’d take a moment to give a brief overview of what to expect.

  • Axmol port
  • #246 fix crash when recruiting soldiers from depleted stronghold
  • #238 Balance safe area on the horizontal
  • #237 Adjust think terrain position on phone
  • #220 DDR character slain by a lords object is not displayed correctly
  • #244 DDR guidance potentially showing info on dead lords
  • #253 LOM Dreams open up fey
  • #252 refactor for tunnels
  • LoM Novel Scenario

So the big one here is the Axmol port. That has taken some work. Firstly thanks to the team at Axmol for giving me all the assistance needed. And also to Francisco Rosa who is becoming an essential right arm for me. He has taken care of all the Windows builds and installers for some time now, makes sure any code changes I make still work on windows, and created the Windows Axmol project for me this time around.

Moving to Axmol is huge. The las SDK cocos2dx still hasn’t been updated in over 4 years so was becoming very stale with no bug fixes or improvements. This new engine, which is a fork from Cocos2dx being everything up to date, and hopefully secures a few more years of continuous development allowing me to keep up to date with Apple’s and Google’s requirements.

A number of bug fixes. A bit of a nasty crash when recruiting soldiers from a stronghold. Some minor screen adjustments. A fix for not displaying who killed a lord, or how he was killed in DDR. A fix for Shareth keep showing up in guidance even though she is dead!

#253 – Dreams open up the Fey, is a new gameplay rule, thanks to Franciso Ross, that is eyeing the Novel scenario. Basically you can choose to play the game without the ability to recruit the fey, or you can only recruit them once Dreams is recruited. This is experimental as we have no real idea how it will affect game play.

#252 Refactor DDR for tunnels – this is connected to the LoM Novel scenario and is about decoupling the tunnels feature from DDR so that it can be available in other scenarios. See this post here about it.

LoM Novel Scenario will be a work in progress as there is still a lot of work to do. But currently tunnels are supported and impassible mountains around the Plains of Doom. Basically you can’t get the Ice Crown without using the tunnels. You can follow progress here #171 should you be inclined.

They think I am a foolish old man with a hopeless dream

A spring release for The Lords of Midnight and Doomdark’s Revenge. Version 2.0.8 has hit the stores. There are a number of LoM changes but it’s a huge DDR update. Check out the last post for full details of all the changes. Last thing for me to do with this update is to get it back one GoG.

Unless there are any problems then this will be the last Cocos2d-x release. Don’t worry – there is a replacement plan…

As you will be aware if you’ve paid attention to my many troubles with development over the years, I moved from Marmalade SDK to Cocos2d-x a few years ago due to Marmalade getting out of the SDK game. It’s been two years since I managed the v2 release which was the first under Cocos2d-, and. it was six years ago that I managed my last Marmalade build.

Well Cocos2d-x is pretty much no longer supported. After they released v4 they have not done any updates in 3 years. As we all know, mobile platforms move forward very quickly, and there is always the chance that either Google or Apple will change something enough that the games don’t work anymore, and then even though it’s open source you’ll need to be luck enough that someone fixes the problem for you, or you are deep in to it yourself. However, changes are usually just small fixes, if Apple decide something fundamentally needs to change in the system, low level c++ SDKs are going to need a lot of work. There are already bugs in the Metal implementation that have dogged my port since I released it that have never been addressed.

Luckily, there is a new supported fork of Cocos2d-x called Axmol. They’ve pushed the SDK forward and fixed a huge amount of issues that existed in Cocos2d-x. I’ve been eyeing it for a while but I finally took the plunge earlier this year and have ported to it. It was a relatively smooth transition as far as most of the engine was concerned. Because it’s based on Cocos2d-x it was mainly about getting the project setup file correctly formatted and not much about the code. However there were a number of issues with the OSX port, which is the one I started with, that were probably unique to me. I say that because I suspect at this stage not many people have released Mac games fully through the App Store with Axmol, or indeed Cocos2d-x to be fairl. But the team were fantastic and we got them all ironed out relatively quickly.

I just have some tweaking on the Windows version which is more to do with building with multiple assets, (my projects are setup to be both LoM and DDR which is not quite the expected process for Axmol). But I expect to be fully operational across all platforms very soon.

I’d like to get test versions out soon, and will likely start that process in the next month.

With the move to Axmol I believe that the games will be safe on the current platforms for at least a few more years yet. I actually think it’s remarkable that it’s been 11 years since I originally released LoM on iOS.

Anyway, I hope you enjoy the latest updates…

Such a brief summer this starved Sun brought each day

So more solstice releases missed….

I realise that the last official release was actually Spring Equinox 2023 – nearly a year ago!

It’s not that I’ve not been busy. There has been plenty of development, some sideline things, but ultimately I’ve not been visiting the land of Midnight quite as much as I would have liked. I can insert all the usual excuses here, but ultimately it just comes back to enthusiasm and time management.

So I’ve just pushed the button on the next release. It’s heading to testers now and will be available to all soon. if you just can’t wait you can sign up for testing of iOS LOM and DDR or register for Open Testing for Android LOM or DDR (click link from your device). OSX and Windows versions are available from the download pages – LOM and DDR

The observant among you will notice that there are actually two releases. This is because if had a release ready to go last year, but just never pushed the button on it. That is, except for Android. I had to push a mandatory Android release for targeting SDK 33 – so I pushed it out around October and didn’t even mention it. So there is a good chance that if you’re an Android user you already have 2.0.7

This is really a DDR heavy release, and I must also add a shout out to Andrew Smart for keeping on my toes with all his questions while he has been beavering on with his implementation of Doomdark’s Revenge. There are a few issues the the below list that came out of those questions. Particularly the bug fixes…

v2.0.8 (47)

  • ADDED: Game Difficulty – Number of followers should affect outcome of fights
  • UPDATED: Lords should not be displaced when a member of a group
  • UPDATED: Groups should not disbanded when the leader dies in a battle
  • ADDED: Game Difficulty – Number of Soldiers affects the outcome of a fight
  • ADDED: DDR – Game Option – Upgrade to Shareth Army AI
  • FIXED: DDR – Character without an army doesn’t trigger an AI lord deciding to stay at a location
  • FIXED: DDR – ‘prepares to do battle’ message is shown incorrectly
  • FIXED: DDR – Imgorarg’s loyalty is incorrect – should be Dwarf
  • FIXED: DDR – Dawn energy boosts are flipped for AI / Non AI characters
  • FIXED: DDR – Dawn energy boosts for resting are fixed and not based on hours remaining
  • FIXED: DDR – Recruitment does not take in to account the power of the 5 main special objects
  • FIXED: DDR – Incorrect object name / types

v2.0.7 (46)

  • ADDED: Game Difficulty – time affects seeking
  • ADDED: Game Difficulty – time affects hiding
  • ADDED: Game Difficulty – time affects recruiting
  • FIXED: DDR – Think page incorrectly shows Person and Army info outside of tunnels
  • ADDED: DDR – Game Option – Don’t swap after successful approach
  • ADDED: LOM – Game Option – Auto Seek enhancement
  • ADDED: LOM – Game Option – Auto Approach enhancement
  • UPDATED: Android target sdk 33

So let’s talk about what all the above features mean…

Firstly a note on Difficulty. When it is set to NORMAL which is the default, then the game plays as original. Changes only apply to EASY, MEDIUM, and HARD.

Game Difficulty – Number of followers should affect outcome of fights

If a lord goes in to a fight, the chances of death or losing a horse will be removed by fighting as a group. The current rules for LoM of a friendly army being at the location still apply. So really this only applies when all the lords do not have an army. In DDR the lords’s armies could still lose numbers, but the lord will not engage the nasty. The number of followers that has an affect is based on difficulty.

Lords should not be displaced when a member of a group

When a lord loses a battle and does not die and are part of a group, then the lord should not be displaced so that they can stay in the group. They should however not take part in any more of the battle. In hard mode, then they could still be displaced. What this essentially means is that in hard mode you may have to remove the lord from the group yourself, which is a conscious decision as you might not be aware that they are no longer with the group.

Groups should not disbanded when the leader dies in a battle

Aligned Lom and DDR so that groups are not disbanded due to death. This allows the UI to reflect that a lord has died so that the player can see it.

Game Difficulty – Number of Soldiers affects the outcome of a fight

If a lord goes in to a fight, the chances of death or losing a horse will be removed by fighting with soldiers. In DDR the lords’s armies could still lose numbers, but the lord will not engage the nasty. The number of soldiers that has an affect is based on difficulty.

DDR – Game Option – Upgrade to Shareth Army AI

Two changes for this feature. Firstly, AI Lords have the habit of leaving a fight. This option makes them act like LoM and stay until their death or other lords leave. They may also choose to leave if the total number of soldiers is not currently within their favour. Secondly, AI lords have the habit of not attacking enemies that are close by, unlike LoM. This feature makes them act more like LoM.

These decisions are linked to game difficulty and lord traits.

DDR – Lord without an army doesn’t trigger an AI lord deciding to stay at a location

This is a bug fix. AI Lords make a decision to leave a location at the start of their turn. If there is an enemy at the location it’s pretty much a toss of a coin. But lords with no armies don’t get included in the enemy count, and therefore an AI lord will not consider lone lords when they are making the decision on whether to stay at a location.

‘prepares to do battle’ message is shown incorrectly

The addition of the words, “prepares to do battle” was inconsistently shown. It was possible for a lord to still be in battle in the morning and the message would not be correct.

DDR – Imgorarg’s loyalty is incorrect – should be Dwarf

Imgorarg had the incorrect race attached to him.

DDR – Dawn energy boosts are flipped for AI / Non AI characters

The dawn energy boosts that are applied ahead of the nights battles we incorrectly flipped. So AI lords were getting half that of player lords.

DDR – Dawn energy boosts for resting are fixed and not based on hours remaining

Resting characters energy is hard coded to a fixed amount and should have been calculated based on the number of hours remaining when they started to rest.

DDR – Recruitment does not take in to account the power of the 5 main special objects

The Crown of Varenand, Crown of Carudrium, Spell of Thigrorn, Runes of Finorn, and Crown of Imiriel should all have a positive affect on recruitment. But they didn’t.

DDR – Incorrect object name / types

The Spear of Thorthak was incorrectly marked as a sword. And the Bow of Tororthane was incorrectly marked as a hammer.

Game Difficulty – time affects seeking

Seeking is no longer available at night when difficulty is hard. In medium and hard, seeking will actually take an amount of time.

Game Difficulty – time affects hiding

Hiding is no longer available at night for medium and hard. Hiding and Unhide now take 1hr on medium or the rest of the day on hard.

Game Difficulty – time affects recruiting

Recruitment time for both lords has a group of new rules depending on game difficulty. In easy the recruiter loses no time and the recruited is reset to dawn. In medium the recruiter loses one hour and the recruited time is set to the same. In hard they are both set to night.

DDR – Think page incorrectly shows Person and Army info outside of tunnels

When a lord is in a tunnel, information about the outside of tunnels was visible on the think page. This has been corrected.

DDR – Game Option – Don’t swap after successful approach

Added an option to stop the auto switch to the newly recruited lord after an approach. Player can choose to DO NOTHING or stick. After the approach a new icon is displayed next to the Look icon to indicate either the recruited or the recruiter lord depending on the swap option.

LOM – Game Option – Auto Seek enhancement

Added option to auto seek when entering a location. Doomdark’s Revenge already does this.

LOM – Game Option – Auto Approach enhancement

Added an option to auto approach when entering a location in LoM. This was not added as a feature for DDR because approaching is done from outside the location and is also linked to battle.

Not sure when the next release will be. I had one scheduled in for Spring Equinox which I guess this one is kind of becoming. Therefore the next release would be Summer Solstice (June 21st) but I’m not promising anything as I potentially have to perform another SDK switch!