I made a server list for Linux users

Meet the people you love to kill (and be killed by) in Descent!

Moderator: Do_Checkor

User avatar
iten
DBB Ace
DBB Ace
Posts: 100
Joined: Tue Sep 28, 2004 3:38 pm

I made a server list for Linux users

Post 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.
User avatar
SkyNet
DBB Ace
DBB Ace
Posts: 78
Joined: Mon Jul 19, 2004 3:56 pm
Location: Spartanburg, South Carolina
Contact:

Post by SkyNet »

I don't think it's the Black Pyro that causes the problem, but rather their logo, or sound file.
User avatar
WarAdvocat
DBB Defender
DBB Defender
Posts: 3035
Joined: Sun Jun 23, 2002 2:01 am
Location: Fort Lauderdale, FL USA

Post 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.
User avatar
iten
DBB Ace
DBB Ace
Posts: 100
Joined: Tue Sep 28, 2004 3:38 pm

Post by iten »

Passion? More like laziness... :D

Didn't know that it was their logo/sound file though, that's interesting.
User avatar
Suncho
DBB Defender
DBB Defender
Posts: 3222
Joined: Sat Jan 30, 1999 3:01 am
Location: Richmond, VT
Contact:

Post by Suncho »

good work iten!
User avatar
Top Gun
DBB Master
DBB Master
Posts: 8099
Joined: Wed Nov 13, 2002 3:01 am

Post by Top Gun »

News posted at PD :)
User avatar
iten
DBB Ace
DBB Ace
Posts: 100
Joined: Tue Sep 28, 2004 3:38 pm

Post by iten »

Heh, thanks, everyone, though I think I'm still the only one who uses it :P
Delkian
DBB Ace
DBB Ace
Posts: 200
Joined: Mon Dec 31, 2001 3:01 am
Location: Helsinki, Finland
Contact:

Post 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?
User avatar
iten
DBB Ace
DBB Ace
Posts: 100
Joined: Tue Sep 28, 2004 3:38 pm

Post 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
User avatar
iten
DBB Ace
DBB Ace
Posts: 100
Joined: Tue Sep 28, 2004 3:38 pm

Post 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
Delkian
DBB Ace
DBB Ace
Posts: 200
Joined: Mon Dec 31, 2001 3:01 am
Location: Helsinki, Finland
Contact:

Post by Delkian »

According to a really quick test, it works.
User avatar
iten
DBB Ace
DBB Ace
Posts: 100
Joined: Tue Sep 28, 2004 3:38 pm

Post 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.
Delkian
DBB Ace
DBB Ace
Posts: 200
Joined: Mon Dec 31, 2001 3:01 am
Location: Helsinki, Finland
Contact:

Post 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.
User avatar
iten
DBB Ace
DBB Ace
Posts: 100
Joined: Tue Sep 28, 2004 3:38 pm

Post 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.
User avatar
iten
DBB Ace
DBB Ace
Posts: 100
Joined: Tue Sep 28, 2004 3:38 pm

Post by iten »

New patch, adds double-clicking:
carolnrob.net/cam/d3gui.py as usual.
Delkian
DBB Ace
DBB Ace
Posts: 200
Joined: Mon Dec 31, 2001 3:01 am
Location: Helsinki, Finland
Contact:

Post 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.
ixion
DBB Ace
DBB Ace
Posts: 336
Joined: Fri Aug 09, 2002 2:01 am
Location: FL

Thank You

Post 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!
Cuda68-2
DBB Ace
DBB Ace
Posts: 320
Joined: Fri Sep 20, 2002 2:01 am
Location: St. Paul Minnesota
Contact:

Post 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 :)
User avatar
iten
DBB Ace
DBB Ace
Posts: 100
Joined: Tue Sep 28, 2004 3:38 pm

Post 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".
Delkian
DBB Ace
DBB Ace
Posts: 200
Joined: Mon Dec 31, 2001 3:01 am
Location: Helsinki, Finland
Contact:

