Page 3 of 3

Re: The DBB needs your help ....

Posted: Wed Mar 09, 2011 4:43 pm
by karx11erx
Jeff,

don't let flip confuse you. Apparently he has missed a few posts here.

I am done with specifying the game info. Find all information on the lower half of this page: http://www.descent2.de/d2x-tracker.html

Re: The DBB needs your help ....

Posted: Wed Mar 09, 2011 5:04 pm
by KoolBear
Excellent Diedel beautiful piece of work.

Re: The DBB needs your help ....

Posted: Wed Mar 09, 2011 5:16 pm
by karx11erx
The version-specific subsections are meant to hold all information specific to a certain Descent version. So there could be either D2X-XL or DXX-Rebirth settings. A given Descent version doesn't need to supply (dummy) information for any other Descent version.

Re: The DBB needs your help ....

Posted: Wed Mar 09, 2011 5:51 pm
by Jeff250
The XML looks good.

I'm not familiar with the extra features in XL or Rebirth. My intuition is to just ignore the D2x-specific sections, or do you think that there is something crucial enough to warrant creating a column for it in a table of games?

Maybe an alternative would be to create a column for a comma-separated list of only the "extra features" that are enabled. This could get tricky, since for some things the "extra feature" seems to be actually disabling the thing, like with suicides.

Re: The DBB needs your help ....

Posted: Wed Mar 09, 2011 6:32 pm
by fliptw
a suggestion:

instead of <D2X-XL> and <DXX-Rebirth> tags, Perhaps <game-variant name="D2X-XL"> would be more extensible.

Re: The DBB needs your help ....

Posted: Wed Mar 09, 2011 9:44 pm
by Sirius
Actually, I think we might need a small adjustment so that a generic tracker (that might not necessary display information specific to either D2X-XL or D1/2X-Rebirth) can show some rather important information - namely, what version of the game the host is running. If it's an XL game, you may not be able to join it with Rebirth ... or with an old version of XL. Something like

Code: Select all

<game-variant>D2X-XL | D1X-Rebirth | D2X-Rebirth</game-variant>
<version>(1.15.147, 0.57, etc)</version>
Then you would also have the variant-specific block later on in the XML snippet. I'm not sure whether it's better to use the same element name for this regardless of version, or a different one for each - the latter might make a serial XML parser fractionally more difficult to implement if you were doing it wrong (skipping unknown elements isn't rocket science), but to a DOM parser it's literally no effort at all to ignore it if you're not expecting it.

Re: The DBB needs your help ....

Posted: Wed Mar 09, 2011 11:45 pm
by Jeff250
What are the versioning semantics? For instance, does 1.15.xx necessarily break compatibility for 1.14.xx players to join, and are all 1.15.xx intended to be mutually compatible?

Re: The DBB needs your help ....

Posted: Thu Mar 10, 2011 12:54 am
by Sirius
Nothing quite so strict as that I don't think. If it lists the version then people should be able to guess why they can't join if they can't at least.

Re: The DBB needs your help ....

Posted: Thu Mar 10, 2011 1:21 am
by karx11erx
Sirius proposition looks good. There should probably be another field telling the level type (D1, D2, XL), as you can use D2X-XL for all of them.

Jeff, I could offer a condensed "extra features enabled" information, e.g. using the CompetitionMode field:

no: gameplay-critical extra features enabled
basic: non-critical extra features enabled
full: no extra features enabled

People may still want to see details about what features exactly are on or off. Two possibilities here:

1. Your tracker can expand the info (e.g. using a popup window or floating div area) when a user clicks on a tracker display line
2. The player will have to use D2X-XL to see all the extra features (D2X-XL provides expanded game info when pressing a key in the netgame browser).

A program type field is a good idea, too.

If Rebirth is starting to use the tracker, too, we need to expand it to let it be aware of different program versions, because they do have incompatible UDP networking protocols, so they would need to silently filter any game hosts returned by a tracker and display only those they can cooperate with.


Edit:

XML and documentation updated (see http://www.descent2.de/d2x-tracker.html#xml).

Except with the competition mode, the D2X-XL specific info could theoretically be ignored. Competition mode gives people a basic idea whether D2X-XL features are enabled (or disabled) they would prefer not to use (or to use).

The tracker can use the Name value from the Program tag to identify the extensions area (i.e. when <Program Name="D2X-XL" Version="1.15.148" /> then the extensions area would be <D2X-XL> ... </D2X-XL>).

Re: The DBB needs your help ....

Posted: Thu Mar 10, 2011 2:55 pm
by fliptw
if you fully implemented Sirius's suggestion, then whoever is doing the page can use a single css/xslt rule for all the games, rather than having to do one each for D1X/D2X/D2X-XL...

Re: The DBB needs your help ....

Posted: Thu Mar 10, 2011 3:26 pm
by karx11erx
Did you read my spec on the page I have linked to?

Re: The DBB needs your help ....

Posted: Thu Mar 10, 2011 4:20 pm
by fliptw
I did, but this was what I was meaning:

Code: Select all

<?xml version="1.0"?>
<GameInfo>
  <Descent>
    <Host>hostname</Host>
    <Mission Type={"D1" | "D2" | "D2X"} Name="mission name" Level="level no" />
    <Players Current="number of players" Max="max. number of players" />
    <Difficulty>difficulty level</Difficulty>
    <Mode
      Type={"Coop" | "Anarchy" | "Robo Anarchy" | "CTF" | "Hoard" | "CTF+" | "Monsterball" | "Entropy"}
      Team={"0"|"1"}
      Robots={"0"|"1"} />
    <Status>"Forming" | "Open" | "Restricted" | "Closed" | "Full" </Status>
  </Descent>
  <game-variant Name={"D2X-XL" | "DXX-Rebirth"} Version="program version" >
 
    <Competition Mode={"-1"|"0"|"1"} />
    <GraphicsFx
      Shadows={"0"|"1"}
      Smoke={"0"|"1"}
      Lightning={"0"|"1"} />
    <WeaponFx
      LightTrails={"0"|"1"}
      Tracers={"0"|"1"} />
    <ShipFx
      Shield={"0"|"1"}
      Damage={"0"|"1"}
      Weapons={"0"|"1"}<
      GatlingSpeedup={"0"|"1"} />
    <HUD
      TargetInd={"0"|"1"}
      DamageInd={"0"|"1"}
      LockInd={"0"|"1"} />
    <RADAR
      Players={"0"|"1"}
      Powerups={"0"|"1"}
      Robots={"0"|"1"}
      HUD={"0"|"1"} />
    <Controls
      Mouselook={"0"|"1"}
      FastPitch={"0"|"1"} />
    <GamePlay
      Cheats={"0"|"1"}
      Darkness={"0"|"1"}
      SmokeGrenades={"0"|"1"}
      FusionRamp={"0"|"1"}
      FriendlyFire={"0"|"1"}
      Suicide={"0"|"1"}
      KillMissiles={"0"|"1"}
      TriFusion={"0"|"1"}
      BetterShakers={"0"|"1"}
      HitBoxes={"0"|"1"} />
  </game-variant>
  <game-variant/>
  ...

</GameInfo>
It would be easier to read if {0|1} was replaced with {enabled|disabled}.

Re: The DBB needs your help ....

Posted: Thu Mar 10, 2011 4:26 pm
by karx11erx
Easier for humans - computers don't care. And it blows the data up.

The way you wrote it doesn't work. You are using an empty tag for the program version, but you need a start and end tag. Maybe just a typo, but I wanted to clarify.

What your proposition does is to mix two different tags that should not intersect. Imo it is cleaner to separate the program version info from the extensions info.

Re: The DBB needs your help ....

Posted: Thu Mar 10, 2011 4:36 pm
by fliptw
karx11erx wrote:I am not an XML expert, but I am pretty sure that something like <tag props /> ... </tag> doesn't work. Maybe <tag props> ... </tag>, but I am not sure about that. So far I thought you can either do <tag props /> or <tag><prop1>...</prop1> ... </tag>.
<tagx/> and <tagx></tagx> are identical, so is <x e="y"/> and <x><e>y</e></x>; I did <game-variant/> for the sake of compactness.

Re: The DBB needs your help ....

Posted: Thu Mar 10, 2011 4:39 pm
by karx11erx
You don't understand.

You did <tagx/> </tagx>, which afaik is not possible.

Anyway, my proposition isn't very flexible. Every application implementing this has to know about all keywords an extension uses. Change the extension => change all apps.

You could do something like:

Code: Select all

<Extensions Groups="number of extension groups M">
   <Group1 Name="name" Attributes="number of attributes N">
     <Attribute1 Name="name" State={"0" | "1" | "disabled" | "enabled" | "another meaningful state"} />
     ...
     <AttributeN Name="name" State={"0" | "1" | "disabled" | "enabled" | "yet another meaningful state"} />
  </Group1>
  ...
  <GroupM>
    ...
  </GroupM>
</Extensions>
This would allow any application to use and display all extension information without knowing in advance how many there are and how each is named. The only fixed keywords provide Descent version independent meta information. You could even omit the group count and just stop looking for more "GroupX" areas as soon as one isn't contained in the XML tree. Same for the attributes.

What do you think about it, folks?

Re: The DBB needs your help ....

Posted: Thu Mar 10, 2011 5:13 pm
by fliptw
fixed typo above.
you can specify a fixed set of keywords in a XML's DTD schema if you wanted. you still need to document the format however.

that being said, its easy enough for the game client to filter out servers that it can't connect to.

Re: The DBB needs your help ....

Posted: Thu Mar 10, 2011 5:29 pm
by karx11erx
fliptw wrote:that being said, its easy enough for the game client to filter out servers that it can't connect to.
What has this to do with it?

And what are your comments good for if you hardly ever offer a solid concept and not just some buzzwords here? What is your goal: To help us? Or what else?

Re: The DBB needs your help ....

Posted: Thu Mar 10, 2011 5:53 pm
by fliptw
I think we are communicating at cross purposes here, lets get something straight:

Do you intend to have actual game clients make use of the XML information provided by the server?

Re: The DBB needs your help ....

Posted: Thu Mar 10, 2011 6:31 pm
by KoolBear
Gentlemen,

I think we had a great run here. I believe that this thread is about run it course for the purpose I created it.

Going forward Jeff250 will be the coordinator from the DBB side. It appears that we have decided and agreed on an output from the DX-XL. Please support Jeff and keep him on the straight and narrow :)

If we need anything else from the developers lets have Jeff be our liaison. The next phase will require very little from the developers anyway.

I want to thank everyone that has contributed to this effort all the DBB'rs , Diedel, Zico, LO thank you very much for your input. Jeff let me know what you need and I will see that you have it when you need it.

I would like to remind everyone that this effort should remain an open source project, while the DBB might customize the look, it should be a utility that many sites can use if they choose!

Kindest Regards,
Mike Sullivan
Mike

Re: The DBB needs your help ....

Posted: Thu Mar 10, 2011 8:21 pm
by Ryujin
Well said, KB. I would like to output tracker data on DescentValhalla.com for all Descent's, not just D3. I'm looking forward to hearing what the next steps are for me. If this thread has run its course, I'd love to continue the dialog in email, Diedel. If that's okay with you. Let me know.

Re: The DBB needs your help ....

Posted: Thu Mar 10, 2011 8:50 pm
by Jeff250
OK, the new competition mode tag seems good.

I don't think we need a DTD schema. I'd rather not over-engineer this.

Re: The DBB needs your help ....

Posted: Fri Mar 11, 2011 3:32 am
by karx11erx
fliptw wrote:I Do you intend to have actual game clients make use of the XML information provided by the server?
Nope. The game clients already have their game info communication setup. This is solely for allowing external services (like a website) display information about what Descent 1/2 games are going on and how they are setup.

Jeff,

I have renamed the "Program" tag to "Agent" and turned the CompetitionMode tag into the attribute "Extensions" there (which may sound more meaningful to people without detailled knowledge of D2X-XL):

<Agent Name="D2X-XL" Version="1.15.149" Extensions={"none" | "basic" | "critical"} />

none: No extensions enabled
basic: Some extensions are enabled that aren't gameplay critical
critical: Gameplay critical extensions are enabled

I'd like to hear your plan regarding the detailled extensions info e.g. D2X-XL supplies. If you don't want to support that (e.g. by popping the info up when a user clicks on the related line in the server display) and just use the Extensions property, I could as well omit it.

Re: The DBB needs your help ....

Posted: Fri Mar 11, 2011 3:56 am
by Jeff250
karx11erx wrote:I'd like to hear your plan regarding the detailled extensions info e.g. D2X-XL supplies. If you don't want to support that (e.g. by popping the info up when a user clicks on the related line in the server display) and just use the Extensions property, I could as well omit it.
I just plan on supporting the Extensions property. Popping into XL seems like the best way to get the low level XL details, especially since they'll probably be changing with time. I think the main utility of this tracker service on the DBB.net will just be to advertise when people are playing games. If people want a robust game inspection tool, then there is already XL for that.

Re: The DBB needs your help ....

Posted: Fri Mar 11, 2011 4:12 am
by karx11erx
Umm ... I have changed the spec a little more.


The program specific areas are gone (<D2X-XL>, <DXX-Rebirth>) and have replaced by a general "Extensions" area:

Code: Select all

<GameInfo>
  <Server Name="name" Version="version" Extensions={"none" | "basic" | "critical"} />
  <Descent>
  ...
  </Descent>
  <Extensions>
    <Extension1
      Property1={"0" | "1" | "disabled" | "enabled"}
      Property2={"0" | "1" | "disabled" | "enabled"} />
      ...
  </Extensions>
</GameInfo>
This seems to make the most sense to me (and is quite similar to flip's idea - I wouldn't want to list extensions inside an area tagged "Server" though, since the relation here imo isn't strong enough).

If everybody agrees on providing only basic extensions info I would however completely omit the Extensions area.

Edit:

I have changed the Host tag and have changed the difficulty from a tag to an attribute of the mission tag.

Re: The DBB needs your help ....

Posted: Fri Mar 11, 2011 11:13 am
by fliptw
if its only meant for web services, then we don't need to enumerate the property values.

We also could transmit the extension info as a separate request.

Re: The DBB needs your help ....

Posted: Fri Mar 11, 2011 11:33 am
by Sirius
More information on extensions could be useful if you don't have the opportunity to check out more game information later on - e.g. if it becomes possible to join a D2 netgame directly from the tracker feed in the way you can with D3.

Re: The DBB needs your help ....

Posted: Fri Mar 11, 2011 11:57 am
by karx11erx
No separate requests please. D2X-XL game clients will always be able to see any D2X-XL specific game info extensions.

Here's the current spec: http://www.descent2.de/d2x-tracker.html#xml

Re: The DBB needs your help ....

Posted: Fri Mar 11, 2011 11:32 pm
by Sirius
For what little it matters, that looks good to me. :)

Re: The DBB needs your help ....

Posted: Mon Mar 21, 2011 3:04 pm
by snoopy
Looks like you guys got some functionality up. Looks good!

Re: The DBB needs your help ....

Posted: Mon Mar 21, 2011 3:41 pm
by Jeff250
Agreed, although that's the D3 tracker which is independent of this effort. ;) I believe that was thanks to Koolbear and Ryujin.

However, you can see our beta demo of the XL tracker here (with some site-specific customizations by Diedel):
http://www.descent2.de/trackers.html, then click on active servers

I believe that Koolbear is still working on getting it integrated with the phpBB, and then we'll likely want to make a few changes yet. There are some known issues as well.

At some point, I'll be publishing the php code when everything has settled.

Re: The DBB needs your help ....

Posted: Wed Mar 30, 2011 4:04 pm
by KoolBear
This is released! You can see it on the main page of the DBB Classic theme, I will be adding it to the other themes this weekend. The code is available to anyone that wants it in order to setup a tracker on their site!

Jeff250 and Diedel have done a wonderful job on this project! Ryujin provided some great feedback during testing along with tons of valuable input from the community.

Jeff250 is working on implementing phase two which will launch D2X-XL for you similar to the way DescentValhalla is currently doing. Look for this improvement in the coming weeks!

Re: The DBB needs your help ....

Posted: Wed Mar 30, 2011 4:09 pm
by Foil
Excellent work, guys. I think this is the first time a D3 tracker and D1/D2 tracker have been seen in the same place. Awesome.