Announcement

Collapse
No announcement yet.

Scripting language

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

  • #16
    I agree with you that we can't have it comparing the core code as that would be almost dumb.
    Thanx. It was just a suggestion from someone who has never programmed an online game before.

    And as I said, cheating should of course be discouraged. In any form. I never cheat myself. It ruins the game for me. What I meant was, that if a group of people that want to play the game with a mod, and there is a good way to make sure those people can only play against people using the same mod, then it should be possible.
    Michiel Helvensteijn
    --
    SPDT Member: Helpmate

    Comment


    • #17
      In general, I think we need to think hard about how we are going to deal with multiplayer and mods.

      On the one hand, as I understand our position, we don't want to discourage modding in general. Hence the whole discussion of scripting (well, scripting would also be of great help for scenario designers, but that is beside the point of this post). Now, if we want to allow people to modify their game, we need to decide how to combine that with multiplayer. If the files we distribute are digitally signed, then any change to them would render the game useless for multiplayer. (Is that right? I am not quite sure how the digital signature is supposed to work...) If that is the case, then we are essentially saying that the user has a choice: either to have two installations of the game (one, modded, for sp, the other - unmodded, for mp), or avoid modding the game at all (meaning the source code.) Neither of these sounds particularly attractive. Keeping that in mind, I don't really see the point of keeping the game open source. Since we won't allow the players to mod the game if they want to play mp, why give them tghe code in the first place? (Well, that's not entirely true, actually. They can still choose to play sp only and then would have the ability to play around with the code. Alternatively, if a person finds a bug and is able to fix it, they could send us the code snippet, we would incorporate it into the main core, sign it digitally, and publish. In the true spirit of open source.) Secondly, that would mean that we have to have a scripting language for the people who want to mod the game and still play MP.

      On the other hand, I could be wrong in my assumption that the digital signature is destroyed / rendered useless when the code is modified. In that case, I don't really see how it works. Please enlighten me.
      XBox Live: VovanSim
      xbox.com (login required)
      Halo 3 Service Record (I fail at FPS...)
      Spore page

      Comment


      • #18
        Actually, I don't exactly know how the signature works either. But assuming that it's a switch that is turned off when the code is modified, I suggest 2 types of online games. Or you play modded (only against other people that play modded) or you don't, and can only play against other people that use the original source. People that use the original source CAN mod their game from any point in the game, but modded games can't change back. SP can be played however you want, off course.

        And about online modded gaming, I suppose you'll just have to trust the other players use the same mod as you do. Short of comparing the player's entire mod-code I see no alternative.
        Michiel Helvensteijn
        --
        SPDT Member: Helpmate

        Comment


        • #19
          Originally posted by Michiel
          And about online modded gaming, I suppose you'll just have to trust the other players use the same mod as you do.
          Yes, the idea to have two types of mp games might be a good one. Something else we could do is label certain mods as "Approved by the StP Development Team", which would basically mean that if someone comes up with a particularly successful and popular mod, we could (if the author wants) inspect it to see if there are any hidden cheat backdoors, and if we don't find any, we could label it with a digital signature as well, and distribute it. Then, on the matchmaking screen, you could see if your opponents have an unmodded version, a version modified by a "third party", or a version that is modified by an approved mod, in which case you can also see which mod it is. I think that could also help in mp.

          On the other hand, it seems a little complicated to say the least. Given our ambitions about the rest of the game, I am not quite sure how much of security we want to build in, and how much to leave to the players to weed out the cheaters by themselves...
          XBox Live: VovanSim
          xbox.com (login required)
          Halo 3 Service Record (I fail at FPS...)
          Spore page

          Comment


          • #20
            Originally posted by vovansim
            On the other hand, it seems a little complicated to say the least. Given our ambitions about the rest of the game, I am not quite sure how much of security we want to build in, and how much to leave to the players to weed out the cheaters by themselves...
            Well, in at least one online game I play (diablo 2) cheating causes a lot of frustration amongst players. From PKing to hacking/duping/etc. I think we should make this game as cheat-proof as possible. Off course, we can't stop the motivated hacker from cheating, but I hope it can be prevented a much as possible.

            I think your idea about the signature for approved mods is a good idea, worth exploring. But would that ban all 'not approved' mods from the internet?
            Michiel Helvensteijn
            --
            SPDT Member: Helpmate

            Comment


            • #21
              Originally posted by Michiel
              Well, in at least one online game I play (diablo 2) cheating causes a lot of frustration amongst players.
              It seems to me that all Blizzard games are plagued by cheating. I used to play Warcraft III MP a lot...

              Originally posted by Michiel
              I think your idea about the signature for approved mods is a good idea, worth exploring. But would that ban all 'not approved' mods from the internet?
              No, I was thinking more along the lines of combining this idea with yours: the rule still applies - players with modded games can play with other players with modded games. Only now they can see if their opponents' games are modded with an approved mod or not. In the latter case, they can still play, but they will realise that they are under a greater risk of being cheated against.
              XBox Live: VovanSim
              xbox.com (login required)
              Halo 3 Service Record (I fail at FPS...)
              Spore page

              Comment


              • #22
                Hmm, color me ignorant but I don't see the problem of cheating... the host resolves all the game turns, right? So, if one of the clients tries to cheat with a script allowing him to build 10 units instead of 1 (for example), won't the server notice that this is against the rules and discard the orders? On the other hand, if the host wants to cheat, there's really nothing that can be done: in the extreme case, the host could disable all signature checks and recompile the code, and then forfeit a "yup, I'm legit" message to the clients.

                So, to avoid cheating I think the key is to make the rules such that they can be validated on server side. Period.

                Comment


                • #23
                  Leland is correct, all that is required is for the server to not blindly follow orders from clients. Easier said than done ofcourse, but given time the exploits should be eliminated.
                  Another effective way of reducing the possibility for cheating is to only send clients information on a "need to know" basis, iow if there is a fleet outside of the "fog of war" the client cant know about it, meaning a map hack would not do anything.

                  Server side cheating cannot be prevented, altough it should be possible to verify that a server is running good rules....

                  Comment


                  • #24
                    I agree. Info on a need to know basis. It might slow down the game a bit, but I think it's needed in a game like this one.

                    But what about mods? Not blindly following orders from clients, OK. But there should be a mod-system. Maybe like the one Vovansim suggested in his last post.
                    Michiel Helvensteijn
                    --
                    SPDT Member: Helpmate

                    Comment


                    • #25
                      Well, wouldn't all the clients need the same version of the game? So if one guy had a mod, in order to play with others the mod would have to be downloaded to the other clients. That would negate any "advantage" he might have. And scripting isn't cheating, exploiting bugs is cheating. So if a guy had written a mod that started him with tons of money or something like that, it would have to be downloaded by the other players. Am I missing something?

                      Comment


                      • #26
                        Generally yes, altough it breaks down when using minimal information - the host could give himself a heap of credits, and because the (other) clients dont need to know his credits they wont know.

                        Therfore there wont be any desync or other problems.

                        Fortunately automated servers fix such problems, and basically if a player is hosting there can be no real guarantee against that player cheating.

                        Comment


                        • #27
                          Something else we could do is label certain mods as "Approved by the StP Development Team", which would basically mean that if someone comes up with a particularly successful and popular mod, we could (if the author wants) inspect it to see if there are any hidden cheat backdoors, and if we don't find any, we could label it with a digital signature as well, and distribute it.


                          IMO that suggestion sounds good and quite working. At least it would mean people would know it's a reliable and working code that shouldn't run any arbitary code.
                          "Kids, don't listen to uncle Solver unless you want your parents to spank you." - Solver

                          Comment


                          • #28
                            Yes it's good, but how do you implement it? Will you check all the binaries (and for all platforms...) during server startup?

                            Comment


                            • #29
                              Solution

                              The things that can be scripted are:
                              1.Games Constants (food/pop,labor/pop,....)
                              2.AI behaviour (if(Reliability.Player[x] < y) then Player_Liar() or similar)

                              How to save both the open-source both the correct gaming?
                              Simple, we must have 2 script files:
                              one "official", the other "personal"

                              Script sended from Server
                              When client is connetted to the server uses "official" script flie, that can be modified only by SPDT, when the player has SP gaming session uses his own "personal" script file.
                              So, the players can realize his own Mods without cheating in MP.
                              The people will also Debugging or Modding and cooperate with us to have a better MP experience.

                              Script on HD, but codified
                              If the things that must scripted are too much to be sended is possible to have the "official" file encripted on client HD and the key is sended by the server to the client only during MP games. In SP sessions the game will use a readable script on local disk.
                              I think that Blake will be able to code a simple crittography algorithm... don't you?

                              It's all clear?
                              Aslo the gods are impotent against men's stupidity --Frederich Shiller
                              In my vocabulary the word "Impossible" doesn't exist --Napoleon
                              Stella Polaris Development Team -> Senior Code Writer (pro tempore) & Designer

                              Comment


                              • #30
                                Let me disagree with you Vultur,
                                i think that we don't need all this.
                                As i see it we will have:
                                a) server with extensive scripting for AI and other stuff. It's a matter of player to trust server hoster (but some signature will be useful though)
                                b) client with some scripting (maybe some parts of AI such as for governor behaviour and some graphic effects or such), but all the scripts will deal with limitations wich are true for the player (excludes cheating)

                                Comment

                                Working...
                                X