• Register
Post news Report RSS First public linux release!

After a month full of counltess hours of coding, I finally ported the game over to linux. It wasn't easy, and I had to learn a lot about the differences between windows and linux but now you can finally enjoy a native linux vesion of "Phase2".

Posted by on

The public open beta is now also available for linux!

Important note for the linux release:
Please start the game using the "startprojectw.sh" script. The game uses the BASS audio library, so linux needs to know where to locate the libbass.so. This script ensures this.

Also note that the linux version was compiled with a different compiler than the windows one, so there may be bugs present on linux that aren't present on windows.

Note that game requires OpenGL 2.0, so make sure you've got OpenGL acceleration setup on linux and that your graphics card supports at least OpenGL 2.0.

Behind the scenes
Porting the game over to linux wasn't easy after all and it took me almost a full month of countless hours of coding (after my day job as a software engineer). The windows release was made with Embarcadero's Delphi which is de-facto only available for windows and included more than 120,000 lines of code with lots of windows-only stuff.
So in order to get the game ported over to linux I had to replace all the windows-related stuff (setting screen resolution, loading XML, the sound library, etc.) with code that would run and compile on both platforms. That meant replacing several external dependencies (e.g. microsoft's XML libs) with my own stuff (having me write new code for things that worked for years now), adding a lot of compiler defines so that certain code get's used when compiling for windows vs. different code only used when compiling for linux.
And since Delphi isn't available on linux a also had to move over ot another development environment. I went for Lazarus (with free pascal as the compiler) as it's object pascal too and pretty close to Delphi. But still there were some (partly game-breaking) differences between the two compilers making me change another big part of the code to get them to work with both.

But in the end, after all these countless hours of work, the game's code now runs and compiles fin on windows and linux, so from now on all future release will be released for both operating systems.

And I also want to add Mac OSX support sometime in the future, though that may not happen this year.

So I hope all linux users out there that like turn-based strategy games can now enjoy "Phase 2" of Projekt Weltherrscher too!

Post comment Comments
sinisterrainbow
sinisterrainbow - - 4 comments

Thanks for posting this. I would love to know the largest troubles you had to deal with so us others thinking about porting over can get a nice heads up. Game looks awesome btw, love that genre and the hexa-tile grid.

Reply Good karma Bad karma+2 votes
SaschaWillems Author
SaschaWillems - - 36 comments

Well, the biggest trouble was the fact that I've been coding on this game for seven years without thinking about other platforms than linux at all.

So in order to port to linux I had to replace a lot of code (several thousand lines) and make it run on both platforms, or add code for both. The biggest chunk was all the XML-related stuff. The game makes use of this format a lot and the XML implementation in Delphi (the programming language the game was made with) was based on MS-XML, which is only available on windows. So I had to write my own xml wrapper that uses something different on linux and had to replace all xml loading and saving stuff with my own wrapper.

Other than that there were the "usual" things that differ from OS to OS that took some time to figure out. E.g. how to switch resoluation, different file and path naming conventions, differences in the widget sets (e.g. no floodfill on linux), etc.

So it's not really that hard moving to other platforms, but since this was my first big port to linux it just took long due the numerous changes I had to make to the code and also test.

Reply Good karma+2 votes
poVoq
poVoq - - 11 comments

Thanks for releasing it on Linux... looks like a great game so far.

Reply Good karma Bad karma+2 votes
poVoq
poVoq - - 11 comments

Hmm, it just gives me a black screen and no error feedback in the console when I start it though (I am using Linux Mint 13 (based on Ubuntu 12.4 LTS) and it does the same with with the the on-cpu intel GPU and with my Nvidia card through bumblebee).

Reply Good karma Bad karma+2 votes
SaschaWillems Author
SaschaWillems - - 36 comments

That's odd. I'm running on Mint too, and it even works fine in my virtual machine (though it's running pletty slow there).

What graphics card is the NVidia one? Does it support OpenGL? What does the log of the game say? You can find the log in the user directory in ProjekW_Phase2 (log.html)

Reply Good karma+2 votes
poVoq
poVoq - - 11 comments

The nvidia is a gforce M 555, runs other games fine. Judging from the log.html it doesn't actually recognise the bumblebee (optimus) support though.
However regardless of if I start it with bumblebee or the sandy bridge it doesn't run and shows the same symtoms. The log.htmp isn't very helpful either... the only thing it complains about is that it "required support for compressed textures"... which might be the problem on the sandy bridge, but should not if it would run on the geforce through bumblebee.

Reply Good karma Bad karma+2 votes
SaschaWillems Author
SaschaWillems - - 36 comments

Well, the game needs the "GL_EXT_texture_compression_s3tc" extension to run as it stores it's textures in DXT1..5 formats to direcly upload compressed textures to the VRAM. So if your OpenGL implementation doesn't suppot it, the game won't run.

But actually there should be a message box that informs you of this unsupported feature and not just a plain black screen, so I'll have to look into this issue.

Reply Good karma+2 votes
GamerKnight
GamerKnight - - 120 comments

Thank you so much for Linux support.

Reply Good karma Bad karma+3 votes
AlexVSharp
AlexVSharp - - 215 comments

Okay, thanks to your dedication in going cross-platform the game popped up on my radar. Looks slick, so I took it for a spin and can definitely see the potential. Unfortunately in its current state it has proven to be way too much trouble to play at a reasonable pace; that's to say: so many things to set up, very slow way of doing it. The combat also felt rather stagnant, hence I just ended up simulating everything - less fun, but less troublesome as well...

I have high hopes for this title and as such have to emphasize extreme caution with the way you plan on implementing the micromanagement systems. If strained too much it could bring the gameplay to an unreasonable crawl, especially with bigger campaign. This would potentially cripple the title.

So far so good though; tracking.

Reply Good karma Bad karma+2 votes
SaschaWillems Author
SaschaWillems - - 36 comments

Thanks for your honest feedback!

And that's what the open beta is for. Right now I'm focusing on getting all the features into the game, and then it's balancing time.

And that means fixing the things you said like making combat more interesting and also adding functionality to make several repeatable tasks more interesting. The game will also get more game modes including ones with random events to make general gameplay more interesting.

Reply Good karma+2 votes
sextremist
sextremist - - 1 comments

you are the one of the best to give support to Linux. Thank you very much

Reply Good karma Bad karma+2 votes
sinisterrainbow
sinisterrainbow - - 4 comments

Cool. Thanks for the response. I tried the Windows beta, full packed game, definitely see the potential. Could not place troops, so simulated everything. In a game with so much info, it begs for a tutorial - and perhaps starting with just a few options to get familiar (avoiding overwhelmed syndrome). I personally don't mind just playing with things and losing miserably the first game or two until I get a sense of it, but my experience with most players is they prefer mastering small pieces to start, and introducing small bits of new info each time until they understand the full system. That being said, it seems like it has enough features to keep the game quite interesting, always something to do, and always a challenge.

Reply Good karma Bad karma+2 votes
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: