Lines update
At long last I have good news. Lines got a minor update which, I confess, is overdue. I managed to fix a couple of obscure bugs that bothered a lot of people but manifested themselves only now and then. It’s now a universal binary too. And it requires Tiger.
Thanks to a number of ongoing projects and to my busy work schedule, I’ve been evading Lines for ages. I got bug reports but couldn’t reproduce them. Until last week, when Shirley (Shirley, if you are reading this, thank you again) sent me the console messages Lines spat out before falling into a kind of coma.
When I opened the Xcode project, it dawned on me why I had been shunning it. The code is a mess. Some things are broken beyond repair. The only excuse I have is that Lines was my first Cocoa program and the first program after many years when I thought I would never write code again. One day I’m going to tell you the whole story, just not right now.
Well, to be honest, there’s one more excuse. Somewhere down in my basement, between workdays and normal life, while the compiler is busy with other stuff, I’ve been secretly writing Lines 2. No, I’m not going to divulge any details this time. Just saying it for the sake of those of you who’ve been wondering if I’m still alive.
So, while fixing the bugs, it seemed natural to compile Lines as a universal binary. And here I stumbled upon another bug, hiding in the darkest corners of the code behind Rosetta. You see, the program began its life in the days of Mac OS X 10.1. Since then there have been several major framework updates from Apple, each deprecating some APIs and changing the behaviour of others. I was lucky enough to use some of the least fortunate APIs and too absorbed in coding to pay attention to the word “deprecated”. When the APIs got left-out in Jaguar and Panther, Lines stopped working and I had to do something about it. But, rather than rewriting my own code, I decided to re-implement Apple’s. I did it two times. Partly because of curiosity, partly because deep in my heart I feel myself a hacker. The price to pay was insignificant at the time, but the interest rate was huge. When Apple switched to Intel processors, my credit suddenly expired. What I saw was a gross bug covered by my assumptions about big-endianness and a belief that we would live for ever in some kind of communism, starting tomorrow.
Fixing it turned out to be rather tricky. Worse yet, Apple engineers did some code-linked-to-old-library-does-not-break compatibility voodoo and now I had wrong code that worked right, with one caveat: on Tiger it broke at one end when compiled for PowerPC and at the other end when compiled for Intel. At least I learned the lesson.
One day I’ll tell you more about everything. Or at least, something. Meanwhile, I really hope it’s one of the very last updates to version 1. So grab it while it’s hot.
1. Maurice:
February 25th, 2008
at 15:37
Link
I learnt about this game from ‘The MacReviewCast #148′ (http://www.macreviewcast.com/). It is an inventive game, you need to play it longer to find the right stratagies. It is a real pity though that it is not possible to save the high scores, to make it a real challenge you need to know where you were before. Hopefully you can solve this problem (use the users preferences directory?).
2. Martin:
June 17th, 2008
at 08:18
Link
Thanks for the update, I really like having something around that is nice and quick to play. I’ve been trying to play the new version in the background while waiting for things (as happens so often…) in WoW, but this results in the Lines animation slowing down to quite unplayable speeds.
Just wondering if you’d have some idea why this is the case (playing on a brand new MacBook Pro), and if it can be fixed from your end or is a graphics card issue or something - the way things have been going in Leopard, I would not be surprised.
Cheers.
3. Konstantin:
June 17th, 2008
at 08:55
Link
Martin, I think this happens because WoW is a very demanding game while animations in Lines are done primarily in CPU. The next version of Lines is going to be entirely different in this regard. Unfortunately, other urgent projects keep me too busy to finish it, so it’s still in slow progress.
4. Martin:
September 6th, 2008
at 06:13
Link
Thanks for the response on that. I’ve been checking your site every few days since the iPhone 3G came out for evidence of your working on a version of Lines for it. I ended up buying Invisible Llama’s implementation last week, and now see that you’ve released yours!
Definitely getting it. Looking forward to having undo capability; really important with the touch interface and the size of the screen on the iPhone. And all the other things your version sounds like it has to offer :).