Previous Blog Next Blog
Prev/Next Blog
by date

Linux support..

Linux support..
Name:David .NfoCipher. Bunt
Date Posted:Jan 30, 2007
Rating:4.7 out of 5
Public:YES
Comments:YES
RSS Feed:GarageGames Blog feedor Subscribe with .
Profile Page:View profile page for David .NfoCipher. Bunt

Blog post
When GarageGames announced that Linux support would be purely a community effort, my heart sank. I finally find a engine that compiles in everything just to find out it doesn't make enough money in the Linux sector to warrant paying someone in-house to keep it current.

Community support means you either know how to make the changes necessary or do the forum research and hope your problem has a solution already. Releases lag behind and users become frustrated. While I can't fix the Linux game engine market share, I can try to ease the pain of getting Torque to run on Linux.

The goals are simple:
Make current Torque builds for Linux..
Make those builds compile and run out of the box for the major Linux distros.

So, if you're a Linux user and want to help - no time like the present:
What doesn't work for you?
What distro are you using?
What version of GCC do you have?
Patches! Do you have a patch for those nasty compiler warnings? I want to see them!
Is cpu utilization not working quite like it should and wrote a nifty fix for it? Yes, I want to see it.
Any patch or fix you have that you'd like to see rolled into the next Linux release I'd like check those out.

Feel free to send them on to the email address listed in my profile. I'll be scanning the forums for interesting patches but I'm bound to miss something as I always do.

Submit ResourceSubmit your own resources!

Tony Richards   (Jan 30, 2007 at 15:59 GMT)
For dedicated server, there's not much that's not working right out of the box other than a few places where you need to add a conditional compile directive:

#ifdef DEDICATED
...
#endif


Dreamer published a resource that will get rid of all of the warnings about missing linefeed at the end of the file.

There were a few simple little porting issues for the version of gcc that I'm using, but I've done a few things to my code that quite a few people might not want to do. A few major things out of the ordinary is I've dumped the Torque memory manager in favor of the standard C memory manager and I'm using STL, MySQL++, and Boost.org libraries.

Client side... well, I've not tested that yet, so I wouldn't really know.

I'm using gcc 4.1.1 / Gentoo / AMD 64, but I'm using chroot to switch to a 32 bit environment... I'd love it if someone could work through the 64 bit compiler issues.

I do have some sort of flakiness going on when I start more than two zone servers... the server gets very jerky even though I'm not even approaching 100% CPU utilization or bandwidth. Possibly the CPU affinity bug, but I've not had time to look into it yet.

I'm too far into my game to be able to provide any useful patches, but feel free to shoot me an e-mail if you hit a particularly nasty problem... if it's server side then I've probably already hit it and solved it.

Good luck!

Jonathan A. Garay M.   (Jan 30, 2007 at 16:47 GMT)
i want see some time the rpms,debs packages :)

David Higgins   (Jan 30, 2007 at 17:27 GMT)   Resource Rating: 5
@Jonathan, being as torque is a source distribution, I don't think that RPM or DEB packages would be 'useful', the concept behind those package systems is that they put things in standard default locations and usually run some form of 'post install' script to set your system up -- Torque is not a library, and it's not really a 'game' either, and if your developing with it, you usually wind up having multiple source trees, one for each project, and sometimes even one 'dummy' tree just to mess around with and test new things out -- therefore, I don't think the idea of an RPM or DEB would be 'useful' and would actually cause more problems then it would solve as the person installing it really should choice on there own where to put it --

@David/NfoCipher -- do you intend to do this only for TGE or for TGB as well? I'd love to get TGB working 'out of the box' in Linux without all the issues it has now (performance nightmares, compile issues with the newly 'hidden' SDL X11_KeyToUnicode', etc, etc )

I have various *nix distro's at my disposal, so if you need someone to do some compile tests and execution tests, let me know, be more then willing to help out.

Benoit Touchette   (Jan 30, 2007 at 17:32 GMT)
Tony @ adding -m32 (LDFLAGS and CFLAGS) works on both 32 and 64 bit environments and adding it to the makefiles would let you build without chrooting.

Edit: note this would create a 32bit binary. I had tried cleaning it up to create a true 64bit binary but required more effort than i had time to spend on it.
Edited on Jan 30, 2007 17:33 GMT

Dreamer   (Jan 30, 2007 at 17:42 GMT)   Resource Rating: 5
I would deffinetely not recommend using a packaging system for TGE, this would make it problematic to install on all but the target distro and version.

As for me the biggest problems I've encountered with getting TGE 1.5 to compile under any distro in general has been GCC's change to not allow member class (I think that was the term) in a function definition.
For instance

void MyCassname::MyFunction(mytype myvar);

has to be changed to

void MyFunction(mytype myvar);

Thats annoying.

Also there was a bug in the particles where something was being used before it was defined, moving the definition up near the top fixes that.

Finally the usage of an SDL function that is no longer present in libSDL.

Anyways count me in on any community based linux efforts!

Regards,
Dreamer

Gary "ChunkyKs" Briggs   (Jan 30, 2007 at 20:02 GMT)
For whatever it's worth, I've posted many threads now on the forums for fixing bugs, and Ron Yacketta is back in town it seems [from his How's 1.5 Looking? thread]. Everything should be in places for fixes to finally make their way back into the trees... but everything has been in place for a long while now, and torque still doesn't compile on linux when you download it. TGB is two releases behind.

Community support shouldn't *just* mean that you go to the forums and download a million fixes every time you want to just compile the engine. One community member being prepared to shoulder the burden of maintaining patches doesn't fix what's wrong here; Somewhere upstream, pivotally, those changes need to be committed back into GG's SCM, otherwise it's a neverending alwaysexpanding pile of work for one person to do.

Alternatively, give me commit access to GG's svn and I'll do it :-)

