365 words on earthlingsoft
Since the release of Bub & Bob 2 seems pretty close now (finally!), I updated Dreamland Checker, my Bub & Bob 2 level editor to go along with the game more nicely. Graphics have been updated and the behaviour has been improved.
While I’m happy that the application finally gets to be used, I’m not too interested in developing it much further. It was a little ‘learning experience’ project I did two years ago. Of course, I’d do many things differently these days, using the newer features of OS X.2 and perhaps X.3 which just didn’t exist back then.
My code is quite funny as well. Some classes have really many methods that let you extract their data in many different forms. For example I have a class that’s basically a point, i.e. two coordinates. But these can be either be coordinates as given by the pixels on the screen or coordinates on a larger scale, giving the ‘blocks’ on the level’s map. Then each of these can be retrieves as either an integer number or a Cocoa NSNumber
object.
So there are 2*2*2*2 methods for setting and getting stuff that do virtually nothing. For good measure I also added some for one step conversions with NSPoints, for property lists and so on. That seems a bit excessive to me now.
Perhaps I should use the opportunity to mention that I’m not happy with ‘object oriented’ programming as given by Objective C. The fact that there are variables which aren’t objects annoys me every single time. I’d prefer a language without int
s and so on. And I’d like having proper number objects everywhere, which can be archived and so on. So to have things my way in Dreamland Checker, I make the computer work a lot. I store numbers as NSNumber
objects with the little drawback that these numbers are immutable and you can’t to any computations with them. So if I need to add two of those, the numbers stored in both are extracted, added and put into a new NSNumber
object. This is probably terribly inefficient, but luckily the program doesn’t do a lot anyway, so it doesn’t matter too much….