Think about the future…

icon_512x512I finally submitted the OSX version of The Lords of Midnight to Apple last night, it’s been a long time coming, a lot longer than I expected. I didn’t start it as early as I expected due to supporting the mobile version until March. Some of it has been because of technical issues, I struggled to get the code, more accurately the resolution code, to work satisfactory. Another part was being burnt out. I hadn’t realised how much getting the Mobile version out, took out of me. I found myself not really interested in developing the desktop version, so I found myself bitting at it and not staying focused. In fact a lot of the code ended up being developed on a Saturday morning while my daughter was diving, like I am now. I have a an hour and a half to kill while she dives, you can only give your full attention for so long, and that was always a good excuse to have my laptop with my and work on LoM.

All being well with the Apple submission process, the game will be available in the Mac App Store for the Summer Solstice. The Windows version needs a little more testing and I need to find a home for it to be distributed. If that all doesn’t happen during the next week in order to hit the same release date, I suspect it will be the week after.I now find myself thinking about the next steps. Jure has already started work on, if not almost finished, the artwork for Doomdark’s Revenge, so there is nothing to hold me back there. I suspect that the actual next steps will be a new build of the mobile version of LoM to include the scaling map, the keyboard controls ( for bluetooth keyboards ), and a few bug fixes that were dealt with during the desktop development. The desktop code is just a different branch of the mobile version, so I just need to roll everything up. Being truthful, I also need to put an advert in the mobile version for the desktop version, it would be nice to pickup at least another 6k unit sales.
Continue reading

Related Posts:

Version 1.05 and game play changes

c_doomguardh

With the release of version 1.05, there are a number of game play changes that will have a major affect on the outcome of the game, so I wanted to discuss them in a little detail.

If you have already completed the game, then firstly, well done, but secondly, you might want to play the game through again to see how the changes affect the outcome.

Android users can start playing this version now, Amazon, iOS and Blackberry will need to wait until next weekend when they make it out of review.

Lords are now displaced correctly after losing a battle.

This is really about escaping. When a lord finally loses a battle and all his armies have been destroyed, if he is still alive he should have been displaced randomly to an adjoining location. This is important because that movement is free. Which means when you decide to retreat you have a one location head start from the enemy.

The affect of the Ice Fear on courage – not reducing it correctly.

Low courage characters like Lord Lothoril were gaining a massive courage boost when they were in the same location as Morkin. It means that they would have had a better outcome in battle or even the ability to attack when they shouldn’t have been able to so. This was caused by a negative courage being turned into positve.

Armies no longer recovery too quickly

Armies were regenerating their energy too quickly. Which means movement around the map without the need to rest, could be over a longer period, and more importantly, the armies were not suffering so much during long battles. The knock on affect during a battle would be that your armies would fair much better than they should have.

Doomdark’s armies no longer ignore lords on plains in front of their very eyes

There is code in the original Lords of Midnight that is used to look up to 3 locations in front for something of importance. This is just looking for something that is not plains. It is used when you are looking across plains to a location, so even though that keep in the distance is not directly in front of you, your view will be described as look toward the keep. This code is also used in the decision making process for the Doomguard wandering around the map. However, the bit I missed is that the original code didn’t actually use this function to check up to 3 locations in front; it was only using it to work out the location directly in front for the direction looking. So the Doomguard would scan a full 360 around themselves, and had they found a lord in one of those locations they would move into it. However, my implementation had two problems, the Doomguard would look a full 360 around themselves, and if they found a none plain terrain up to 3 locations away, they would start to move in that direction. Not only that, they would get there in one move. It means they could be distracted easily, and move too quickly.

Alteration to what you are allowed to do when Doomguard are at the same location

The options available to you when at the same location as the Doomguard have been brought in-line with the original. I made a mistake when interpreting these. Importantly, it means you can now exploit a quirk of the original which means you can attack the Doomguard at night with a single lone lord, and then immediately hide. This means that you affectively can get a free move at the end of the day. I will address this as a “quirk/bug” in a later version in that I will remove it as a difficulty option.

Now allowed to fight critters at night, as long as no Doomguard there

You should have been able to fight critters even though it is night. This is important just in case you get attacked during the night. Had you not killed the critters while you had an army could cause you a problem if you lose your army overnight.

Daytime game completion scenarios being triggered by Ice Crown destruction

This is purely an issue of the Ice Crown bring destroyed when Morkin is at the same location as one of the characters that can destroy it. The completion was being triggered on returning from the THINK screen. All this means is that it would have been difficult to achieve a complete victory without keeping Morkin away from those characters. And even then you would have to have brought the characters together and press NIGHT without having pressed THINK.

Removed left over AI difficulty code that would have Doomdark generating new armies that track down Morkin, Luxor, or head to Xajorkith

This was changed in the previous version. This was a problem that made the game a little more difficult because new armies were being re-generated when old armies were destroyed and these armies would often go after Luxor or Morkin. A version of this will be added back under difficulty levels at a later date.

 

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: