Perhaps you need more than words, perhaps you need this…

Version 2.1.0 Build (57)

It’s been a very long time since the last release. So I am happy that the next release will include a bounty of changes. There are some new game rules. Some bug fixes. Numerous cosmetic updates. Some new UI additions.

There has also been a lot of work under the hood making way for AppleTV and The Citadel. The games also now run in a desktop web browser. This also allows for quick releases to check issues out before building the final store released.

Currently available to test at The Lords of Midnight (WEB) and Doomdark’s Revenge (WEB) full release to follow.

Game Options

  • ADDED: LOM – ‘Replenish Things’ and ‘Random Replenish’, things removed from the map respawn after a number of days dependent on difficulty. This is either happens based on game design or completely randomly depending on the game rule.
  • FIXED: DDR – Circular liege when a lord recruits their own liege
  • ADDED: DDR – ‘Fix Circular Liege’, on by default and enabled for existing games. Fixes a problem were lieges could be recruited by their old subjects. Full discussion here…
  • ADDED: DDR – ‘Safe Lord Death Rules’, a lord can’t die while they still have an army. This is similar to how LoM works. This is a game option to avoid compromising the original gameplay.
  • ADDED: DDR – ‘Hide Lords In Tunnels’, armies following a lord who is in a tunnel now search the ground within 3 squares of them, on by default. With this turned off and in original mode, the armies would sit on the location directly above the lord.

Action Menu

  • ADDED: Help icon on the actions menu. A method of re-reading all help popups from the action menu.

Think Screen

  • ADDED: DESKTOP – Arrows on the screen pager
  • ADDED: LOM – The think pages show ‘He thinks again….’ with keyboard shortcut
  • ADDED: DDR – The think pages show ‘More?’ with keyboard shortcut
  • CHANGED: LOM – The think pages show ‘To the [direction],’ for what lies ahead, as the original

Misc Changes

  • FIXED: LOM – Seeking no longer removes wild horses from the map on default and easy difficulty
  • CHANGED: Corrected night colour text
  • CHANGED: Dedication screen is no longer shown every time
  • CHANGED: Upgraded to latest Axmol, targeting Android 36 and latest iOS/OSX
  • FIXED: HTTP urls updated to HTTPS
  • CHANGED: IOS/OSX – Added new support for document sharing
  • ADDED: TVOS – Apple TV build of LOM and DDR. Game is almost ready to run on AppleTV. This also includes changes for using a DPAD on other devices.
  • CHANGED: Updated Windows Installer

Map Changes

  • ADDED: Map pinch and zoom. Should be pretty clear. Desktop you hold the shift key down while moving the mouse.
  • ADDED: Map extends beyond the edge UI elements. This fixes lords at the edge of the map getting stuck under UI elements.
  • ADDED: Filters fade the map layers and lords, and filter buttons with nothing to show or hide are hidden
  • CHANGED: The background behind a many lords icon fades out at the edges
  • CHANGED: Touching anywhere outside the many lords dialog dismisses it, fading it out
  • CHANGED: Tidied up the discovery map mechanics
  • FIXED: Crash going to the map straight from a new game from a gesture on panel_look
  • FIXED: Crash going to the map from the actions menu in a game saved before the map was remembered
  • ADDED: Memories feature. Armies locations are remembered, but they fade over time.

Select Screen

  • FIXED: Leaving or disbanding a group now returns to the standard think screen
  • ADDED: Lords rotate around the group circle when using the group left/right arrows
  • ADDED: Lords animate from the group dialog to their place on the select screen when a group is disbanded
  • ADDED: Lords animate to their new positions when using the tidy up button on the select screen
  • ADDED: Lords fade in and out when the select screen filters are changed
  • CHANGED: Filter buttons are hidden when pressing them would not change which lords are shown
  • CHANGED: Tidy up places a group on a block of four squares so it never overlaps other lords
  • CHANGED: Lords move aside, animated and as little as possible, when a group needs room or is over the edge of the screen
  • ADDED: DDR – Lords in a tunnel show a tunnel icon with their status icons
  • ADDED: DDR – Select screen – Tunnel filter button, as on the map

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.

In the mouth of a broad tunnel, they paused to look one more time upon the fair land of Midnight.

