After having a conversation with Drew a couple of weeks back about the future of the novels, I came to a stark realisation that I was now unable to build the special version of Doomdark’s Revenge that he would need to allow him to freely wander the Icemark as part of his research. This was something that I did for him with The Lords of Midnight and it helped greatly.
However, the problems that I have had with the building of the games because of the loss of the Marmalade SDK are still plaguing me. I was slowly coming to the acceptance that I would soon be removing the games from the Apple app store as each new release of iOS and new devices makes the game unobtainable. This will likely follow through to Android and Windows.
All this has been compounded that my general motivation has been through the floor for a number of years now.
The upshot of this post is that this week I had a self imposed break from work and I’ve been working on the game and have made great progress already. The main menu and surrounding screens are all working. The main view is mostly done bar a few niceties and features that I don’t yet need to give Drew the functionality he needs. Today I’m working on the Think screen, but the main missing screens are the Select and Map screen.
The ersh has finally settled on the whole Marmalade Licence Issue. My licence no longer works so I cannot build LoM or DDR anymore, and the new company who I know nothing about, nor what their long term intentions are, require $600 for a one year bridging licence.
I just about managed to get the new 64bit build out for iOS and Android, but never managed to update Windows, Mac, Windows Phone, and Amazon. I’m a little disappointed by this, but I think I can live with it.
However, the iOS version of Doomdark’s Revenge seems to have a little bug on iPhone7 where it doesn’t always show the splash screen and the main menu backdrop. The rest of the game works fine. This can be fixed by running your phone in Zoom mode. I wish I’d managed to get the fix out for this in time. What this actually means, is that this fix would cost me $600.
I’ve though long and hard about this, and I’ve decided to let it go. GMO Internet group Japan, who now own the Marmalade Tech, have said that they will be changing the technology in 12 months. Currently their bridging licence is a no support, no update licence. So come a new iOS or Xcode, both which will happen in September, then there is no guaranty that it would continue to build after that. Then there is the little issue of the compatibility of their new tech, should they make it available, and the new cost.
I don’t honestly think the DDR bug will affect that many people, after all, there are not that many people playing it. Should the problem become a real issue, then then, and only then, might I consider buying the licence to allow me to fix, compile, and release.
Until then, I need a new plan.
And here it is…
My next game was going to be Timbles – my children education title that has been kicking along for way too long. This is also written under the same system and thus I can no longer work on it. I cannot currently bring myself to port it to another system, therefore it will be shelved until some future time.
My intention was to move my system to Cocos2d-x and I have started working on that. But, I have decided that rather than spend time in the past again, porting to another system, I am going to start a new game that will allow me to familiarise myself with Cocos2d-x and build up the system I need, and then after that I will take Timbles, The Lords of Midnight, and Doomdark’s Revenge across to it. If I can get another game out, then follow it with Timbles, I am strongly leaning to spending time on The Citadel.
It’s worth point out that I have over the years ported The Lords of Midnight from a Z80 code base that I hand disassembled and crafted to 80×86. I wrote a Visual Basic version, and C version. Developed the Midnight Engine in c++ for Windows, then took this across to the Marmalade system as the base of the current releases. Timbles was developed under Visual Basic 10 years ago. Then moved to DirectX. Then rewritten in c# for Silverlight to run in a browser, before finally being coded in c++ under the Marmalade system.
I think you can see why I am a tad reluctant to revisit these code bases right now. 🙂
In the mean time I will update the GitHub repositories to include the full final source.
Strange day today. Not just because it would have been Mike’s birthday, but because for some reason I found myself fixing a bug in Doomdark’s Revenge. Back in January I had a bug reported to me by Simon Foston, I managed to get some save games from him and just needed to find some time to look at it. Now, it’s taken a little while for me to find that time, but for some reason I looked at it today. It wasn’t a conscious decision, I was just looking through some emails that needed dealing with and noticed Simon’s bug report.
A quick look through the code and with a tip off from Simon’s report, it became apparent that the ghosts of dead lords were continuing to take part in battles. I checked the original code and it looked as if the bug was there too, however, I then found that the isDead check was happening later in the process. Strangely what it means is that battles at a dead lords location are processed as part of a dead characters turn, and not as part of other characters in the location. In my case, I’d missed the later isDead check and therefore the dead lord actually took part in the battle.
So, it seemed strange to be working on a bug in Doomdark’s Revenge that included the dearly departed, today of all days. I’m sure Mike had a wry smile..
It’s been mentioned to me recently that it would be nice to have modding functionality for The Lords of Midnight. Opening the engine up was something I always wanted to do but I’m not sure to what level this needs to happen. Therefore if there is anyone out there who would be interested in modding LOM or using the engine, drop me an email, and we can discuss what approach to follow to make this happen.
I’ve been working my way through the outstanding bug list. One of the areas that seems to cause contention, is battles.
It causes me some problems because the original is actually pretty haphazard where battles are concerned. So I’m going to talk about the battles in a little more depth, just so that you can get an understanding as to why certain things seem to be happening.
Firstly, night processing goes like this…
1. Reset all characters at dawn
2. Give all AI characters their turn
3. Process Battles
4. Place things on map
5. Move Mists
6. Remove things from map at location’s where characters are
7. Check if characters can recruit soldiers from strongholds
8. Re-spawn armies at strongholds
9. Check for important deaths
Secondly, the interesting point here is, characters are given a chance to move BEFORE battles take place. So, if you attack a character, there is a good chance he will move and thus a battle will not take place.
To understand that a little more, let’s look at the AI turn.
The AI character must decide what to do every night. Each character will react to a number of objectives.
1. Goto Liege
2. Goto Foe
3. Goto Object
4. Goto Home
5. Do nothing
If they have a liege, and that liege’s objectives are 1 or 2, then this characters objective also become 1 or 2.
Otherwise, we pick a new objective
When picking a new objective we pick a random number between 1 and 16. If we choose 1 to 5, then these are our objective. Otherwise we continue with our current objective.
So as you can see, there is a 68% chance that we will just continue on with what were we previously doing. Which means that unless you are at a characters stronghold, and his current objective is to go home, then the likelihood, he is moving away from you.
There is only a 6% chance that the character will stay at his current location.
Personally, I am very surprised at these stats, because it makes battles bloody difficult. Unlike The Lords of Midnight where a nearby army would drop everything to attack, or an attacked army would stay until the death, in Doomdark’s Revenge, everything apart from battle seems to be of more interest.