Page 1 of 2

I made a server list for Linux users

Posted: Sun Nov 14, 2004 6:20 pm
by iten
I've made a server list for Linux D3 (in Python) over the past week or so. It's not really that great: it's by no means a replacement for a proper directip option. However, there IS no directip option in Linux D3. So, I kinda made one. Not really, but a time-saver nonetheless. Basically, it just enters the IP address into the Multiplayer screen, so that you just have to hit \"Search for Games at Address\" to get the game.

It sounds really useless, I know. But it does save you a good 20 to 30 seconds of time. And doesn't make you write down IPs.

I guess if anyone wants a screenshot:
Image

Features planned include autodownloading levels and some other stuff that I thought of but can't remember right now.

You can download it here.

PyGTK (version 2 at least, I think) and Python are required.

To install it, do a tar xzvf on the package, cd to it, then su and type make install.

Leave feedback on this thread.

P.S. A couple unrelated questions:
1) Does anyone else notice that others flying the Black Pyro gives you a sig11 randomly?
2) Does anyone have problems with joining Varicose Veins?
EDIT:This is nowhere near as featureful as Vortex, which is the coolest thing since sliced bread.

Posted: Mon Nov 15, 2004 8:44 pm
by SkyNet
I don't think it's the Black Pyro that causes the problem, but rather their logo, or sound file.

Posted: Tue Nov 16, 2004 6:55 am
by WarAdvocat
That looks like a nice tool! I don't use linux but it's great to see people with that kind of passion.

Posted: Tue Nov 16, 2004 6:29 pm
by iten
Passion? More like laziness... :D

Didn't know that it was their logo/sound file though, that's interesting.

Posted: Wed Nov 17, 2004 12:03 pm
by Suncho
good work iten!

Posted: Wed Nov 17, 2004 11:49 pm
by Top Gun
News posted at PD :)

Posted: Thu Nov 18, 2004 12:38 am
by iten
Heh, thanks, everyone, though I think I'm still the only one who uses it :P

Posted: Thu Nov 18, 2004 11:08 am
by Delkian
Well, if this thing works (I just downloaded it), usercount++.

Big thanks for the effort, I've been thinking about something like this myself but haven't got myself into doing it.

Edit:
Yep, count at least two users. I don't really know python but I'm gonna take a glance at the code too, I don't suppose it should be very hard to get for example the game mode displayed?

Posted: Thu Nov 18, 2004 11:29 am
by iten
It's only 150 lines of Python code (which I find amazing, I love scripting languages for this kind of stuff).

Tell me if you have any problems installing, I'll be here for the next 2 hours, as I have a free period at school.

EDIT: hey, you edited it as I posted. :D

Posted: Thu Nov 18, 2004 11:37 am
by iten
One sec, I'll try to find the row number for you.