Here is something that I have been working on in the background – Tunnels in The Lords of Midnight. It’s not something that is going to be used in the main game, but I am hoping to have a new scenario released later this year, early next at the latest.

For those of you who have read Drew’s novelisation, then the need for tunnels will make sense. For those of you who haven’t, well something for your list…

Normal Tunnels

Now, you’d think that adding tunnels to LoM would be pretty straight forward. It is as you may know from following my posts, the same codebase as Doomdark’s Revenge, having been unified a few years back. However, there are some issues.

Firstly, even though they are the same engine, and use the same data structures etc, the games are built conditionally as separate projects. This means certain part of the engine is not compiled depending on the games. For example, tunnels, mist, AI lords, special objects, are not part of LoM. Regiments, Ice Fear, and Waypoints, are not part of DDR. There are other little things like critters and battles working differently, and small UI changes.

The engine is written in c++ and most of these features are turned on or off using preprocessor macros like this..

            if ( !IsDead() ) {
#if defined(_DDR_)
                flags.Reset ( cf_inbattle|cf_wonbattle|cf_preparesbattle);
#endif
#if defined(_LOM_)
                flags.Reset ( cf_inbattle|cf_wonbattle );
#endif

Some of it is handled with c++ object inheritance.

Some of it is not handled very well. The code base, like many projects has morphed and evolved over the years. I as a 30+ year veteran software developer, understand the vast gulf of academic based code structure, and real world getting it done with deadlines. And it’s no surprise that the engine has many of these pitfalls.

The following piece of code makes sure that two characters tunnel status is the same. ie: These two characters can only see each other if they are both either in, or both out of the tunnel.

#if defined(_DDR_)
            // they both need to be in or out of a tunnel
            if ( c->IsInTunnel() != IsInTunnel() )
                return false;
#endif

The thing you will notice is that the preprocessor check that will include this code is _DDR_ which means, it only gets compiled when I build Doomdark’s Revenge. Ideally this code should either be governed with a _TUNNELS_ feature preprocessor macro or better still, a feature check based on the capabilities of the scenario. So, that was the first thing I had to do and it took a few iterations to get it right.

The landscaping view for DDR is different as it has a header, therefore the tunnel view needed to be modified.

New graphics were used to distinguish the two.

Text had to change. The DDR strings database has ways of describing that a character is in a tunnel, or can see and entrance. LoM did not.

I found a bug on the think page that is in DDR in that it will show you information about a character in a location that does not have the same tunnel status. There were a couple of other UI issues specific to LoM for showing characters or armies in a tunnel. These just come out of different code paths.

Narrow tunnels

You will notice in the above image, a slightly different tunnel view. This is for narrow tunnels. The novel explicitly has Farflame not entering the tunnels when Morkin does even though they are together, and this is because he is too large. This is a story specific plot device, but that makes no sense when we consider the tunnels in DDR. So the change I made to accommodate this was to have normal and narrow tunnels. In this instance Farflame can enter the tunnels, but there are some important areas that he cannot go because they are too narrow, and the game indicates this with the slightly different layout. Narrow tunnels will also be extended to armies, and too many characters in one location.

Something else I have done with the tunnels is to tweak the concept of entrance and exit. In DDR these are always one of four terrain types – Palace, Pit, Gate, and Temple. However using the mapping software you can now override this and mark any location as an exit, an entrance, or both.

Tunnel view in mapping tools

And finally, while I was make changes for the mapping I extended two other features. Firstly impassable mountains. This was added as a rule recently to help make games optionally harder or just different and it was locked to just mountains. However, I have now added a feature to allow any location on the map to be marked as impassable. In this instance it will be used for all the mountains around Ushgarak. This means that the only way to enter the plains of despair is to take Kor and Grarg. The slight pass at Vorgath as been closed off but I am having to think this through a little more because of the consequences to a western attack.

And finally, respawning of things. In DDR critters and things (claws, thorns, springs, etc) regenerate randomly. I am planning on adding this to LoM as a rule, but for the next scenario I am also adding it as a mapping feature so that certain locations can respawn. In this instance I am using it for critters in the tunnels.

Tunnel Exit

There will be more information about the Novel Campaign later as I work my way through it.