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…

I fear Doomdark may get untimely warning that the Wise are awake

So it’s no secret that I have struggled with development of The Lords of Midnight and Doomdark’s Revenge since the release of the remakes in 2012/13. Part of this because at the time I think I was driven by a sense of duty to get the games released in honour of Mike. The amount of work I did on those two games in such a short amount of time in order to support seven different platforms was frankly quite astonishing.

After the release of Doomdark’s Revenge I took a short break and developed a children’s game Timbles – which never got released. I then supported the two games for the next couple of years but never really got in to any swing and was unable to move them forward. This then became exasperated by the whole Marmalade SDK fiasco which stopped the games in their tracks.

I slowly started moving toward a new SDK and picked Cocos2dx. I then spent a few months rewriting many aspects of the UI to make it work. I finally put the project back down because I was struggling under the new SDK to make it work across multiple screen resolutions.

Last Christmas after over a year of not working on it, I picked it up during my one work break of the year. The reason for this is that I suddenly realised how I could solve the resolution issue. Inspired I got a test release together for iOS, OSX, Android, and Windows. However by mid January I was back working and even more busy than the year before. Another problem that cropped up is that the Cocos2dx SDK appears to have a bug with its Metal implementation that means its either leaking memory or causing a threading issue. This appears to be a random issue that I am some how triggering and have been unable to find.

Over the following few months I spent more time working and eventually I found myself in a situation where I could can no longer sit at my computers without working. I made an association  with my study and my computers with work and haven’t touched any none work projects through the majority of 2021.

At the beginning of October I changed my main client to Sky. What this means is that I am no longer working additional hours whereas working with PureGym I found myself working longs hours or working later and intermittent through the day.

A few weeks after joining Sky, I found myself slowly spending more time at the computer… and I started finding a rhythm.

So here is where I am. I am not making any promises because I don’t want to break them, but I am back on a plan. I have been rewriting the Midnight Engine in c# – part of this is to facilitate a move to Unity which will open up better long term support for LoM, DDR, and facilitate Citadel. I just don’t believe that I can stick with the c++ engine and Cocos2dx anymore – I am already bothered that their c++ SDK hasn’t been updated in 2 years and their time milestone release is also 2 years overdue. 

Mentally I have committed myself to The Citadel in 2d and some campaign changes. I also have a list of features that I want to add to allow a few game variations. My intention is to get a Unity project up and running “The Midnight Chronicles” and LoM, DDR, and the Citadel will all be campaigns within the one game. I also have my eye on Nintendo Switch and some other things which I won’t discuss here yet.

The new engine also means that I am getting closer to having better tools to handle the data allowing me to start modifying the maps etc for alternate campaigns. The original data was held in an Access Database with a binary export. As I’ve been Mac based for so long now, Access is no longer part of my work flow. So I’ve been using the unmodified binary files for some time. To give you an example in order to release Revenge the first thing the code does after loading the binary database is modify all the data that was incorrect previously. I can’t continue that way.

Where I am right now is that I have what I call “The Midnight Engine Database”. This is all the core objects required for the games. This is in a slightly more open format. Shortly I will be able to load the binary data and export/import to a more open text based format. The map is stored in Tiled format and all the other data is just CSV files.

I have also started exploring a new architecture to allow the engine to be even more open. I am trying to move away from the current object oriented approach because ultimately it’s too limiting and confining. I am also resisting the text so that it can be better localised.

So, where does that leave the current c++ game… well I intend to get LoM and DDR released I just don’t know when I am going to start on it. I am hoping that I can use the momentum of working on the new engine to get me through a release. So please bear with me a little longer…

It is better to know your comrade’s mettle before the real battle begins, is it not?

I have finally managed to get The Lords of Midnight and Doomdark’s Revenge ready to return to the stores. Yes I know it’s taken a while and in reality it’s been a labour of love, but we are almost there. I have had both games running on iOS, iPadOS, OS X, Windows, and Android.

I am hoping to release the games during January, I have put a lot of work into this rebuild of The Lords of Midnight and for that the game will now cost a total of NOTHING! I initially intend to keep a price on Doomdark’s Revenge, although if you’ve already paid, you won’t need to pay again. But I also intend to include some In App Purchases in the future.

Right now, I would just like to get as many people testing them to make sure that they are behaving as expected. I am sure there are a few little niggles, and I know there are a couple of small UI features that I removed; awaiting a rebuild. I just decided not to hold up the release because of them.

To start testing The Lords of Midnight…

To report any issues either use the links supplied as part of iOS/Android testing system, visit my issues page on GitHub or fill in the form at the bottom of these page. Please provided as much information as possible, screenshots if it helps, and details of your device.

Some of the things removed.

  1. Detailed map needs the ability to scale.
  2. Desktop – Cursor images need adding
  3. The compass gadget is missing from the look screen
  4. Desktop – Some keyboard shortcuts are missing
  5. Mobile – Some gesture shortcuts are missing
  6. Desktop – Only runs in a window. Should open a window in 16:9 at about 75% the hight go your desktop resolution.

Known issues

  1. Splash and Credits screen crop badly top and bottom
  2. Desktop – Direction number keys are mapped incorrectly
  3. Scrolling indicators/icons missing from think page and popup info pages
  4. Names on the map collide with each other
  5. Options screen has incorrect options on it for platform

Some of the changes.

There have been some UI changes that I have added either for flourish while I was rebuilding or out of necessity.

The landscape view now adapts to your screen resolution much more dynamically. It keeps the same aspect ratio (1.3333) of the original for the height of the view but allows the width to grow. The affectively gives you a wider field of vision or wider devices. I did feel originally that this was an unfair advantage to those on with resolutions closer to the original, but in the end I decided that the advantage was minimal as most people look around them anyway,

The Think page changed a little. The first is that the text now scrolls vertically if it gets to long. Again this was to help with certain resolution issues. But also each think page now scrolls horizontally in a fashion more akin to scrolling pages on mobile devices. Note the page indicator at the bottom of the screen.

He thinks again…

The following screens show some new additions to the think screen that allow to take certain actions direct from there.

Showing the new display when it’s night… more like the original.

Two changes that have happened on the main menu. A bigger scrolling area for the stories and a new stile menu screen.

Report Issue