Ok, quick thing that may or may not work: (if not, I'll try to fix it later, cause now we have a meeting)

carolnrob.net/cam/d3gui.py

as a new d3gui.py.
may not work

Posted: Thu Nov 18, 2004 11:55 am
by Delkian
According to a really quick test, it works.

Posted: Thu Nov 18, 2004 6:58 pm
by iten
Whoops, I broke the refresh list button while doing that, doh.
It's at carolnrob.net/cam/d3gui.py again.

Sorry that I forgot about that, but I didn't have any way to check at school.

Posted: Fri Nov 19, 2004 10:14 am
by Delkian
No problem, I know what to expect in an untested patch to version 0.1.

I'm almost completely unfamiliar with both Gtk and Python but would it be possible to make it so that double-clicking on a game joins that game?

I took a little look at the code but couldn't understand much of it at a quick glance (I have yet to read how arrays etc. work in Python). When I figure it out, I'll try adding little features like this myself.

Posted: Fri Nov 19, 2004 12:29 pm
by iten
Yeah, I think that'd work. I don't know how off the top of my head, though, I'll need to look in the pygtk stuff.

And for help understanding the arrays: the main array is actually a tuple(Python's version of a two-dimensional array). The for row in d3.array stuff makes row a regular array, which pretty much mirrors the rows in d3.descent.cx.

I'm going to try to add ping, etc. too.

Posted: Fri Nov 19, 2004 6:15 pm
by iten
New patch, adds double-clicking:
carolnrob.net/cam/d3gui.py as usual.

Posted: Sat Nov 20, 2004 9:52 am
by Delkian
Pinging has one problem. As far as I know, usually D3 servers are pinged by querying their status and measuring the time it takes for the status response to be received, or something like that -- in any case, it's not done with icmp echo requests.

Thus, some servers may have a firewall blocking those and using icmp ping (which I imagine would be the easy way of doing it in D3launch since it doesn't implement any other direct communication with the game server) may not work very well.

Just a thought.

Thank You

Posted: Sat Nov 20, 2004 10:10 am
by ixion
Bro, I want to thank you tremendously! I haven't tried it out yet, but it's so refreshing to know that there is someone that still wants to develop in the community, and develop for Linux users... what a concept..

Cheers, mate!

Posted: Sat Nov 20, 2004 11:12 am
by Cuda68-2
iten wrote:Heh, thanks, everyone, though I think I'm still the only one who uses it :P
I have a linux rig also, May start useing it again - Thnx for util :)

Posted: Sat Nov 20, 2004 1:15 pm
by iten
Hmm... I think I'll run a test, and see whether they do respond to ICMP echo. If they don't, I think I'll just have to do the query thing, which, I think, would also make it possible to have some sort of "buddy list".

Posted: Sat Nov 20, 2004 3:21 pm
by Delkian
... and in the end you'll end up implementing a Vortex clone for Linux. ;-)

Seriously, though, if it's not very complex, some basic functionality for querying servers themselves might be helpful for pinging and also possibly for getting basic server information.

This is no feature request -- I know that it might not be very easy to implement any of that. I haven't looked at the code of qstat (for example) so I don't really know how complex it is. Even as it is now, the utility is quite a lot of help.

Posted: Sat Nov 20, 2004 9:14 pm
by iten
If QStat has it, that'd make it a whole lot easier, I was just going to reverse engineer it.

Edit: Hmm, it does have it, though it says there are 3 modes: PXO, LAN, and Gamespy. I'll try and look at the source soon.

Re: I made a server list for Linux users

Posted: Sat Nov 20, 2004 11:51 pm
by Xamindar
iten wrote: P.S. A couple unrelated questions:
1) Does anyone else notice that others flying the Black Pyro gives you a sig11 randomly?
2) Does anyone have problems with joining Varicose Veins?
EDIT:This is nowhere near as featureful as Vortex, which is the coolest thing since sliced bread.
1) I always thought it was the logo or sound file the person is using like Skynet said. I noticed that certain people do it to me. I think when they use that dodgy audio taunt it gives linux D3 a sig 11. Very annoying :cry:

2) I have had problems but it does work sometimes (usually when the server is empty).



EDIT: Hey, thanks a lot. You made it a whole lot easier to join games from Linux! :) No more alt-entering to windowize D3 and copy the ip manually.

By the way, anyone know how to automaticly select my pilot and therfore bypass the pilot selection screen? Or was that only possible in windows?

Posted: Sun Nov 21, 2004 12:02 am
by iten
After I turned off audio taunts in my config, the sig11s stopped. Previously, though, I noticed what were unmistakably buffer overflows while playing, rather than sig11s, which are less intriguing.

Posted: Sun Nov 21, 2004 12:09 am
by Xamindar
Thanks for the tip, I'll try that when I have this issue again. Too bad, I get such a laugh out of the audio taunts. This game was absolutly perfect! :lol:

Posted: Sun Nov 21, 2004 7:01 am
by Delkian
Actually there is even a graphical client that can read Descent 3 server information, and that's XQF. The problem with it is that it can't read the server list from descent.cx, and I don't know of any other publically usable master server that would have a useful list of D3 servers (Gamespy's master servers aren't publically available, they require an authentication method which is proprietary). It can't start D3 either because D3 lacks the (in)famous --directip option and XQF doesn't have a workaround implemented like D3launch.

The easiest way of having a really good D3 game browser with rudimentary support for "--directip workaround" would probably be to implement reading the raw descent.cx server list and the workaround (configuration file tinkering) in XQF -- or qstat, upon which XQF is based, if it's in the domain of qstat more than in that of XQF (I haven't looked into it much and don't know exactly).

Edit:
Added linkage

Edit2:
I just don't think I know enough C to add those features in qstat/XQF, otherwise I'd probably have looked into it already...

