Linux support..
by David .NfoCipher. Bunt · 01/30/2007 (7:20 am) · 16 comments
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.
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.
#2
01/30/2007 (8:47 am)
i want see some time the rpms,debs packages :)
#3
@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.
01/30/2007 (9:27 am)
@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.
#4
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.
01/30/2007 (9:32 am)
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.
#5
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
01/30/2007 (9:42 am)
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
#6
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 :-)
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.
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 (-;
01/30/2007 (12:02 pm)
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 (-;
#7
01/30/2007 (8:51 pm)
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.
#8
Yes, TGB as well.
01/30/2007 (11:52 pm)
>do you intend to do this only for TGE or for TGB as well?Yes, TGB as well.
#9
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.
01/31/2007 (1:17 am)
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.
#10
Send that my way. I can see the advantages of compiling via command line on a mac server.
01/31/2007 (7:23 am)
>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.
#11
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.
01/31/2007 (10:38 am)
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 -alltargetsThe things you learn
#12
Yah, I am lurking in the shadows. Willing to help out put more than likely have burnt all bridges with GG.
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.*).
-Ron
02/01/2007 (6:11 am)
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
#13
02/02/2007 (7:30 am)
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.
#14
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.
04/25/2007 (7:08 pm)
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.
#15
However, I have not been able to find any other information on said list. In searching I found this blog posting about Linux support. However, the provided profile link:
http://www.garagegames.com/my/home/view.profile.php?qid=18123
appears to be broken and should now be:
https://www.garagegames.com/account/profile/18123
The new profile page does not appear to have an e-mail address for you. So, I'm posting my question here on the blog. Is there a mailing list for the community supported Linux version? If so, where would I find more information about it?
03/22/2009 (9:49 am)
I found a forum post where you made mention of a mailing list for the community supported Linux effort.However, I have not been able to find any other information on said list. In searching I found this blog posting about Linux support. However, the provided profile link:
http://www.garagegames.com/my/home/view.profile.php?qid=18123
appears to be broken and should now be:
https://www.garagegames.com/account/profile/18123
The new profile page does not appear to have an e-mail address for you. So, I'm posting my question here on the blog. Is there a mailing list for the community supported Linux version? If so, where would I find more information about it?
#16
03/22/2009 (10:12 pm)
@Jamin: The new version of TGEA has Mac support. This means Linux support is at least reasonable, but I don't know of anyone who's made an effort and posted about it publicly.
Torque 3D Owner Tony Richards
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!