17
May
17

Impossible mission

As some of you have noticed, it’s a VERY long time ago since the iOS-version of RummyFight received an update… and there’s a reason for that. Or rather, LOTS of reasons.

But to summarize: The code for iOS-rummyfight was originally written in Objective-C in XCode 4.3 and it used Cocos2D v1.1 for it’s graphics. Now, back in those days there were no automatic memory management so all allocations and deallocations were made manually by me in the code. Then time went by and one day I received a mail from Apple stating that they had released XCode 5. Sure… not problem. I didn’t care really. I mean, I could still compile RummyFight with v4.3, right?

Then there was a release of XCode 6, XCode 7, XCode 8… and at some point Apple also announced that they no longer would accept apps built with older versions of XCode.

Fine, I thought. It’s probably a sane decision by Apple, and how hard can it be to import my project into a newer version of XCode?

Harder than I thought, I realized.

First off, XCode 8 requires the latest version of the Apple operating system on the computer. That operating system only works on new Macs. So to even be able to start XCode I would need a new Mac. Luckily I got my hands on one about a year ago.

Then… the version of Cocos2D I was using with RummyFight didn’t even compile in newer XCode so I had to download a new version of it. That version ONLY supported the new memory management system called ARC which RummyFight wasn’t built according to. Also a lot had been changed in Cocos2D so it would require a MAJOR rewrite of the RummyFight code to even use it. Then Apple has introduced lots of changes too in how to build an app. They have removed functions, replaced them with others, changed structure etc. Phew!

So in short:
To be able to submit an update of RummyFight I would need to
1. Buy a new Macintosh
2. Install the latest operating system
3. Install the latest XCode
4. Download a new version of Cocos2D
5. Adapt the RummyFight sources to all the changes in Cocos2D and in Cocoa (Apple’s system)
6. Change memory management to ARC in all my code (all 28.733 lines of it)
7. Update all graphics and textures
8. Get it to compile

And all this just to correct a spelling error or somthing.

So, pretty impossible mission, right?
Well… then it’s probably time for me now to reserve a table at Milliways – the restaurant at the end of the universe. Don’t you think?

(The app still needs a lot of rewrites and testing and changes etc before an update can be released but at least I feel an update is now possible – not impossible anymore)

06
Feb
15

Lots of database- and server problems lately

Just before christmas we had a major power out in our region and there was probably some kind of power spike or something when it happened since two of our three severs went completely dead afterwards. They didn’t even want to start anymore.

So to make sure RummyFight could be played again we borrowed a PC from a local computer store (Thanks http://www.databyran.nu), installed everything on it and got RF back online within 2 days, however a bit slow since now one server did all the work that two previously had shared between each other.

About 2 weeks ago we received two new permanent servers and we installed everything on them and configured them the same way the old ones were. We thought this would be the end of the problems but regardless of how we configured them, RF was running mysteriously slow.

So as a last resort we signed up to Google Cloud Services to use an online database in the cloud for all the data. Initially this looked like a great idea but then new strange things began to happen 2-3 times every evening where the database almost went to a complete standstill. We’ve been investigating this in collaboration with technicians at Google and they don’t know neither the reason nor the solution to the problem.

Yesterday I deployed a module I created myself that would cache and pool a lot of data and database connections and it seemed it solved some of the issues. Maybe I’m on the right track here. This day will determine if we can continue to use the cloud service so keep your fingers crossed. Otherwise we will have to figure out yet another idea to try out.

I just wish this can be solved soon so that I can continue focus on the app. It’s been 1.5 years now since the last update and I have had the new version at 95% ready for so long and it has such a large amount of nice new things and bug fixes in it I really would love to see it live sometimes.

I have it on my own phone and it’s great 😉

11
Apr
14

Moving forward

Well, I’ve now managed to get the app to start again, however it dies as soon as I touch it. Probably something easy to fix once I find out what’s happening. Anyway, this is an indicator of two things:
1. I will be able to get the app to work on Cocos2D v3.0 as well as on the new XCode
2. There will be a need for LOTS of testing of the app before it can be released again.
But that’s just something I will have to live with.

Too bad I also have two other great app-ideas I would like to create that will have to wait until I’m done with RummyFight. I do think those two ideas would be really fun to play but there are simply not enough time.

Ah, well. Back to work.

10
Apr
14

It compiles!

Finally, RummyFight for iOS finally compiles again in XCode. A huge amount of code has been replaced or adjusted for it to be able to compile with the latest Cocos2D in the latest XCode development enviroment.

But now it finally compiles without errors again.
However, the app does not work at all.

Hmmm…

18
Mar
14

Waaay to long between updates

Hi again. I’m alive!
Yes, I really am, despite me almost disappearing from the world for a couple of months. After spending almost all my free time with RummyFight for 2.5 years, I felt I needed a break. Not only because I was getting tired of my life but also because I needed to make some money.

But aaaanyway, since a couple of weeks now I’m back in the saddle making code for RF.
However, I don’t know if I am a bit over my head this time. I’ll explain why.

The macintosh I have used for the iOS-RF development is an old one and only capable of at best running Mac OSX 10.6 (Snow Leopard). This OS was released in 2009 so it’s pretty darn old by now. The latest version of the development enviroment XCode possible to run on Snow Leopard is XCode 4.3 which also is ooooold. RummyFight is using a 2D graphics library called Cocos2d to make it easier to use touches, pictures etc. The latest version possible to use in XCode 4.3 is Cocos2D v1.1 which is ooold.

So, the existing RF is using an outdated graphics library in an outdated development library on an outdated operating system on an outdated machine. It’s pretty amazing it works as good as it does.

But we can’t have this!

So now I’ve managed to setup a virtual Mac on my PC, running a brand new operating system, the latest version of XCode with the latest version of Cocos2D… and begun converting the RF-project. And my god, there are a lot of things to convert.

First of all, newer iOS-apps can use an automatic memory management model called ARC which means I have to strip away all code that is managing memory, deallocating resources, releases reference counters etc since ARC is supposed to do this for me. Then I have to update all calls to Cocos2d which has changed a lot from v1.1 to v3.0. Then lastly, I have to redesign some code to make it friendlier to XCode. Seems Apple has introduced quite a lot of “don’t do this” in later versions… which I unfortunately did.

So… this task is quite daunting and I don’t know how long it will take for me to be finished.
But when I am, RF for iOS will be faster, better, smaller and cooler.

And that’s worth the work!

24
Jun
13

Yes, the tournaments are coming

We are still making progress with the tournaments feature in RummyFight. It’s a complicated process since it’s a feature that affects lots of parts in the app. Not only are we implementing the tournaments themselves but also four different fight modes, trophys for the winners, updated profile dialogs, updated statistics page but also the possibility to look at other players tournament fights while they are being played. Why this, you ask? Well, we thought it could be fun to watch a final in a tournament even though not being in it yourself, etc.

So what’s the current status then?
Well, most of the new things are already in place. Now we are working on the interface to make it easy to use and fun to look at. Pinch zoom in the Schedule, activation of the “if there has been three Passes in a row, then a winner is selected anyway”, etc.

Also, some new rules are being implemented regarding acceptable melds and there are lots of small improvements of the translations.

But we are getting there. Take a look at the screen shot of a tournament schedule and be your own judge.Screen shot 2013-06-24 at 11.03.32

17
May
13

Hey hey hey. Look at this!

See anything new in the Lobby?

tournaments