Programming, XCode, Masochism and Gaming (all in one!)

So the arms are doing quite well lately. I've been able to play LOTS more games, and I've been coding up a storm!

Right now I'm working on a cross-platform Graphics Engine (called 'Ice Engine'), and also an Input System (called 'Light Weight Input System', or 'LWIS' for short). Both projects are coming along pretty well. You can view what information I've posted about them under the 'Projects' section of my site, here (disclaimer: this link is now dead...not sure when I'll get around to getting some sort of 'portfolio up again').

I must say, however, that (from the perspective of a developer) Apple has made some very peculiar choices. Firstly, they don't use straight up C or C++, but rather something called Objective-C. This is supposed to be an 'object oriented' programming language with added Smalltalk-style messaging to C. I know there are probably lots of Mac programmers who love Objective-C, but I really don't understand the decision to use this as the primary language. I get that, historically, Apple acquired NeXT and used their OpenStep system in Mac OS X, where OpenStep used Objective-C. However, my problem is that no one else uses Objective-C. For programmers migrating from other platforms, they have to learn a new language that is largely non-transferable. That is, they must expend lots of energy to learn a new language that is only valid on Mac machines. Why not provide support for straight up C/C++? This would greatly reduce the barrier to entry for non-mac programmers.

Furthermore, (and this may only be my experience) but the Cocoa API does not seem to play nice outside of XCode. I tried for two days to get an application to compile and display a simple OpenGL window using Cocoa (and without using XCode) and failed pretty miserably. This may be chalked down to my inexperience with both Objective-C and the Cocoa API. However, there is precious little in the way of documentation and/or examples to demonstrate how one could accomplish a goal such as mine, and the Mac community seems mostly abashed that one would even contemplate trying to program using Cocoa without the aid of XCode. I quote:

Xcode is very useful even if you are not making GUI apps. Only a complete masochist would prefer to use a text editor and manual invocation of the command-line compiling and linking tools.

I guess I am a complete masochist. I do, however, like to understand what is going on behind the scenes when I code. I think it makes me a better programmer.

At any rate, I found out that Mac OS X 10.5+ have the X Window System (otherwise known as X11) installed by default, which means I can use the X Windows code that I wrote for my Linux build almost verbatim on a Mac machine. Fantastic! This, I believe, was an excellent move by Apple. Not only can I port my game (or input/graphics library) easily to a Mac from Linux, but I can do it in pure C/C++!! HAZAA!

Anyway, that is, I suppose, all the ranting I'll do today. In other news, I am quite taken with Mount & Blade: Warband. Flaws and inelegancies in the GUI/Graphics not withstanding, this game is a hoot! The combat system can take a bit of getting used to (and there is alot, as a gamer and programmer, that I would love to tweak/change in the system), but overall, can be rather entertaining. I would recommend it to anyone who likes medieval combat (and, I mean, who doesn't?).

That's all for now!

Cheers!

Jarrett