Deprecated…

I was feeling a little depressed last night, thought I’d wallow in the understanding that I was going to end up, moving on…

I’m working away, (again), at the moment. So I left my hotel and went for a walk, then into town to get something to eat. Found a nice homely Italian restaurant, and settled on some pasta, and beer, and wine, and desert, and Limoncello, and coffee…

I got back to the hotel and decided to Kickstart the ZX Spectrum Next. I figured that I might have a play around with it when it comes out. Started to think about finishing off the OpenSourceing of the codebase that I started previsouly. I then decided that I needed to give Timbles one last chance. I’d been unable to build LoM and DDR as 64 bit, but hadn’t tried Timbles. It failed! BUT, it failed differently. Hmmm… interesting.

Marmalade uses a project file called an MKB. The cross platform nature of it means that you create the actual project from the MKB file. So if I’m developing on Mac under XCode, I don’t hand the XCode project to someone developing on Windows, just the files and the MKB. From the MKB file they will be able to create a Visual Studio project.

This would be the only thing that would affect the build process of the different Apps. I took a look through the MKB file and found a couple of odd entries, entries that looked like they pertained to processor. These entries were in the iOS section. Now, I didn’t think there was anything in the project file for processor selection, that happens as part of the build process, AND I didn’t recognise the config options, I certainly hadn’t put them there. Now, I’ve had this before when an older version of Marmalade has added some options, or the options were necessary at some stage, but the system has evolved – yet the project has not been cleaned up.

I deleted the options and rebuilt… Success!

Quickly loaded the app onto my device… fail!

Not disheartended though, the failure was a memory issue. A quick check of my memory configs and I noticed that I don’t have enough memory allocated against the new devices ( as decided by screen resolution ). I’m testing on an iPhone7. Change, compile, deploy… fail!

It got further though… This time it is complaining that the TME databse is invalid. The MagicNo that I used to identify the database and to check endianness, is wrong. I figure that this is a 64 bit issue… I check my definitions of u32 ( being an unsigned 32 bit ) and the definition is unsigned long. Longs change to 64 bit, so I’m reading 8 bytes for the MagicNo and not 4 bytes, I should have used int. I check all the type definitions, check all the places that I’m using longs in the project. Change, compile, deploy… fail!

This time no error message, just crash straight out. So I add more logging and identify the image cache sorting routine. It’s using the c++ qsort function to sort a series of pointers to objects… in the code I noticed some funky casting going on, which happens to be using *(u32*) – that should be using longs. Change, compile, deploy… fail!

Hmmm… more tracing and I find another sort routine! So I change that and then search the code for any code that is doing a similar thing. Change, compile, deploy… success!

A quick play through and everything looks ok!

I upload to app store and the upload fails. It doesn’t like the binary. The reaon – it’s because the payload has the iTunesArtwork embedded in it, and Apple stopped doing that a while ago. Change, deploy, upload… success!

Download the app and everything is ok. So I push a version to external testing. This requires Apple to review and clear it. At 1:45 the app is cleared. I’m now ready to externally test. I really need to test against all the new devices that have been released by Apple over the last few years. Resolution will be the issue…

But… we’re on. This means that I can now push a new version of LoM and DDR out and buy myself a lot more time to transition to a new system.

Related Posts:

Becoming obsolete…

A few months ago I recieved 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 still have 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.

Lats week 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. In theory, a recompile would solved the problem, and as I had slowly added some new functionality, this should gain me a stayt of execution for possibly another 5 years.

The problem is, I can no longer build the App for iOS. I just cannot get the system to consitently build the app in 64bit mode.

So, unless I can resolve this issue within the next couple of weeks, it will mean that The Lords of Midnight and Doomdark’s Revenge will be dropping out of the stores – as no doubt, Google will soon require 64bit support. And as much as I would like to, it makes no sense for me to use time to port the games to another system in order to get them released. I also couldn’t do it in the timeframe that would stop the app leaving the store.

For me, worse than this is the affect it has on ill fated education game Timbles. This is something that I have slowly been working in for longer than I can remember. My own ineptness has stopped be getting the final push to get the game released. I’ve found myself tinkering with it to help with things like the UI and game flow, but have never fully let it go… well, without 64 bit support, it won’t see the light of day.

Again, it just makes no sense for me to spend time porting it to another system…

And with that, I feel that I am once more, stepping away from game development. I’m not sure my heart is in it. I’m not sure my heart has been in it for a long time now, and I just don’t have it within myself to do what is required to bring these three titles back from the bring.

Obsolete…

Related Posts:

Lords of Midnight – Update

I thought I’d better post here, because it seems it’s been a while!

I know many people might be thinking that this project is going the way of all the others… vapourware, and to be truthful there is always the chance of that. I do find it very hard to get the work done in the evenings, when I have so much going on. And we’ve had such a good summer, in the scheme of things, that I’ve found it very hard to do any coding in the evenings.

The last few months has seen me going through a merry go round of my work contracts, and in particular I’ve been working silly hours.

I also had a lot of problems with Marmalade, the SDK I’m using to give me the cross platform. They have only recently been resolved.

Anyway, enough of the excuses, other than to say that 6 months has disappeared and the project hasn’t moved on a great deal!

The intention is to fire up the quatro, and make a real push to get work done started again from Jan. I’ll also try and keep the blog up to date.

I noticed that man people have visited and will have seen no movement for a while… 🙁 sorry about that!

So, watch this space…

Related Posts:

Doomdark’s Revenge


I know it’s been a while since I posted or did anything on this project, but I finally got round to doing something again today.

Firstly, I wrote a lot of code for DDR back in October 2006, I had a good few programming sessions on it, and then as usual faded away. I coded most of the NPC’s AI; Follow Liege, Follow Foe, Go after Object, Go home, Do Nothing, Approach a Lord, Pickup Objects on their travels, and Move. I coded the moving mist and wild thing regeneration. I also coded most of the battle code… and then I got distracted by shiny objects.

Since then I’ve changed computers and compiler; so loading up the project yesterday I found that it didn’t compile in a big way. So tonight I have mainly spent all the time fixing compiler issues… and there are an awful lot of them.

One of the other problems I have had with the project is that the graphics are getting so complicated that while running in debug mode, the project runs a little slow. I’ve been putting up with it because it isn’t so bad in Release mode but slowly it has been getting me down and distracting me from the issues. It’s hard to test logic if the frontend isn’t working properly.

I’ve wanted to move the graphics subsytem to make use of the hardware. By moving the 2d logic to use 3d cards I would be able to massively speed everything up. However, I’m not a 3d programmer and again the task just keeps distracting me away from things.

I had a word with Jon Alma today who has been working on the Legends Engine and hopefully he is going to knock up a quick wrapper for some OpenGL stuff that will allow me to move the graphics forward and solve the speed issues.

So today I felt that I made a little progress…

Related Posts:

Doomdark’s Revenge

I sat down today to do some DDR code, first in a while, and spent 3 hours debugging some crashes!

Don’t you just hate it when you leave your code in a none working state! One was some bad XML, incorrect closing elements, and the other was some memory being trashed. The memory problem was due to my string class doing a shallow copy on assignment… well actually it wasn’t, but the compiler was for some reason not using my string assignment operator and instead doing it itself! Actually I have no idea what the compiler is doing at that point… grr…
|inline

Related Posts: