Announcement

Collapse
No announcement yet.

Multi-Mod Server

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Multi-Mod Server

    This just got a lot closer to happening.

    I did some experimentation in modifying ProQuake server and looks like that in conjunction to adding some predefined "vote-mod" QuakeC code to a mod, that servers will be able to setup in the very near future to be able to several user selectable mods.

    So a server in Chicago or Texas or Belgium could be multi-functional and no more silly adding extra ports for mods that don't played.

    This will increase the value to someone who pays for a server, increase the flexibilities for players.

    The mods that can be supported either have to be open source (otherwise they can't be modified to support the "vote-mod" QuakeC) or have to be actively developed (CAx, CTF 3.x, etc.)

    So an example of a mod that wouldn't be able to run in conjunction with this would be CRMOD, however this is a nearly identical replacement mod available.

    I'm thinking about doing a small test with Slide, maybe Team Fortress 2.5, original Rocket Arena (just for simplicity reasons) and maybe something else to work out the quirks before ramping it up.

    Probably Phase 2 of this:

    Rook's http/curl auto-download appears to work nearly flawlessly. I'm thinking one thing that would give server operators independence and avoid some centralized solution that I believe wouldn't work, is to follow the DarkPlaces model where a server can give the client the preferred download location.

    Probably something like this:

    curl is a multi-platform download library for on Windows/Linux/Mac OS X and is just a open source .dll file. I think it maybe included by default on OS X.

    * cl_downloadbegin

    Would be sent to client by server after it gives the client all the information on where the download is maintained, IF the server is supporting that.

    *cl_http_download

    Set to 0 if you don't want your client to be downloading stuff. Would need to be forced to 0 if the curl.dll isn't found.
    * sv_curl

    0 = default = the server doesn't have any info for this or doesn't need d/l
    1 = the server has download information specified
    * cl_curl_default_url

    I'm thinking this should be where to get maps from IF the server is running something old and doesn't support any of this.

    It would default to some fairly comprehensive central location, like maybe a value of "http://www.quakeone.com/maps/http" or something.
    * sv_curl_url

    Server operator specified place to download stuff. If the client tries the download from there and it fails, it would default to cl_curl_default_url.
    *sv_nomap_disconnect
    *sv_nomap_disconnect_url

    0 = default = nothing
    1 = if a player doesn't have the map AND doesn't have an auto-download client, the server will disconnect them with a message of either where to get the maps or where to get an upgraded Quake. Makes it easier on players connecting and makes it easier on players playing.

    [Some people don't read and this would prevent game interruption because nothing else would be seen on their screen except where to get the maps or where to get a client with download.].

    sv_nomap_disconnect_url = a custom specified url place where the download should be.
    Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.

    So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...

  • #2
    Cool!

    At first reading of this thread, I was thinking you had modified the gamedir code to work server-side; reloading the map and precaching all the required files and progs.dat. This would send the list of required files to the client. Currently, if the client doesnt have those files and cl_webdownload 1 is set then it will try to grab the files from cl_webdownload_url. A proper way might be to use an SVC_SET_DOWNLOAD_URL or even a stufftext to alter "cl_webdownload_url" per server, and a fallback to the cl_webdownload_url_default possibly.

    Hmm, issues though come to mind, for instance, overlapping map names or filenames. So, for example, if my gamedir is /id1 and I connect to a server that switches to "SLIDE MOD", I dont have a "/SLIDE" folder, so all the custom files I might HAVE to download would be put in my /id1 folder. So if SLIDE (or any mod for example) had a START.bsp it would conflict with my current Quake setup (Qrack won't overwrite files that are currently installed). There would have to be precautions established and the ability to safely create the MOD's game directory if not present. I'm pretty sure this is how Quake3, and HALFLIFE2 etc handle servers with custom mods.
    __________
    EDIT:

    Code:
    				//determine the proper folder and create it, the OS will ignore if already exsists
    				COM_GetFolder(model_precache[i],folder);// "progs/","maps/"
    				Q_snprintfz (name, sizeof(name), "%s/%s", com_gamedir, folder);
    				Sys_mkdir (name);
    looking back at the code it will add the files to the current "gamedir", so in conjunction with the server telling the client what URL to get the files from, it also needs to set the GAMEDIR so the files will be placed properly. I dont think I've had enough coffee yet this morning
    Last edited by R00k; 11-26-2008, 08:57 AM.
    www.quakeone.com/qrack | www.quakeone.com/cax| http://en.twitch.tv/sputnikutah

    Comment


    • #3
      Originally posted by R00k View Post
      Cool!

      At first reading of this thread, I was thinking you had modified the gamedir code to work server-side; reloading the map and precaching all the required files and progs.dat. This would send the list of required files to the client. Currently, if the client doesnt have those files and cl_webdownload 1 is set then it will try to grab the files from cl_webdownload_url. A proper way might be to use an SVC_SET_DOWNLOAD_URL or even a stufftext to alter "cl_webdownload_url" per server, and a fallback to the cl_webdownload_url_default possibly.

      Hmm, issues though come to mind, for instance, overlapping map names or filenames. So, for example, if my gamedir is /id1 and I connect to a server that switches to "SLIDE MOD", I dont have a "/SLIDE" folder, so all the custom files I might HAVE to download would be put in my /id1 folder. So if SLIDE (or any mod for example) had a START.bsp it would conflict with my current Quake setup (Qrack won't overwrite files that are currently installed). There would have to be precautions established and the ability to safely create the MOD's game directory if not present. I'm pretty sure this is how Quake3, and HALFLIFE2 etc handle servers with custom mods.
      __________
      EDIT:

      Code:
      				//determine the proper folder and create it, the OS will ignore if already exsists
      				COM_GetFolder(model_precache[i],folder);// "progs/","maps/"
      				Q_snprintfz (name, sizeof(name), "%s/%s", com_gamedir, folder);
      				Sys_mkdir (name);
      looking back at the code it will add the files to the current "gamedir", so in conjunction with the server telling the client what URL to get the files from, it also needs to set the GAMEDIR so the files will be placed properly. I dont think I've had enough coffee yet this morning
      I'll be doing my stuff slowly and surely and private messaging you every step of the way.

      The NQ Team Fortress I made doesn't require gamedir Nor does Yeller No. 5's Threewave pak. Slide doesn't need gamedir, the "start" map is called slstart.bsp and has no model overlap. Even AirQuake doesn't require gamedir (no map or model overlap).

      I've got the bases covered with that stuff. ^^

      Determining a standard implementation that is "proper" .. well, we'll figure it out. I want to try to keep it in the forums as much as possible because of interested parties like Polarite, Peg, ORL, Mr. Burns or whoever else runs servers so they can see the idea for commentary (or for objections!)

      /I'd like to try to keep it DarkPlaces compatible too ... if possible.

      I didn't include gamedir in this because -- although maybe I should have -- because I don't want to exclude non-gamedir supporting client like ProQuake 3.50 users or someone who likes what they are using.

      Yeah, they'd have to manually install because they wouldn't have download, but not everyone is ideal for client download (*cough* Bam /*cough).
      Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.

      So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...

      Comment

      Working...
      X