OT: Windows port?
A lot of people, I think about five, have asked me to create a Windows port of my game. This is not as easy as it sounds, because I use Cocoa, and people say “Cocoa stands for Can only compile on Apple”, which means that it is hard to port Cocoa code to anywhere else. So for a long time I said “I’ll think about it” while secretly thinking “go to hell”.
This has changed now. I was aware of the Gnustep project for quite some time, but today I actually looked at whether it could offer me what I needed. Features I absolutely require are:
- NSOpenGLView, for OpenGL rendering
- Key-Value Coding, too difficult to describe in one line but cool, easy to use and used everywhere in my game
- NSXMLParser, for some of the XML files
- NSXMLTree, for the rest of the XML files
Except for the NSXMLTree, all that stuff is in there. This was quite a pleasant surprise. So here my official stand on a Windows port:
- I’m gonna do it.
- It will take a while. For example, my input system uses non-Cocoa code, so it will have to be rewritten for this. The whole user interface as well, and at least half my XML-loading code. Oh, and did I already mention that I’ve never ever used MinGW (required for Gnustep) and Gnustep?
- I prefer coding on Mac. I always will. That’s where the new features will come from, Windows will always lag behind.
It will never, ever be feature-complete. The following features are guaranteed to be missing from the first release:
There’s no way I’m ever going to include the latter two, as they are third-party system extensions only for Mac OS X.
Which brings me to my announcements on the Mac OS X version: I support Growl and Unsanity’s Smart Crash Reports now. In other news, the two features I mentioned in my last post are now nearly finished. One is a generic text display in the OpenGL view, and the other is a compass pointing you to the next checkpoint. It’s the compass that makes things difficult, since it just won’t spin like it should. Once that is fixed, I’ll create the german localization and then move on to mapping.
Written on November 3rd, 2005 at 10:46 pm