Sentries yawned and looked around only to see if the NEXT watch approached

The Lords of Midnight – ZX Spectrum Next.

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.

 

The eye wearied of gazing at water…

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.

You must travel through wild and troubled lands

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.

  1. Understand the logic of the game
  2. Convert the data to something I can use
  3. 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.)

Original converted map

Cleaned up map

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.