Archive Page 2


Sorry for being quiet lately

I hope to resume with working on the new RummyFight version for iOS very soon. I’m sorry I haven’t done much lately but here’s the reason why. I hope you can understand ūüėČ

LM1A5627-1-1030x687Me on the right, My now wife Susanna (“Messer” on RummyFight) to the left


Impossible mission

As some of you have noticed, RummyFight will not work on iOS 11 and is in need of an update. However 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)


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, 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 ūüėČ


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.


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.



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!


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


Hey hey hey. Look at this!

See anything new in the Lobby?



Working on tournaments

Since a few days, I’ve begun implementing tournaments into RummyFight.
Damn! Tricky as hell.

Not the tournaments themselves but the alternate gaming modes that I plan to implement as tournament exclusives. There will be a NORMAL mode, a FRIENDLY mode and a TRICKY mode. Maybe even a QUICKY mode.

Now, what is this, you say?

Well, imagine when you meld that a stray tile will apprear on the board afterwards. A single tile from the stack that is placed at an empty place somewhere. This means that the next player MUST incorporate this tile in their next meld to be able to meld. If they can’t, they have no option but to get a new tile regardless of how many Groups or Runs they have on their hand.

Could be interesting, right?
Stay tuned!


And there we have v1.49 for Android too

Yesterday it was time for the release of v1.49 for Android too. Lots of small improvements and a few larger too.

First off is the clock in the Lobby. This was requested by lots of players since they spend a lot of time in the app and tend to forget the time.

With the introduction of localization in the app where different languages have longer or shorter words for the same things, the existing bottom menu didn’t really hold up anymore. It was too smart for it’s own good and created layouts that looked like shit on some devices. I therefore threw out this Android standard menu and created one on my own where I have full control over the layout and the visibility. Plus I was able to add the chat bubble indicator in the menu too if there are any unread messages in the fight.

Some devices don’t have a physical menu button so now I’ve added a visual one, available to tap to bring up the menu

Replaced three slides with new ones and finally there’s also a mentioning of the button lines changing color when the first meld is made.

With the introduction of localization in v1.48 the app autodetected the device’s language and displayed all texts accordingly. However some people have requested an option to override this and use another language than the detected one. Now this option is added in Settings too.

A little change for those using the free version. Now when they create a fight, they get to see the theme gallery and the list of custom roundtimes. However they can’t select anything other than the two built in themes and the standard 24 hrs roundtime. I made this change to allow them to see what they miss out on not buying the full version.

Now the app supports the german language too.

The old chat bubble in the lobby and fights, indicating there are unread messages in a fight is now replaced with a red badge which is much more visible and easier to spot.

* Lots of language changes and adjustments in the Dutch translation. Also some changes in the swedish and english versions.
* Location of the Exclude-line in lobby is now lowered by two pixels
* Page-indicator in the Tutorial is now yellow instead of white
* The report-button in About is now using bold text like all other buttons
* In Statistics, total points and number of fights is now formatted with dots and commas
* Bug fixed which didn’t allow gender to be changed in Settings if using another language than english
* The Delete-button in ProfileGallery is now localized too. Forgot that one
* Removed the double click sound when selecting a fight in the Lobby
* Made the “Press the menu button to see more settings”-text in Settings brighter and more visible
* Made the highlight showing whose turn it is in a fight a lot brighter
* Fixed bug which sometimes didn’t show recently created poolfights in the column to the right in the Lobby
* Adjusted the “flash” when tapping the buttons in a fight to cover the whole button area. Was a little unaligned before.
* The lines surrounding the buttons in a fight was a picture before. Now it’s vector lines, making for better upscaling on large displays
* Adjusted some textureatlases and realigned some textures in them to get rid of strange white or black lines on large displays.
* Theme pictures are now rendered with another option which should make them a little better quality
* Adjusted position of the ticker texts at the very top of some pages. Moved them up 2px

Well, that’s about all I can think about at the moment. Version 1.49 is already available at Google Play and should be available for download from Amazon within a few days.

And now it’s time to begin work on v1.50.
Tournaments, anyone?