[Question] Anyone tried to edit the AI json scripts?

Discussion in 'Mod Discussions' started by infuscoletum, August 25, 2013.

  1. exterminans

    exterminans Post Master General

    Messages:
    1,881
    Likes Received:
    986
    I'm not paranoid, and I'm executing code from other people on a regular base.
    Although there is a limitation: I only execute code from developers I trust. A sandbox or virtualization would provide an additional layer of security, but its rarely worth the effort and it hinders comfort.

    It doesn't really matter how powerful the scripting API is going to be (that is, if there is going to be any), you will have to differentiate between safe mods (which can't contain backdoors since it contains no active components) and unsafe mods.

    First one could be use on official servers without to much hassle, unless you somehow managed to triggered a race condition or endless loop. This is also the only type of mod which should be distributed by the official mod repository.

    Second one can't and you use them on your own risk. The question is, how powerful the second type of mod will be allowed to be, which APIs Uber is going to publish and which languages are going to be allowed.
  2. SXX

    SXX Post Master General

    Messages:
    6,896
    Likes Received:
    1,812
    Security problems might not be fixed by the developers, and if there will be some "safe" mods they also might have malicious code because we talking about game, games are not designed to be secure. In real life programs which work with hardware (GPU) and need high performance might not be secure because security and performance never go together.

    Just check Skyrim (or any TES game), there is tons of mods which use direct memory patching (Script Extender), and hundreds of thousands people playing with them, nobody died yet, none serious security problems occur.

    Actually I just think you overestimates problem which isn't present yet. PA is not yet super popular game and there is no 10000 mods for it. We can just track mods in one forums and trust to developers everyone know. When game will be really popular Uber can start think about mods security, but currently they just need to provide as powerful mod API as they can. I don't want to have cropped modding because of "security".

    There is story (originally in russian, so translation might be not perfect) which I remember while read this topic:
    So I think Uber just need to keep everything basically secure (don't let to leak data though simple ways), but nothing else just not important for now. I'm personally have mixed feelings about any native code, but it's because native code may break cross-platform support or even version to version support. Closed source mods it's actually bad idea. Security it's not a point here.

    PS: I also want to say that I'd like that Uber try to keep everything very open, but I think it's a good idea to handle user auth outside of game and leave in-game login only as option for advanced users.
    Last edited: August 26, 2013
    cola_colin likes this.
  3. exterminans

    exterminans Post Master General

    Messages:
    1,881
    Likes Received:
    986
    Well, but native code (or even anything which exceeds simple javascript) would only be required for a very limited subset of mods.

    The security is unimportant (I just brought the original example to show that asking for a "verification process" won't make it more secure when talking about radical mods), what matters is if Uber is going to open the required APIs at all.

    This type of mod only affects private servers anyway, since Uber is not going to allow ANY type of possibly malicious code on their servers, which renders scripted server side mods irrelevant for official servers and most users.
  4. cola_colin

    cola_colin Moderator Alumni

    Messages:
    12,074
    Likes Received:
    16,221
    I think you underestimate the amount of games that will be played on private servers a lot.
  5. exterminans

    exterminans Post Master General

    Messages:
    1,881
    Likes Received:
    986
    I knew I should have left out the "most users". But it still doesn't change the fact, that security should not be the main concern when it comes to modifying the server.
  6. SXX

    SXX Post Master General

    Messages:
    6,896
    Likes Received:
    1,812
    Uber servers won't have any difference with private servers. After server binaries is released why they should care much about it's security?

    Just few facts:
    • Uber servers won't have any extra information which might be stolen, they will have same connection to master server (which process login info and need to be secure) as our private servers.
    • Uber run game servers on cloud instances, that mean they can spawn instance each time somebody want to play game. E.g they just spawn instance from snapshop, add mods (if any selected) and run game. When game finished instance just shut down, all changes erased completely. Each time you start game it's started on clean operation system.
    • You only might spawn game on Uber server if you buy game, it's mean person who do some bad activity will be just banned.
    • On Linux it's fairly easy to limit executable permissions, you might only allow it to listen exactly one port and only read few folders. So malicious code just won't able to do anything what game server not allowed to do. Even kid can configure such AppArmor/SELinux profile with firewall rules.
      So there just won't be any point to hack hosted servers.
    Why do you think security might be a problem for these game servers?
    Last edited: August 26, 2013
  7. tatsujb

    tatsujb Post Master General

    Messages:
    12,902
    Likes Received:
    5,385
    lesson to draw from this : use linux.
  8. SXX

    SXX Post Master General

    Messages:
    6,896
    Likes Received:
    1,812
    Windows Group Policies are quite powerful too, it's not such flexible as SELinux, but for game servers it's more than enough.
  9. infuscoletum

    infuscoletum Active Member

    Messages:
    606
    Likes Received:
    37
    Wow. This turned into quite the conversation :eek:

    Anyways, from Sorian's twitter:
    src: https://twitter.com/merobbins/status/362647771595026433

    So I imagine that the files in media/pa/ai actually run on the server, and are most likely there for when the server gets given to us for things like single player/hosting our own games with specific mods. As such, I imagine them moddable. As for playing on private servers, as with most things on the net, prolly the safest bets will be playing on your own (on the same comp as the client or not), on one run by your clan (if you have one), or the ubernet ones.

    Personally I'm not actually THAT much in a rush to have the server RIGHT NAO or anything. With the client/game in such an unfinished/unoptimized state, I can only imagine what the server runs like :eek::p I should have added more nudges/winks: ;);););););););););););););););););););););););););););););)
  10. tatsujb

    tatsujb Post Master General

    Messages:
    12,902
    Likes Received:
    5,385
    wow you like the new smylies too damn much xD
  11. exterminans

    exterminans Post Master General

    Messages:
    1,881
    Likes Received:
    986
    Well, at least it means that he is writing the AI in C++, which does leave some hope for being able to do the same.
  12. infuscoletum

    infuscoletum Active Member

    Messages:
    606
    Likes Received:
    37
    On the old forum there was a limit of 10 :( Not now :eek::eek::eek::eek::eek::eek::eek::eek::eek::eek::eek::eek::D
    /calm
  13. exterminans

    exterminans Post Master General

    Messages:
    1,881
    Likes Received:
    986
    We seriously need some feedback concerning server side modding at some point, and not just when the server gets released. Even a "we haven't decided yet, but we are currently favoring this" would be fine.

    Don't care much about the client side stuff, for the stuff I wanna try, I will need to dig into the sim.
  14. thetrophysystem

    thetrophysystem Post Master General

    Messages:
    7,050
    Likes Received:
    2,874
    This is an important question. I know technically with enough backdoor you can rig anything to work. Yet there is the other end of the spectrum where people pretend Terraria is unmoddable because it has no mod API.

    What happens when a person wants to make a really heavy mod? Like, one that gives units damageable segments? Or one that has units that combine into new units? Or ones that add new weapons that require more values like electric-gap-jump distance or duration of lingering damage?

    Is it going to be possible to do so? Even if Uber works on that very last, it is important for them to make tying more features into the engine easy as possible and mods as user friendly as possible.
  15. SXX

    SXX Post Master General

    Messages:
    6,896
    Likes Received:
    1,812
    As long as source code (or at least part of it in SDK) not available there always will be some things you can't change and some mods you can't implement properly. But even if source code (or SDK) is here you still need a good programming skill to implement it.

    But you can always use functions which already built-in in engine to "fake" something like that. E.g you can make 5 units which keep together and looks/works like one unit, so you'll even able to destruct/damage each part independently.
  16. thetrophysystem

    thetrophysystem Post Master General

    Messages:
    7,050
    Likes Received:
    2,874
    It was just an example. But you did give a good example of how things can be faked. Really, you can usually find a way somehow to implement anything. People get really creative at doing the impossible with minecraft mods even if they go about it highly unstably. Yet, other times if there is no easy access to mod things, people will refuse to go the extra mile to pry their creations ingame somehow.
  17. SXX

    SXX Post Master General

    Messages:
    6,896
    Likes Received:
    1,812
    Exactly. You see how many UI improvements we have? I totally sure you never seen such number of UI improvements for any game, even for TES.

    It's only possible because we able to modify 99% of UI in easy manner and only few things hardcoded here. It's same for everything in game. If Uber will open more parts of game/engine for us we'll able to modify game more easily.
  18. thetrophysystem

    thetrophysystem Post Master General

    Messages:
    7,050
    Likes Received:
    2,874
    Honestly, C&C Renegade is a game I am familiar modding. That game had a lot of mods and total conversions, for a shooter not necessarily a rts even. How was that possible? Easy access to every asset that made up the game.

    What did this mean for that game?

    It was very hackable, I like to use the term exploitable since hacks are what idiots call cheats when no hacking is actually involved. Since nearly every check was done client side. If there was no wall textures or models on your client, then when you shot someone through mother earth, that was real damage. If their head is gigantic on your screen, easy headshots because that's what your game will think you shot. If you made the bones.ini believe that every part of the body did 2x more damage than even headshots do, the whole body with do double headshot damage when you shoot it.

    What made the game playable after all was said and done? The designers didn't release them, but players made their own server checking software to comphensate for this. What this did, is when the server DID detect you doing something you shouldn't, it fixed it and kicked you, and besides that did regular checks for correct vanilla files where they mattered when in competitive games. Basically, when you used wallhacks you couldn't join in the first place because of incorrect wall models. Then, when you did more damage than the server calculated the shot should have done in its "correct" weapons values, it refunds the damaged unit health/its life, and kicks the offending player. If you simply remove rendering of stealth so stealth no longer works and you see stealth units all the time, the game will record the deaths so a game mod can see obviously you are cheating, as it will save an entire game worth of who killed who using what units and guns and damage values.

    What does this mean for this game?

    They could for all I care make a lot of things client side, then implement some server checks. Sort of a Punkbuster. The game already has full time recordings, so that would spill the beans easily. Besides that, the server could undo attempts to build outside "correct" blueprints, do incorrect damage, or even make it toggleable whether the game checks client side of server side in the options. Besides that, they do simply need to leave as much access to people to change the engine or values.

    Because if it is made to be that easy, then they too will create total conversions and custom campaigns. Games always sell better if people can get bored playing that game just to pick up a mod and play that same game a whole different way to occupy just as much time as the vanilla gameplay did. Plus, people like bling, they wont get bored as soon if they can keep changing cosmetic junk.
  19. SXX

    SXX Post Master General

    Messages:
    6,896
    Likes Received:
    1,812
    I don't think we need anything like that as long as server will be available and modable too. I really like idea where most everything implemented on server because it's mean more cross platform and more stable modding with no dirty hacks and rootkit crap like Punkbuster.

    Yes it's working too, but it's bad way to do things and it's never worked properly. :)

    PS: Also I just want to clarify that currently from my point of view Uber do everything extremely well in terms of modding, but much more functions still required. This is not priority for them, so as I understand most of those things will be implemented post-release.
    Last edited: September 25, 2013

Share This Page