Projekt "W" is going multi-platform! Step 1: Linux
Every developer knows that it's not easy developing a game for multiple platforms, especially if you don't have the manpower to do so. And since Projekt W is a spare time project I'm working on all alone after my daytime job as a programmer, making big decisions, like adding new platforms need to be well planned.
Now when using a programming language that's only available on a single platform (the game is developed with Delphi, which is pretty much windows only) it's a hard way getting your project onto other platforms. But since adding other platforms was soemthing I always had on my mind for this game I started porting the game to linux. And after almost two weeks of hard work and coding 'till late in the night I can announce the first successfull build of the game for linux!
So the first step was to get the game compile with a "different" programming language that supports multiple operating systems. Luckily there is the great free pascal compiler (with a nice IDE called "Lazarus") that is in many parts compatible to Delphi and offers support for many different platforms. So in the first run I made the code to compile with Delphi and free pascal. This meant replacing all libraries that are only available for Delphi and replace them with something that works on both compilers.
Next step now was to set up a development environment under linux. I went for Ubuntu (though I don't like their new user interface) in a virtual machine, installed free pascal and lazarus and imported my project. I also installed all necessary OpenGL packages to have the necessary extensions (compressed textures, frame buffer objects, etc.) at my disposal, so that the game actually loads.
As expected, I couldn't just compile the game under linux as it included stuff that only works under windows (reading operating system information, switchting display settings, creating render contexts, etc.). So the third step now was to make the code compatible with Linux. That's not as trivial as it may sound, as you need to use different functions to get user paths, create a render context, gather OpenGL extensions and get operating system information. But after a complete weekend of coding I finally got the game to compile under linux! Making this the first ever native linux build for my game!
There is still a lot of work to do as several code passages have been commented out for linux, and as you can see on the screenshot there are visual glitches, but that's nothing that can't be fixed.
So a linux version will be released some time in the future, and getting it over to MacOSX shouldn't be a problem now that linux is supported.
And maybe I'll even get around porting it to android tablets at some point in the future ;)