Lords of Midnight – iOS – Update

Just thought I’d post a quick update.

I’ve now been working on this project for a tad over 2 months. Mike contacted me tail end of January, and we started work beginning of Feb.

However, I only work midweek evenings on the project, and then only for 4 evenings. Actually sometimes it’s less because some nights I’m just knackered from burning the candle at both ends and in the middle too. I get anywhere between 3 and 6 hours of coding time. Recently I’ve spent less time than I would like due to having a persistent neck problem that is affecting me sitting in front of the computer – and as I do that all day, it gets hard to do it in the evening too.

Anyway, I’ve nearly finished getting the game fully functional. I spent some time doing underlying UI code recently. We decided against using AirplaySDK’s UI stuff, just because it’s too much baggage. But now that my UI stuff is done, knocking stuff together is pretty quick.

Currently everything is still very simple. I have resisted the urge to throw everything that was in winLOM and winDDR into the mix. The objective is to get the game functional and then start the work of turning it into what we actually want – a small piece at a time. We know how the current overall game works. So once it is working, we can then identify what we want to change, write a design document, and then change it once step at a time.

Tonight I will be putting the character select screen in. Currently you can choose the 4 main characters from the main view, and you can recruit everyone else – you just can’t select everyone. After that I just need to put in the night screen and I’m done.

At that stage I will start testing on different devices. I would like to be able to get a number of people across the following formats – iPhone 3Gs, iPhone4, iPad1, iPad2, Windows, Mac, Linux, Android. If you are interested then keep an eye on the blog, I will post a call for help soon.

Lords of Midnight – iOS

When the iPhone SDK first came out, I signed up as a developer, downloaded the SDK and started playing around. One of the first projects I started was to port TME to the iPhone. I played around for a while, started converting from c++ to objective-c, and then decided that as it would never be an official project then I should use my time more wisely and work on something else – which I never really did.

I briefly discussed the concept of an IOS port for Lords of Midnight with Mike Singleton, but we never really got anywhere.

I actually felt passionately that Lords of Midnight could be developed on modern technology and reach out to a whole new market. The new demand in casual games on portable devices, means that now is its time. And the platform that Apple have developed has allowed games that are about their gameplay to get out to a large non gamer centric audience. I believe that a lot of people would love to get lost within the world of midnight. The gameplay is simple but effective, and as engrossing as the game is, it’s a good pickup and putdown game. Perfect for the portable game player.

When Mike contacted me four weeks ago to discuss the concept of bringing Lords of Midnight to iOS, it pretty obvious that I was excited, but I was also suddenly very nervous. It was now time to put up or shut up. It’s time to actually do it.

Lords of Midnight is a much loved game. It was pretty revolutionary in its time. It’s an amazingly atmospheric experience. And I know a lot of people who would lynch me if I helped to produce another Citadel! My number one concern for this project is – to not f*** it up! My number one item at the top of the design document is – to not f*** it up!

So with that in mind, what are we going to do?

Continue reading

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…