Getting a static library to work on the iPhone in SDK 3

We are currently working on a lightweight game library for the iPhone. The library is static and is thus linked to the game at compile-time. In the iPhone simulator, it was working perfectly fine.

Then I wanted to do start the demo application on the actual device. For whatever reason, the classes of the library were not recognized on the device at runtime – even though the build log did not note any problems, and the library should have been linked to game. I could not think of anything that would lead to this behavior!

Fortunately, big brother Google was there for the rescue. There seems to be bug in the linker of iPhone SDK 3.0. The fix is easy (if you know it):

In addition to the linker flag ”-ObjC” you have to add the flag ”-all_load”. After that, everything works just like it should.

I suspect that Apple fixes this in the next SDK version, but until then, I can live with that.

Find it! Our first iPhone game, finally available.

Hooray!

The last few months, I think beginning in September 2008, I started development of an iPhone game together with a close friend of mine, Holger Weissböck. We had wanted to start a joint project since the time we went to school together – actually, this is where our “brand-name” incognitek comes from. And now, 10 years later (oh my), we finally succeeded.

It's not a big game, we wanted to start with something simple – we already have enough experience in overly ambitious projects stranding somewhere half-finished. So we cooperated with the company I am working for, funworld, and re-created one of the most successful games on their touch screen terminal “PHOTO PLAY”. That's (incidentally) the same thing I do for a living, as I am the main game programmer at funworld. However, the games for the terminal are programmed with C#/DirectX and, recently, ActionScript 3, so the iPhone platform and Objective C were new to me. But I always love to learn a new language, so I really enjoyed jumping into this project.

It was a tiring mission at times, first working 8-10 hours at funworld, creating one game, and then coming home and working 2-3 more hours creating another one – but taking one small step after the other, we finished the game, so it was all worth the effort. It's always this small moment at the end of a project we crave for, isn't it? The one day of fame when a project is finished, where we see that something was created out of some empty void.

Even if on that same day, we already start thinking about the next project … ;-)

Running the Gimp in MacOS X Leopard

Several days ago, I finally could not resist it any longer – I bought an iMac. After having overcome the first shock regarding the obscene price of this device1), I am really loving to work with MacOS X.

Even more so after I found out that, by using MacPorts, I can install a great part of my beloved Linux applications.

I also installed the Gimp that way (although I found out later that there's a complete package to be found here: http://darwingimp.sourceforge.net). The only problem with the Gimp version from MacPorts was that somehow it required me to start X11 manually before running it – while for all other X11 software, it seems to launch automatically.

After some tinkering, I found the problem to be the start script of the Gimp, provided by MacPorts. I guess it makes some stuff that is no longer necessary in Leopard; especially trying to run “open-x11”, which is not present in Leopard (at least no on my system). But it's fixed easily by editing the file /Applications/MacPorts/Gimp.app/Contents/Resources/script and deleting (or commenting out) all lines except the following:

#!/bin/sh
 
CWD="/opt/local"
cd ~/
exec "$CWD/bin/gimp" "$@"

Now it works just fine: X11 is starting right before the Gimp.

1) in the USA the 20” configuration I bought costs about 1500 US-$, in Europe you have to spend amazing 1450€, which currently means 2283.46 US-$! I have no idea how this can be …

Finally - the new homepage is here

After some weeks of hard work and equally hard hours of procrastination, the new incognitek homepage is finally finished. Here and there are a few touches to make, but all in all I think everything should work just fine now.

I wanted page updates to be as easy as possible; that's why I used a wiki engine for the complete content. The most simple and elegant wiki solution out there is, imho, DokuWiki, so it was a no-brainer to use it. The only problem was that none of the existing templates seemed to be suitable for the incognitek page (yes, I am picky when it comes to such topics). That's why I made the effort to create a whole new template. As soon as I had re-activated my rotten CSS knowledge, I found it relatively easy to create the template – until I loaded it in Internet Explorer 6 (aka “The root of all evil 6.0”).

I won't start telling you all the things that went wrong with that browser's page rendering; if you are a web develeper, you already know. If you are not: believe me, you do not want to know. Just do not use this browser.

First I thought I might skip support for IE6 altogether, but then I had a look at some statistics, which say that it's still used by about a third of all internet users. Well, I did not want to lock out this huge amount of people, so I included hack after hack to allow the site to be rendered in this browser as well. If you are viewing this page in IE6, you will miss several subtle hover effects, and the main content box does not have a drop shadow; but all other parts are working.

But if you are really viewing this page with IE6: Please use a modern browser, like Firefox, Opera, Safari, or even IE7. You will love the features of those modern browsers, and will be more secure, as well.

By the way, if you like this template, you can easily find it in the projects section of this site.

 
blog.txt · Last modified: 2008/01/20 06:00 (external edit) · [Old revisions]
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki