Drew has given an update on the current progress of the novel. Unfortunately it involves a delay, but we all think it’s for the better…
It gives me great pleasure to confirm that Matt Davies and Simon Butler will be bringing The Lords of Midnight to the ZX Spectrum Next.
The Spectrum Next – an updated and enhanced version of the ZX Spectrum totally compatible with the original, featuring the major hardware developments of the past many years packed inside a simple (and beautiful) design by the original designer, Rick Dickinson, inspired by his seminal work at Sinclair Research.
An early version of the landscaping with added water… There’s a lot of work to do to get it right, but it’s a start. Images with and without features for comparison.
First image is a river running between the Lith of Mitharg and down the Plains of Gard. The second is a river running through the Plains of Blood.
It’s no secret that I have been looking at The Citadel again with a view to retro fitting it into the original landscaping mechanic. I tend to drop in on it every now and then. At the moment though I have been paying it more attention than normal.
There are a number of issues that need to be ironed out.
- Understand the logic of the game
- Convert the data to something I can use
- Write code
The first item comes from a number of things. Firstly actually playing it – easier said than done. I have it running under DosBox on my Mac, but it’s still very unstable and secondly, as a game, it’s pretty impenetrable.
I have to be able to understand the game in order to decide how the retro fit version should play. I suspect it will deviate a little from the original mainly because of the different style, but some things like giving your lords quests should be ok. Why not just be able to tell your lord to Goto Place? Obviously it won’t be realtime like the original but will probably happen at the end of your turn.
I also have some of the code that James Shaw sent me a few years back. It doesn’t cover everything but it does handle the quests that the characters attempt to follow. I’m trying to get some more code from James because I don’t fully understand the overall game structure that is occurring – basically the motives. I understand what many of the characters are doing, just not why!
Converting the data is interesting. Over the years I have reverse engineered some of the data, and that combined with James’ code means I pretty much have everything for the characters, objects, citadels, castles, armies… etc.. I also have quite a bit on the map. And that is where things get more interesting or difficult depending on how you want to look at it.
I have a number of pieces of data for The Citadel maps. Some from the game, and some that James sent me. The problem is, they are at varying scales. The original manual explains that the Bloodmarch is around 500 leaves by 500 leagues with 20 leagues being a good days march. So that suggest an internal map of 512×512. (A league in the original games was one location). The maps I have vary from 1024×1024 to 120×120 and they contain different information. You have the the map of the 12 realms. The map of the 130 regions. The map of the terrain. The height maps. The Route maps. Maps for building placement…. etc..
A 512×512 game map would be way to big. LoM was 64×62 and DDR was 64×96. So firstly I needed to settle on a better size. I chose 256×256 as being affectively 12 LoM maps which was the intention for Mike for EotM.
So I needed to scale all my maps to the same size and then grab the data from the.
I wrote tools to create TILED maps of the terrain as mentioned previously.
I’ve not revisited those maps and cleaned them up a little. There are a number of things that come out of the process. Firstly, The Citadel is all about terrain i.e.. Mountains, Plains, Forests, Trees, Sea, Rivers… etc.. and not so much about places. Because the display of the game map in 3d is so much different that the original 2d landscaping, many of those features share the same space.ie. The concept of a mountain is only a named area, the land is actually different height maps, and thus things like trees and and plains and hills often inhabit the same space, and this doesn’t work so well for the 2d game. There are only two main forests on the Bloodmarch, but there are a gazillion trees.
Those mountains also break down into different terrain types, so we now have Large Mountain, Mountain, Hills, Foothills, Downs… many of them also inhabiting in the same space. From a gameplay point of views, this terrains are probably important. For example the mountains seemed to be used for passes through the large mountains, same with hills and foothills.
The other problem is that of noise caused by the scaling process of different sized maps. I’ve ended with things like trees in lakes, rivers, and the sea. Here is an example that covers many of these aspects followed by a cleaned up version. ( Ignore the colours and the graphics, these are just placeholders and things to allow me to see things better.)
I’ve cleaned much of this by eye because I think I’ll get a better result and understanding of the map, and have now done most of the map, but I suspect much of this will still take further refinement as I focus on particular areas of the map, and especially as I focus more on the gameplay aspect of it.
The next step on the map is to start adding new features. The game is missing many of the things that gave LoM and DDR character. There are some shelters ( although I have yet to find how they are placed on the map), but they are a generic building that gives the character some safe place to rest . What the map really needs is villages, fortresses, palaces, stones, henges, etc… and this is going to take time!!!
I actually plan to start making this stuff available on GitHub because in the end, some help would be really appreciated.
A personal post from by Blog, has relevance here…
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.
For those of you that do not follow my personal blog, I thought I’d update you on a few issues that have been plaguing me… for those of you who have, you can skim down to nearer the bottom…
About six months ago I received an email from Marmalade detailing their intention to withdraw from the SDK market. Marmalade is the system I used to develop The Lords of Midnight and Doomdark’s Revenge in order to facilitate the cross platform nature of it. Using Marmalade gave me the ability to target iOS, OSX, Android, Windows, Windows Phone, Kindle, and Blackberry.
A month or so later, Marmalade confirmed that the SDK had been sold to another company, and that further support may become available from them.
That process has now taken place. I have less than a month of my Marmalade licence left, and they have not turned off the Licence server to I can still build and continue to work. However no future support will come from them. The new company are offering a 12 month bridging licence at $100 more than my previous licence fees, but this also comes with no support. I’m also not convinced that they intend to be around for the long term. The main reason they appeared to by the Marmalade system was for internal development.
A few weeks ago I received an email from Google. Doomdark’s Revenge was now in breach of one of their policies and needed to be resubmitted or removed from the store. A quick recompile and the problem was solved.
A couple of weeks ago I received an email from Apple. The Lords of Midnight was due to be removed from the store in 30 days. This is due to them culling old apps that were not being updated and/or were not 64 bit. If the App is removed people who currently have it will still be able to play it and re-download it, it just won’t be able to go on any new devices or be updated.
In theory, a recompile would solved the problem, and as I had slowly added some new functionality, this should gain me a stay of execution for possibly another 5 years.
Over the last few weeks I’ve ben wrestling with a Marmalade SDK that is not supported and an inability to build a new version. Eventually, after a lot of heartache and pain, and getting close to just giving up, I have managed to get a working build, however, there is a catch, it doesn’t work on iPad1, iPad2, and iPad Mini 1. iPad1 is no surprise, I can’t target anything lower than iOS 6 anymore and iPad1 only goes to 5.1 The iPad2 and iPad Mini is more of a problem. The issue appears to be the Marmalade system incorrectly reporting those devices as Retina devices even though there are not. I’m still trying to fix this, but it’s proving difficult without current access to any of the devices. So, I might have to make a decision. The deadline is under two weeks now and in order to stave of the executioner, I might have to upload a version that doesn’t support those devices. And this is where the real catch is; I can’t exclude those devices without going iOS10 or purely 64 bit, or both.
Using iOS10 would allow me to target iPhone5 up, and iPod Touch6G, iPad4 up, iPad Mini2 up. Going 64bit would be much more restrictive.
It hurts to think I might lose iPad2, iPad3, iPad Mini1, and iPhone 4, it seems harsh, especially as I have an iPad3 which it does work on! I have no idea how many of these devices are currently playing the game, Apple don’t break down the numbers to devices with that amount of granularity.
To be fair, I don’t have a current enhancement plan for the games, so it’s not like people who currently have the game will be losing out much, but it just feels wrong.
I’ll have to make a decision early next week in order to upload LoM and DDR and at least stop the rot. However, once those versions are up, I don’t know how much longer I might be able to build them again for.
Long term, I need to look at porting the games to another platform, and this is something I have spoken about before…
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.