Posted: Sun Nov 21, 2004 10:11 am
by iten
Funny that you mentioned that actually, I was looking at XQF the other night, and was trying to see how it worked. I'm not sure what it does in terms of ping, but I'll try and look at the source for it.

QStat I don't think would work, because it's not a server launcher, just something to get information from servers.

EDIT: Hmm, that workaround should be pretty easy, don't even have to mess around with the source. d3.descent.cx on the other hand... I'm not sure how that's going to work.

Posted: Sun Nov 21, 2004 10:47 am
by Delkian
XQF uses qstat (or at least its code) to fetch and handle server lists, but I'd assume it starts up games and other such stuff on its own. That's why I mentioned qstat with regard to fetching a server list from descent.cx.

Posted: Sun Nov 21, 2004 10:48 am
by iten
Ah, I didn't know that qstat fetched the master lists, I thought it just investigated single servers. Apparently it does both.

Posted: Sun Nov 21, 2004 11:08 am
by Delkian
To be frank, I'm not too sure about that either, but that's the impression I've got.

Posted: Sun Nov 21, 2004 1:10 pm
by Suncho
It does both.

Re: I made a server list for Linux users

Posted: Thu Dec 09, 2004 1:43 am
by Fusion
Xamindar wrote: By the way, anyone know how to automaticly select my pilot and therfore bypass the pilot selection screen? Or was that only possible in windows?


Xam,

If it is the same in windows D3 Command Strings, here is your answer:
-pilot [NuB2]Fusion
Obviously change the Pilot name w/yours. I just used mine as an example. Make sure there is a space between the t in pilot and the first letter of your default Pilot Name.
Hope it helps :)

Fus

Posted: Thu Dec 09, 2004 8:41 am
by Delkian
That's one of the features that the Linux version of D3 lacks. There's no --pilot command-line parameter.

As usual, a list of the (documented) command-line parameters recognised by the game can be displayed by running "descent3 --help".

Posted: Fri Dec 10, 2004 1:09 am
by Xamindar
Delkian wrote:As usual, a list of the (documented) command-line parameters recognised by the game can be displayed by running "descent3 --help".
Yeah, I was hoping there were some "undocumented" command-line options that someone here knew about. Thanks guys. :)

Posted: Tue Dec 14, 2004 12:02 am
by iten
Sorry for the noticeable lack of updates, I've been very busy with school and other projects. But I'm keen on getting this thing to be more useful, and implement server queries in it. A buddylist would be awful cool too. I'll see how far I get (Wed. is the last final! Woo!)

(I'm not exactly sure if I'm going to add autodownloading, I forgot that without directip D3 goes ahead and does it anyways ;) )

Posted: Tue Dec 14, 2004 9:16 am
by Delkian
A suggestion:
Customizable command-line parameters for the game -- that is, changeable without editing them in the source code.

I still don't know Gtk and right now I don't have time for that either, so I can't really implement this easily.

Posted: Tue Dec 14, 2004 10:35 am
by iten
Doh! I keep on forgetting about that.

Posted: Sun Dec 26, 2004 1:52 pm
by Delkian
XQF 1.0.2 has been released and it can fetch the server list from descent.cx.

Posted: Mon Dec 27, 2004 12:13 am
by iten
Woo! Can it launch D3, or is that still not feasible? I think I may be able to write up a quick shell script... but we'll see, because right now I've been rather busy (sorry.)

Although it is with something cool: developing (good, not out-of-sync) coop for Doom 3.

Posted: Mon Dec 27, 2004 7:37 am
by Delkian
It can't launch D3.

Well, it can, but it can't give it the IP address.

However, even though it doesn't give the game the IP address in any way the latter would understand it, to me it looks like it does pass the IP address to the game without a preceding, corresponding command-line argument (e.g. --directip) so I assume it should be possible to work around it with some kind of a wrapper script without touching the XQF source code. I'll take a look at it but I don't think it'd really be what I call 'a good solution'.

Posted: Fri Apr 22, 2005 5:20 pm
by FunkyStickman
Well, I just got the Linux version of D3 (after much searching) and everything is working smoothly. I love the server list, it works fine, now I have to begin the work of seeing which levels will work cross-platform. Is there such a list in existance, or should I begin making one, or should I wait for the 1.5 patch? (from what I hear, D4 would happen sooner!)

I can set up another box and test most of the levels. Are the servers in this list using the most popular ones? Man, I've got to get my trigger finger back in shape...