I’ve been experimenting with a couple of different APIs/languages so I can become more informed when it’s time to choose my Apple/Windows cross-platform strategy. And I’ve come to the conclusion that there really is no such thing as a truely cross-platform API.
One of the chief selling points of Java is that it’s supposed to be cross-platform. But if I want to design a UI using swing, Ok sure, its going to run on multiple platforms. But its going to be just as ugly on each of those platforms. I’ve yet to see a program written in java with a nice UI. Most of the time when I open up an app written in java, I just want to close it immediately, it just doesn’t look like it belongs on my system.
OpenGL is also supposed to be cross-platform, but its Windows support is severly lacking, requiring all kinds of extensions to get functionallity that is also dependant on having the appropriate drivers and hardware. It’s just a pain, always remember your target audience, and in this case I can’t be sure they have their drivers up to date.
SDL is a nice cross-platform library, but unfortunately it doesn’t have access to some 3D acceleration features that my project requires. If I was using straight 2D I could use it, But unfortunately it’s just not for me.
Then I thought about writing my own API abstraction layer and use DirectX for rendering on windows and OpenGL on the mac. But this would complicate the code greatly by having that extra layer in there. Then I decided, “Screw it, I’ll write the code for windows using DirectX 8.0″ (which comes installed with Windows XP) and just port it over to the Mac when it’s done. And replace the DX code with OpenGL code. That way I can assume different hardware specs and requirements on each system and program for each target machine rather than being reduced to the lowest common denominator for both platforms.
I’m still looking into it, but this seems to be the best bet so far.

0 responses so far ↓
There are no comments yet...Kick things off by filling out the form below.
Leave a Comment