Getting up and running…

It seems a little strange, that after all this time, something might just finally become of this project! 🙂

The first stage was to get the Midnight Engine up and running under iOS. Well I tried that about 3 years ago without any major success. However, it’s a little more important now. So I downloaded the Airplay SDK which Mike and I had decided to evaluate, and started porting the engine.

It was a pain! Differences in compilers, changes in the language, blah blah blah… it took a couple of days of monotonous work before I had a project that loaded the TME data in. While I was working on that, Mike was playing around with some graphic ideas that we had talked about implementing – mainly to do with lighting.

Continue reading “Getting up and running…”

Related Posts:

Lords of Midnight Development

Back in 1999 I started work on the Midnight Engine. The scope of the project was to develop an engine that could play Lords of Midnight and Doomdark’s Revenge and help create other Midnight inspired projects.

The development was split into five separate parts.

1. The backend, the actual engine.
This is a self contained library that loads a Midnight database and allows the game to be played. It has no concept of visuals or platform. It works by exposing an interface to anyone that should choose to use it, and is extended using scenarios. The scenarios allow for the code to be modified in game specific situations.

The original scope of the backend was to take both Lords of Midnight and Doomdark’s Revenge and amalgamate them into one entity. I removed all hard coded logic and made everything data driven. I expanded every compressed bit of data and removed any restrictions on size that existed. I then added a number of data items that I believed future games would likely exploit.

2. The Lords of Midnight Scenario
3. The Doomdark’s Revenge Scenario
Although both of these were developed as separate scenarios, most of the differences were in the data, ie: characters, map, etc.. and features from the engine that were turned off and on.

4. The Lords of Midnight Frontend – WinLom99
5. Doomdark’s Revenge Frontend

The frontend’s where the graphical aspect of the games. They were the user interface that drove the Midnight Engine for the specific scenario. WinLom99 was pretty straight forward. Doomdark’s Revenge however was where the graphics started to take on a whole new dimension.

The reason that I mention all this is because, everything I have done before, becomes the start of Lords of Midnight 2011.

Related Posts:

Lords of Midnight 2011 – Platforms

I thought that I would address a question that I have been asked a lot since announcing this project:

Why is it for iPhone only?

Firstly, it isn’t.
It is true that we are using the iPhone and iPad as the lead platform. There are many reasons for this that are not actually relevant to anyone other than us. It is the process that gets us to a final release. But, we don’t intend to stop there.

When I first introduced the concept to Mike, I really was only thinking of iPhone. It was after all pre iPad.

However when we started this a few weeks ago, Mike introduced me to a product called Airplay SDK.

One benefit of this SDK is that we can continue to code in C++ rather than Objective-C. The main reason this is a great benefit even though I wanted to develop a larger project in Objective-C and that I have moved on from C++, is that The Midnight Engine was written in C++ and making that work under the SDK was going to be a whole lot easier and quicker than recoding. That brings me to the second benefit. Because the Midnight Engine has been live, in particular for Lords of Midnight, then we start we a good base – most of the previous logic has been coded.

The fall out of looking at Airplay was that it is multi-platform. It allows for targeting the following platforms.

iOS, Android, Samsung Bada, Symbian, Windows Mobile, BREW, Palm/HP webOS, and Maemo. It also supports, through its partner product Airplay Arcade, the Sony PSP.

A further benefit is that you can also target Windows Desktop and OSX Desktop.

So you can see, it’s an attractive option.

So, our focus is on iOS. But the intention is to exploit as many of the other platforms available to us that we can.

Related Posts:

Lords of Midnight – 2011

In 1984, maybe 1985, my brother Darren, introduced me to a game on his zx spectrum – Lords of Midnight. It’s a wargame/adventure game which was revolutionary in its time. Written by Mike Singleton. You can read much about the history of the game on its wiki page.

In about 1990 I was playing around with a new Spectrum+3 that I had bought and decided to reverse engineer Lords of Midnight. I just wanted to know how it worked.

After performing the reverse engineering, I ported the game to the PC. This indirectly led me to getting a job in the games industry when another industry legend Jon Ritman saw the project and suggested I should think about joining the games industry, and thus everything else that has followed in my career over the last 20 years.

My port was released along side Mike’s official 3rd part of the game. Lords of Midnight:The Citadel in 1995.

In 1999 I started work on an updated version of Lords of Midnight and Doomdark’s Revenge. A project that was never finished and over the years has fallen by the wayside. But much good came out of it.

My website ICEMARK.com ( Icemark being the land that Doomdark’s Revenge was set in ) was setup and covers much Lords of Midnight material. It has become the unofficial central site for midnight related material.

My reverse engineering of Lords of Midnight and a number of other spectrum titles that followed, led to me performing some work for a New York law firm on 3d Patent Case 4,734,690

In 2004 I wrote a 10 page article about Lords of Midnight in which I also interview Mike Singleton. It was my first piece of published work. Which in turn led to a number subsequent articles.

I host a website for the game Midnight/MU developed originally Jean-Yves Rouffiac, a multi-user take on the Midnight games, and have been involved in the development in some small way over the years.

Needless to say, that Lords of Midnight has played a major part of my life for the last 27 years.

So, taking all the above into account, you can imagine my jubilation, when Mike emailed me at the end of January to discuss the concept of us collaborating on a Lords of Midnight project….

… further details of this new project to follow…

Related Posts:

The Midnight Engine – iPhone

So I’ve taken, to porting The Midnight Engine to the iPhone. This is a task that I started 3 years ago. But as many of you loyally Midnight followers will know, time is not a friend to my projects.

I have been playing with getting the engine up and running under AirPlay SDK as this will hopefully give me a little more scope. It kinda goes against my normal philosophy with development, in that an engine must offer just the right amount of assistance to your project but not bog you down with far too many features that you don’t need nor want. There are reasons to consider AirPlay which I won’t go into here, but one of the advantages is that it allows me to keep development in C/C++ which is how TME was written. This is a bonus as I can just port the engine without having to rewrite – well that was the theory.

First I had to scrap my porting attempt from 3 years ago. A because there were an awful lot of errors, and B because I had no idea where I was at.

Creating a new project under XCode and Airplay, I had some 20,000 errors and warnings – mainly errors. Part of this problem was that the codebase had been written to cross-compile across OS’s. And it used to. Not any longer.

It’s been nearly 5 years since I did any proper work on TME, and things have moved on. The compiler didn’t like my code anymore. New keywords had been reserved. Warnings popped up for things that I’d never had warnings for before. eg. Comparing signed and unsigned variables. The Compiler was having different affects on areas of the code that previously compiled fine. The GNU compiler doesn’t appear to be as happy with namespaces as Visual Studio used to be. (that said I can’t get the old project to compile under VS2010 anymore!)

So I had to strip it back. And bit by bit put the code back into the project and painstakingly change everything that needed to be done to make it compile.

After a week – I’m done.

Now I need to do some testing and recoding. First is to get the project loading in the LOM database. This will allow me to wrinkle out some of the OS/Hardware issues in the TME libraries. After that I need to painstakingly test large chunks of the code to make sure they are still doing what I want them to…

Related Posts: