Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Server list question

Hello
How can I get a list of servers and detailed information about servers without running the Doomsday Engine program? Is there request/response protocol of servers anywhere?

Comments

  • There is the master server JSON API. You can request a list of servers with: http://api.dengine.net/1/master_server?op=list

    Most of the fields should be self-explanatory, except for these:
    • "__obj__" is for Doomsday's internal use.
    • "dom" is the domain name (optionally provided).
    • "sid" is the unique server ID (randomly generated at server launch).
    • "cver" is the network protocol compatibility version.
    • "pnum"/"pmax" is the current and maximum number of players.
    • "flags" is 1 if the server is open for players to join.
  • thanks)
    what about server ping - how can i get it?
  • Unfortunately there is currently no simple to way to contact a server a find out the ping. The master server does not provide that information.

    The Doomsday server has a TCP socket interface that you can contact for requesting server status info (and to join the game), but the ping calculation itself is built into the client. The network protocol is a bit complicated, though. Briefly, you'd have to construct a Huffman-coded message containing the string "Ping?", and the server would send you back a similar packet with the string "Pong".
  • I am trying to include Doomsday in a multiplayer launcher (OS Windows) and discovered several problems using wads:
    • it is very difficult to convert the names of the loaded wads sent by the server (info) to the initial ones - it is not clear how to extract the name of the wad
    • sometimes wad names are distorted, for example, '_' is replaced by '-', and if the name ends with '_' and a digit (test_0.wad, test_1.wad) - these characters disappear altogether
    • server does not check wads loaded by client at all — you can load anything, for example:
      server: doomsday-server.exe -game doom2 -file dwango5.wad
      client: doomsday.exe -game doom2 -file dwango6.wad -connect localhost
      client connects to the server without problems
    • in Doomsday UI, the “versions” of wads are compared, which, as I understand it, are formed from the file's date/time - that is, files that are the same except for the date are considered different and the client downloads the wad from the server - and does this every time with subsequent connections, that is does not remember where it uploaded wad
      (by the way, the filename like test_1.wad is converted to file.pwad.test_1.0.0 in serverinfo)

    It seems to me that the existing protocol for the exchange of information is not very convenient for independent launchers, since requires significant transformations and analysis
    Is it possible to create an additional server-launcher protocol with more transparent rules (we could discuss the details)?

    And one more wish: possibility to immediately open the server console after the start server from command line (may be open Doomsday Shell.exe from server command line?)
  • bond wrote: »
    It seems to me that the existing protocol for the exchange of information is not very convenient for independent launchers, since requires significant transformations and analysis
    Is it possible to create an additional server-launcher protocol with more transparent rules (we could discuss the details)?
    Why are you trying to load WADs as files in this case? Since the server is giving you a specific package ID that the client needs to load, you should use the -pkg option to load the files with the given IDs instead of trying to guess the file names, which are not provided by the server. This way the client and the server have some level of assurance that the same versions of the files are in use on both sides.
    And one more wish: possibility to immediately open the server console after the start server from command line (may be open Doomsday Shell.exe from server command line?)
    Would a shell script or a batch file be sufficient for this?
  • skyjake wrote: »
    Why are you trying to load WADs as files in this case? Since the server is giving you a specific package ID that the client needs to load, you should use the -pkg option to load the files with the given IDs instead of trying to guess the file names, which are not provided by the server. This way the client and the server have some level of assurance that the same versions of the files are in use on both sides.
    Well, this only works if I already have such a file in a place known to Doomsday. If not - Doomsday UI is loaded instead of the server. Because i dont know real wad name, i cant search and download wad myself and point Doomsday to proper folder.
    And one more wish: possibility to immediately open the server console after the start server from command line (may be open Doomsday Shell.exe from server command line?)
    Would a shell script or a batch file be sufficient for this?
    Sure, but does Doomsday Shell.exe program take command line parameters (server IP) ? Couldn't find any..
  • Hold on, which version of Doomsday are you using? Starting with version 2.1, clients should be downloading any non-IWAD data files directly from the server without any additional options or switches being required.

    The GUI Shell app doesn't seem to have a command line option for opening a connection... (The text-mode shell does, but I don't think it has been built for Windows.)
  • ver. 2.1.1
    Doomsday.exe md5: 7C97B0FCEE6BF50EDC987FD848D3B87A

    Its easy to check: there is currently server with Alien Vendetta pwad. Rename or hide av.wad temporarily (if you have it) and run from command prompt:
    Doomsday.exe -game doom2 -connect 67.71.111.118:13226 -pkg file.pwad.av_0.2002.1224.2359

    Am I doing something wrong?
Sign In or Register to comment.