Announcement

Collapse
No announcement yet.

MULTIPLAYER (ver1.0): Hosted by tfs99 & DanS

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

  • MULTIPLAYER (ver1.0): Hosted by tfs99 & DanS

    Reposting the posts from the last thread for consistency.

    ----------
    tfs99
    ----------
    This CivIII discussion and list of suggestions began under DanS's thread: "CIV III must be built multi-player from the start"

    Click here to read it: apolyton.net/forums/Forum6/HTML/000508.html

    In short, I say "Absolutely!" Please post further comments and suggestions regarding multiplayer issues here.

    SMC3 n ... Ted S.

    [EOP]

    ----------
    DanS
    ----------

    To kick things off:

    1) Compress game-state files -- originated by tfs99 (good idea) in the other thread.

    2) Have a Civ 3 server that is hooked to a high-speed connection on the internet (we're talking T3 here). It need not be graphical in nature and therefore would not require high bandwidth (i.e., it would not cost Firaxis or Hasbro a boat-load of $$$). Dial-up accounts seem to have a hard time allotting bandwidth among multiple threads.

    3) Please program the server in *nix and WinNT flavors, so Firaxis and Hasbro won't have to host everything.

    4) A fault-tolerant communication engine to reduce connection cut-offs. Especially important for people playing on different networks (e.g., two European and two American players--we always had this problem with The Strategist; an honorable player, but he would get cut off once or twice in a day-long session).

    5) Hybrid network/internet games. Some players on a local network, some on the internet.

    6) Have an option to send game-state info in large packets. Again, for players in different parts of the world. I hate it when everybody waits for a 5 byte packet to go
    through the global connections. If there is one snag, you have to wait.

    7) Asynchronous play at the beginning. Have the server predict what can happen in the
    next couple of turns, thereby allowing one player to be a couple of turns ahead of another, without either having to wait. It is hard to get through the first couple of thousand years, because most people hit the return key 9/10 turns, but then have long turns the other 1/10. Everybody has to wait for the one, so if you have 5 players, you will (very roughly) be waiting half the time.

    8) Duplicate packets going to the same internet destination. Sometimes some "replies" come faster than others, due to different routing. Send out a couple, rather than one. Have both client and server have ways of handling this. Not recommended for the 56k hosters.

    9) Have an option to reduce the number and size of packets when a <= 56k hoster is running the show.

    10) Only send partial game-state information whenever possible to reduce bandwidth; combine game-state changes in a single thread.

    11) Make the engine more predictive (i.e., smart). Make it able to predict, for instance, where the action is going to take place, and where the updates are going to need to occur. Substitute smart processing for large bandwidth needs. The communications always break down. Windows only crashes once a month (for me, at least).

    C'mon guys, let's think order of magnitude improvements!

    [EOP]

    ----------
    tfs99
    ----------

    Delta Status Transmission: Great idea.

    Token Ring Data Transmission: Another idea I had would be to have data travel around a "ring" of systems ala IBM's Token Ring Network. That is, systems would extract information from an incoming "token" filled with data directed to them from upstream. It would then create a new token, eliminating information that has been accessed by all other systems and appending any new outgoing information. This new token would be transmitted to the next computer downstream. And so on around the ring.

    Data would be constantly streaming into and out of every system. This way, data throughput would be maximized for the system as a whole.

    The burden to receive and transmit data would be spread around the ring, rather than placed on the shoulders of only one computer. Albeit, throughput would be limited to the speed of the slowest connection, but it would not be limited to the rate of a slow host connection divided by the number of players.

    SMC3 n ... Ted S.

    [EOP]

    ----------
    tfs99
    ----------

    Password protection:

    Allow the assigning of an overall master password for a multiplayer game. Access to the master password would allow:

    1) Reassignment or elimination of passwords for any player in the game.

    2) Conversion of any human player to AI control or vice versa

    3) Activation of the Scenario Editor to modify the map, scenario, settings, etc. to fix glitches in MP games that have already started

    4) Activating the Scenario Editor would also allow the evaluation of positions during tournament play if a game was not completed in the time alloted

    [EOP]

    ----------
    tfs99
    ----------

    Play-by-e-mail:

    Provide a means for entering e-mail addresses for each player in a PBEM game. Also provide a way to specify an outgoing mail server, account and password. If PBEMs are conducted in a round robin manner (ala SMAC), this would allow the computer to compress the .SAV file, generate an e-mail message and post it to the mail server all in one click.

    Right now the process to pass along an e-mail turn is cumbersome and error prone. Streamlining the process would increase turn throughput and encourage more people to give PBEM a try.

    [EOP]
    I came upon a barroom full of bad Salon pictures in which men with hats on the backs of their heads were wolfing food from a counter. It was the institution of the "free lunch" I had struck. You paid for a drink and got as much as you wanted to eat. For something less than a rupee a day a man can feed himself sumptuously in San Francisco, even though he be a bankrupt. Remember this if ever you are stranded in these parts. ~ Rudyard Kipling, 1891

  • #2
    Hey that PBEM suggestion is really good. Just run it through your dial-up account SMTP. On the other end, make it so that if someone has a good mail client (i.e., nothing like hotmail), you could automatically launch the game file from the e-mail program. Just associate a .c3s file or something to it. Automation allows for focus on the important things.

    1) Game status on PBEM has to be explicit always. Please include an e-mail server just like the server mentioned above. This would even be easier to provide than the real-time server, though. Make this optional (i.e., you would have to register the game), but allow everybody in the game to check the status on a game. If the server receives no information on a game that is "registered" with the server, it sends out a message saying "the server hasn't received any turns in x days."
    I came upon a barroom full of bad Salon pictures in which men with hats on the backs of their heads were wolfing food from a counter. It was the institution of the "free lunch" I had struck. You paid for a drink and got as much as you wanted to eat. For something less than a rupee a day a man can feed himself sumptuously in San Francisco, even though he be a bankrupt. Remember this if ever you are stranded in these parts. ~ Rudyard Kipling, 1891

    Comment


    • #3
      Cross-posting over from the other forum, so it doesn't get lost in the transition . . .

      I've seen a bunch of people talk about making CivIII (or at least parts of it) open source. While I don't really think that's a great idea, I think it would be pretty good if Firaxis could use a Mozilla-type model for open development. Say there's a certain component of CivIII that could be developed without having access to the main game engine (a tech tree viewer, or a spherical map system, that sort of thing). Maybe Firaxis could get people to develop those components for them, or at least make a rough library that could be compiled into the main game for their use. Might save time and overhead on Firaxis' part, if we were willing to do it, and they wouldn't have to open the entire game's code, so they wouldn't be giving away the store . . .
      "In the beginning was the Word. Then came the ******* word processor." -Dan Simmons, Hyperion

      Comment


      • #4
        Just to clarify, I do like the idea of opening the server, just not the core engine.
        "In the beginning was the Word. Then came the ******* word processor." -Dan Simmons, Hyperion

        Comment


        • #5
          I think the decision to go to a token system would depend on how we want multiplayer games to be set up. If you're just connecting a bunch of machines together and picking one as the arbitrary host, it would work pretty well. But if you want to set up a server that everyone logs in to, I think it would defeat the point of having a single high-speed connection.
          "In the beginning was the Word. Then came the ******* word processor." -Dan Simmons, Hyperion

          Comment


          • #6
            I think an open source server is especially important because (1) as you state, it's not the core game engine (although we are going to be pushing a heavy integration of the two), and (2) server technology is not the core competency of Firaxis or Hasbro and could use "peer review."
            I came upon a barroom full of bad Salon pictures in which men with hats on the backs of their heads were wolfing food from a counter. It was the institution of the "free lunch" I had struck. You paid for a drink and got as much as you wanted to eat. For something less than a rupee a day a man can feed himself sumptuously in San Francisco, even though he be a bankrupt. Remember this if ever you are stranded in these parts. ~ Rudyard Kipling, 1891

            Comment


            • #7
              I am not sure I understand what kind of server you are talking about. Anyway, I actually thought about writing a small utility in java to streamline the PBEM process in SMAC. Here are my design ideas, with the assumption that it'll be incorpated into the game.

              Initial setup:

              Everyone who is planning to host PBEM need to enter information for the outgoing (SMTP) mail server, server name, user name etc.

              When the host is starting a new game, she will see a dialog box asking her the following:

              * a unique name for the game
              This is used in the save file name and subject line in the emails.

              * each player's name, email, alias and faction, also the order in which they play
              The host probably should always be the first one to play.

              When the information is entered, it is saved in a file, probably the save file itself.

              When the player finishes a turn, the program automatically saves it in the save directory with a file name

              gamename_turn#_nextplayer.sav

              then it'll zip it up, connect to the SMTP server to send the file to the next player, with a subject line like

              Big Challenge Turn 12 File

              and also a message to the whole group with a subject

              Big Challenge Turn 12 Sent to Foo

              Of course, this is all done automatically when you hit the "Turn Complete" button.

              This shouldn't be too hard to implement, but it'd save PBEM players lots of trouble.
              The radical invents the views. When he has worn them out the conservative adopts them.
              - Mark Twain

              Comment


              • #8
                Rong: I think that's kind of similar to what they were talking about. Here's the image I got of how it would work from reading this thread. Everyone's game setup includes their SMTP, email address, and name. When you want to start a PBEM game, you connect to a server (should the front end be in the game, or a web site?) that acts as a host for the game. It stores the email addresses of all the participants, as well as the game turn and play order. When you hit the 'turn complete' button, the game zips the savegame and mails it to the server. The server then updates its info on the game and sends the file off to the next player. (Alternative I just thought of: Instead of using email to send the files, just use email to notify the players that the next turn is ready. That player fires up CivIII, hits 'Resume PBEM game,' and CivIII connects to the server and downloads the new savegame. This keeps people from having a large file mailed to them, and avoids the hassle of binary-ascii conversion and mail clients and such. Instead of PBEM, it's an on-demand file transfer. I think this might be a more efficient implementation, and would also insulate the player from the process [*cough* User error *cough*]) Lather, rinse, repeat as necessary.

                The point of going to the extra trouble of using a server is reliability. That way, you can be sure that the game has been correctly passed, and you know for sure who has it and who should get it next. Also, it would insulate the players from each other somewhat, so it isn't necessary to give out email addresses and that sort of stuff.
                "In the beginning was the Word. Then came the ******* word processor." -Dan Simmons, Hyperion

                Comment


                • #9
                  Bell, that's a good point. If you have an option to either receive the game file in your e-mail or to retrieve it using http, you need not have an smtp account to be able to participate and those playing through firewalls will have fewer problems.
                  I came upon a barroom full of bad Salon pictures in which men with hats on the backs of their heads were wolfing food from a counter. It was the institution of the "free lunch" I had struck. You paid for a drink and got as much as you wanted to eat. For something less than a rupee a day a man can feed himself sumptuously in San Francisco, even though he be a bankrupt. Remember this if ever you are stranded in these parts. ~ Rudyard Kipling, 1891

                  Comment


                  • #10
                    I agree the idea of having dedicated servers as an assist for direct MP and PBEM is appealing.

                    I would caution everyone that we should be thinking along many lines here:

                    1) Direct MP with dedicated CivIII host servers

                    2) Direct MP System-to-System only

                    3) PBEM with dedicated CivIII PBEM host servers

                    4) PBEM with plain old PC and SMTP accounts

                    Not to be a pessimist, but Firaxis has shown a lackluster approach to MP in the past. This means we need to be realistically thinking about incremental improvements as well as "giant leaps" forward.

                    Another thing to consider is the possibility of convincing Firaxis to publish direct MP and PBEM "hooks" for the game system. Similar to an "open source" AI, having a well defined protocol might allow the fan base to work on dedicated server technology, freeing Firaxis to work on the MP engine itself.

                    SMC3 n ... Ted S.

                    Comment


                    • #11
                      Re: Round Robin PBEM

                      Along with compressing and mailing the .SAV (.c3s) file to next PBEM player, have the system automatically generate and mail a subject only turn completion message to all players involved in that particular game.

                      Of course a central server would make this nicer.

                      Comment


                      • #12
                        Make the game have a special option for ultra fast hosts. When the host is settig up the game, he should be to tell it that he is a T1, T3, or cable modem host and the game should be optimized in the data transfers to account for the fast host.

                        Possibility
                        May the possibilities remain infinite.

                        Comment


                        • #13
                          Ted:
                          I disagree with the "turn sent to all players" messaging idea. The reason I started those "turn sent" threads is to lighten the load on my in-box (5 games with 4 players each, 1 turn per day means 15 useless messages every day, plus 5 with the save game).

                          I think it's better to have a central server or list of some kind that keeps track of the current (= last known) location of the saved game.

                          -------

                          Now, a suggestion for MP (This may also be relevant in general gameplay). A situation arose in a PBEM game where I have a Pact with MoSe, and our territories are so close together that we have to worry a lot about borders to avoid eating up each other's territory (and ressources).

                          It would be nice to have an option for flexible borders between pact brothers. What I would like, ideally, is the ability to set the frontier manually after reaching an agreement (as opposed to the current SMAC algorithm that splits the land more or less evenly between cities, depending on proximity)

                          Aredhran


                          [This message has been edited by Aredhran (edited May 21, 1999).]

                          Comment


                          • #14
                            Aredhran: you might be on to something with borders that each player sets, etc., because in "real" life, there are so many disputes because of borders.

                            Could you flesh this idea out? Could you address how you could make this kind of thing easy to maintain (i.e., a minimum of micromanagement)? Thanks.
                            I came upon a barroom full of bad Salon pictures in which men with hats on the backs of their heads were wolfing food from a counter. It was the institution of the "free lunch" I had struck. You paid for a drink and got as much as you wanted to eat. For something less than a rupee a day a man can feed himself sumptuously in San Francisco, even though he be a bankrupt. Remember this if ever you are stranded in these parts. ~ Rudyard Kipling, 1891

                            Comment


                            • #15
                              Also, could a PBEMer check out www.pbem.com and see if there is anything of interest there?
                              I came upon a barroom full of bad Salon pictures in which men with hats on the backs of their heads were wolfing food from a counter. It was the institution of the "free lunch" I had struck. You paid for a drink and got as much as you wanted to eat. For something less than a rupee a day a man can feed himself sumptuously in San Francisco, even though he be a bankrupt. Remember this if ever you are stranded in these parts. ~ Rudyard Kipling, 1891

                              Comment

                              Working...
                              X