Quote:

What doesn't work for you?

Stuff still on my problem wishlist:
1) Putting the T2D folder from 1.1.3 into a TGE1.5 source folder, recompiling, and then trying to use as TGB. Works on other platforms, but on linux there's a problem in the sound profiles somewhere [I think]. It works fine as T2D, but the actual Game Builder part explodes.
2) For that matter, TGB1.1.3 needs a bunch of stuff just to make it run on linux, unless you're slipping it into TGE. See point 1.
3) X11_KeyToUnicode. This problem needs to die already
4) Buckets of other stuff in Ron's Thread
5) Linux torque statically links against libGLU, but my recent tests imply that's not necessary. Why was it like that before? If there is a problem, can it be fixed? Many distributions no longer ship with a static libGLU.

Quote:

Any patch or fix you have that you'd like to see rolled into the next Linux release I'd like check those out.


How about one to make it build on mac? :-)

Actually, making TGE build on the mac using platformX86UNIX is neat for a variety of reasons [three cheers for joystick support], but does require one change to be made to about three files outside of platformX86UNIX, which is why I suspect it'll never happen.

Gary (-;
Edited on Jan 30, 2007 20:03 GMT

Frank Carney   (Jan 31, 2007 at 04:51 GMT)
I have had no trouble getting the release version of Torque 1.5 and previous to compile under Linux. I was suprised with 1.5, but those guys in the Linux section of the SDK forum are doing a great job.

David .NfoCipher. Bunt   (Jan 31, 2007 at 07:52 GMT)
>do you intend to do this only for TGE or for TGB as well?

Yes, TGB as well.

David Janssens   (Jan 31, 2007 at 09:17 GMT)   Resource Rating: 4
Hey guys, I'm really excited to see this picking up some steam. I've been having some troubles with real life (tm) taking much of my time, but I'm extremely interested in Linux support. There are some Linux parts on the forums, where that info is present.
I concur that it's sometimes frustrating to see that Linux releases are lagging, but I must say that I have seen interest on behalf of GG to have a look at the code and produce some Linux-specific packages. The key is to make it as easy for them as possible to include and check the code. Small patches that do one thing at a time are the key here.

David .NfoCipher. Bunt   (Jan 31, 2007 at 15:23 GMT)
>Actually, making TGE build on the mac using platformX86UNIX is neat for a variety of reasons [three cheers for joystick support], but does require one change to be made to about three files outside of platformX86UNIX, which is why I suspect it'll never happen.

Send that my way. I can see the advantages of compiling via command line on a mac server.

Gary "ChunkyKs" Briggs   (Jan 31, 2007 at 18:38 GMT)
Quote:

Send that my way. I can see the advantages of compiling via command line on a mac server.


Oo, command line... hm...

Actually, it's still using XCode [why rock the boat, you know?] but using the platformX86UNIX layer for as much as is reasonable [graphics, input, file handling, window management, everything SDL...]. It means that you're using X11 instead of mac carbon, so it's not really useful for production release to customers... but I like it.

Gary (-;

EDIT: Oh, hey. Command-line.

xcodebuild -project torque_xcode_2_2_UB.xcodeproj -alltargets

The things you learn
Edited on Jan 31, 2007 18:43 GMT

Ron Yacketta   (Feb 01, 2007 at 14:11 GMT)
Quote:

and Ron Yacketta is back in town it seems


Yah, I am lurking in the shadows. Willing to help out put more than likely have burnt all bridges with GG.

Quote:

Community support shouldn't *just* mean that you go to the forums and download a million fixes every time you want to just compile the engine. One community member being prepared to shoulder the burden of maintaining patches doesn't fix what's wrong here; Somewhere upstream, pivotally, those changes need to be committed back into GG's SCM, otherwise it's a neverending alwaysexpanding pile of work for one person to do.


I agree and from what I have been told David .NfoCipher. Bunt has SVN access, not sure if he is setup with a lecense key to make a linux installer (like I did for TGE-L 1.4.*).

Quote:

TGB is two releases behind.

I think this stems from the "One community member being prepared to shoulder the burden" comment, I was at one time trying to juggle TGE-L, TST-Pro and Constructor. Was a ton to keep in check and going smoothly, I presume that David is in the same boat picking up were I failed while keeping TGB on his plate. To much for one person to keep in check.

-Ron

Keith Frampton   (Feb 02, 2007 at 15:30 GMT)   Resource Rating: 5
One thing that would be good to see on the TGB side would be a Linux 30 day demo like Windows & Mac. Although I don't need that, new visitors to the site might appreciate that in seeing whether or not it'll run on their distro. A binary would also help out for those who don't buy the Pro versions & have no access to a download as is the case in this post.

Lee Latham   (Apr 26, 2007 at 02:08 GMT)
I'll be happy to help out however I can, but I'm no coder. I just went through building the dedicated server on Ubuntu 7 and FC4--but forget the client, 'cause the Nvidia binary drivers aren't working on my box at the moment. But even the dedicated server build was not fun. I'll keep notes next time so I can share...

I think it's a huge mistake for GG to utterly abandon Linux--heck, for the server side of things if nothing else.

It's not so much about Linux per se, but portability, which one day you will be very, very glad of.

You must be a member and be logged in to either append comments or rate this resource.