Post 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.
User avatar
iten
DBB Ace
DBB Ace
Posts: 100
Joined: Tue Sep 28, 2004 3:38 pm

Post 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.
User avatar
Xamindar
DBB Admiral
DBB Admiral
Posts: 1498
Joined: Sun Jun 06, 2004 2:44 am
Location: California
Contact:

Re: I made a server list for Linux users

Post 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?
User avatar
iten
DBB Ace
DBB Ace
Posts: 100
Joined: Tue Sep 28, 2004 3:38 pm

Post 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.
User avatar
Xamindar
DBB Admiral
DBB Admiral
Posts: 1498
Joined: Sun Jun 06, 2004 2:44 am
Location: California
Contact:

Post 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:
Delkian
DBB Ace
DBB Ace
Posts: 200
Joined: Mon Dec 31, 2001 3:01 am
Location: Helsinki, Finland
Contact:

Post 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...
User avatar
iten
DBB Ace
DBB Ace
Posts: 100
Joined: Tue Sep 28, 2004 3:38 pm

Post 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.
Delkian
DBB Ace
DBB Ace
Posts: 200
Joined: Mon Dec 31, 2001 3:01 am
Location: Helsinki, Finland
Contact:

Post 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.
User avatar
iten
DBB Ace
DBB Ace
Posts: 100
Joined: Tue Sep 28, 2004 3:38 pm

Post by iten »

Ah, I didn't know that qstat fetched the master lists, I thought it just investigated single servers. Apparently it does both.
Delkian
DBB Ace
DBB Ace
Posts: 200
Joined: Mon Dec 31, 2001 3:01 am
Location: Helsinki, Finland
Contact:

Post by Delkian »

To be frank, I'm not too sure about that either, but that's the impression I've got.
User avatar
Suncho
DBB Defender
DBB Defender
Posts: 3222
Joined: Sat Jan 30, 1999 3:01 am
Location: Richmond, VT
Contact:

Post by Suncho »

It does both.
User avatar
Fusion
DBB Ace
DBB Ace
Posts: 379
Joined: Sun Sep 07, 2003 2:01 am
Location: Valdez System, Underverse; 7 Stars, Azeroth

Re: I made a server list for Linux users

Post 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
Delkian
DBB Ace
DBB Ace
Posts: 200
Joined: Mon Dec 31, 2001 3:01 am
Location: Helsinki, Finland
Contact:

Post 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".
User avatar
Xamindar
DBB Admiral
DBB Admiral
Posts: 1498
Joined: Sun Jun 06, 2004 2:44 am
Location: California
Contact:

Post 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. :)
User avatar
iten
DBB Ace
DBB Ace
Posts: 100
Joined: Tue Sep 28, 2004 3:38 pm

Post 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 ;) )
Delkian
DBB Ace
DBB Ace
Posts: 200
Joined: Mon Dec 31, 2001 3:01 am
Location: Helsinki, Finland
Contact:

Post 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.
User avatar
iten
DBB Ace
DBB Ace
Posts: 100
Joined: Tue Sep 28, 2004 3:38 pm

Post by iten »

Doh! I keep on forgetting about that.
Delkian
DBB Ace
DBB Ace
Posts: 200
Joined: Mon Dec 31, 2001 3:01 am
Location: Helsinki, Finland
Contact:

Post by Delkian »

XQF 1.0.2 has been released and it can fetch the server list from descent.cx.
User avatar
iten
DBB Ace
DBB Ace
Posts: 100
Joined: Tue Sep 28, 2004 3:38 pm

Post 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.
Delkian
DBB Ace
DBB Ace
Posts: 200
Joined: Mon Dec 31, 2001 3:01 am
Location: Helsinki, Finland
Contact:

Post 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'.
User avatar
FunkyStickman
DBB Ace
DBB Ace
Posts: 309
Joined: Wed Apr 20, 2005 2:26 pm
Location: 'Nawlins

Post 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...
Post Reply