Jump to content

fcxSanya

WFG Retired
  • Posts

    1.083
  • Joined

  • Last visited

  • Days Won

    12

Posts posted by fcxSanya

  1. 3 hours ago, LordGood said:

    Isn't difficulty controlled by a gather rate bonus with standard difficulty being a 100% gather rate?

    Yes, as the bot description says:

    Quote

    The AI has a bonus/penalty on resource stockpiling (either gathering rate or trade gain) varying from -50% for Sandbox to +60% for Very Hard (Medium 0%). In addition, the Sandbox level does not expand nor attack.

     

    3 hours ago, LordGood said:

    I think the easy bot is crippled to a 75% gather rate.

    There are the following numbers in the InitGame.js now:

    // Sandbox, Very Easy, Easy, Medium, Hard, Very Hard
    let rate = [ 0.50, 0.64, 0.80, 1.00, 1.25, 1.56 ];

    which means 80% for the easy difficutly (unless there are also some other multipliers or something).

    4 hours ago, WhiteTreePaladin said:

    The AI tends to train smaller batch sizes (groups of 3, etc.) that the player cannot generally train.

    It's possible to configure the batch size in the game options starting from Alpha 21.

  2. 54 minutes ago, vladislavbelov said:

    You probably run the Python 2.7 instead of 3.5 by the error text.

    It may be also caused by single backslashes (instead of double ones) in the file path

    51 minutes ago, The Undying Nephalim said:

    Or can someone maybe check the dae's I uploaded and see if they are the actual problem?

    The script generates the same bone_pelvis.xml for both of them

     

  3. 2 hours ago, The Undying Nephalim said:

    Tried double clicking it to run, dropping the dae on it. Nothing happens.

    Try to run it from cmd or powershell this way:

    .\skeleton_generator.py

    or:

    python .\skeleton_generator.py

    you should see an output like this:

    Done generating file: C:\Users\User\Downloads\bone_pelvis.xml

    or an error message

  4. 17 hours ago, stanislas69 said:

    @ArcaneExodus Network support has improved as the game now has a better way to go around firewalls. @fcxSanya or @elexis could probably be more specific.

    A22 includes NAT traversal feature (technical details are here: #2305 (UDP Hole Punching / NAT Traversal) ), which should allow to host a significantly larger amount of players (with some network configuration it would be still impossible to host though). It worked fine during the development tests and I can't wait to see the results of wider usage after the release. In further versions we can add more diagnostic information to have more details when it works and when it doesn't and hopefully made further improvements.

    • Like 3
  5. 3 hours ago, Rishabh said:

    How can I extract the state of the game currently? I couldn't seem to find this part in the source. I want to be able to send my state to the other player without hashing it.

    You can check out how the simulation state is serialized for the hashing itself, see CComponentManager::ComputeStateHash , as the code comment says:

    Quote

    // Hash serialization: this includes the minimal data necessary to detect
    // differences in the state, and ignores things like counts and names

    // If 'quick' is set, this checks even fewer things, so that it will
    // be fast enough to run every turn but will typically detect any
    // out-of-syncs fairly soon

    For the full simulation state serialization / deserialization you can examine the save / load game mechanics, see SavedGame.cpp

  6. 8 hours ago, wowgetoffyourcellphone said:

    You guys are too friendly to a potential hacker.

    Security through obscurity isn't very efficient for an open-source project in any case. I found the methods I linked by searching a not-very-familiar-to-me part of the codebase for 10-15 minutes. If someone would be able to find a flaw after such a small time / effort investment, then it may have sense to improve the validation, and raising awareness about potential issues helps.

    • Like 4
  7. Hi and welcome to the forums!

    0 A.D. uses the same 'synchronized simulations' network model as Age of Empires (and probably some/many other RTS games), you can read about it here: http://www.gamasutra.com/view/feature/131503/1500_archers_on_a_288_network_.php , the second paragraph puts it in a nutshell:

    Quote

    Simultaneous Simulations

    Rather than passing the status of each unit in the game, the expectation was to run the exact same simulation on each machine, passing each an identical set of commands that were issued by the users at the same time. The PCs would basically synchronize their game watches in best war-movie tradition, allow players to issue commands, and then execute in exactly the same way at the same time and have identical games.

    So:

    43 minutes ago, Rishabh said:

    1) Since the game is following a p2p model, shouldn't this not happen?

    Each game client validates the simulation state checksum, since any deviation is guaranteed to lead to issues.

    43 minutes ago, Rishabh said:

    2) How can I allow games with different mods to be played while maintaining sync?

    If they affect simulation -- you cannot by design.

    • Like 3
  8. 4 hours ago, gameboy said:
    @fcxSanya  here add it ?

    Yes, and then you need to restart ejabberd and check out the ejabberd log (/var/log/ejabberd/ejabberd.log), if you installed the module properly you should see something like:

    =INFO REPORT==== 2017-06-14 09:08:27 ===
    I(<0.42.0>:ejabberd_app:72) : ejabberd 2.1.11 is started in the node ejabberd@desktop
    

    Otherwise there should be an error like:

    =ERROR REPORT==== 2017-06-14 09:06:08 ===
    C(<0.39.0>:gen_mod:75) : Problem starting the module mod_ipstamp for host "localhost" 
     options: []
     error: undef
    
    =ERROR REPORT==== 2017-06-14 09:06:08 ===
    C(<0.39.0>:gen_mod:80) : ejabberd initialization was aborted because a module start failed.

     

  9. 3 hours ago, stanislas69 said:

    Only issue with this method is you'll have to download around 4GB minimum the first time and you'll need some experience with visual studio if you are on Windows

    Given that our releases are less than 600MB and there are no more than two releases a year, it may be more sensible to keep downloading releases for a few years instead of downloading git/svn repo and keeping it up-to-date :)

    • Like 1
  10. On 12.06.2017 at 4:40 PM, gameboy said:

    2017-06-13 13:28:19        WARNING  Ratings bot 'disabled@192.168.3.10/CC' is offline

    This is displayed if you use some rating-related functionality (viewing the leaderboard for example) and the rating bot (EcheLOn) is offline. See README if you want to run it.

    On 12.06.2017 at 4:40 PM, gameboy said:

    Traceback (most recent call last):

      File "XpartaMuPP.py", line 328, in iqhandler
        self.gameList.removeGame(iq['from'])
      File "XpartaMuPP.py", line 45, in removeGame
        del self.gameList[str(JID)]
    KeyError: 'tomboy@192.168.3.10/WFG'
    2017-06-12 21:20:06        ERROR    Failed to process game unregistration data

    Can you reproduce it? Also any idea why you have "WFG" resource in JID: 'tomboy@192.168.3.10/WFG'? (I believe "0ad" resource is hardcoded when you join the lobby via the game; and "CC" for bots)

  11. @gameboy try this:

    [lobby]
    server = "localhost"             ; Address of lobby server
    room = "arena21"                    ; Default MUC room to join
    xpartamupp = "wfgbot21"             ; Name of the server-side xmpp client that manage games
    root@ben:/home/tom/tools/XpartaMuPP# python3 XpartaMuPP.py --domain localhost  --login wfgbot21 --password 123456 --nickname WFGbot --room arena21

     

  12. 39 minutes ago, gameboy said:

    [lobby]
    <...>
    room = "arena22"                    ; Default MUC room to join
    xpartamupp = "WFGbot"             ; Name of the server-side xmpp client that manage games

    root@ben:/home/tom/tools/XpartaMuPP# python3 XpartaMuPP.py --domain 192.168.3.10  --login wfgbot21 --password 123456 --nickname WFGbot --room arena21

    "lobby.xpartamupp" setting should match the "login" argument of XpartaMuPP.py, i. e. "wfgbot21" in your example

    And "room" should be the same too (either "arena21" or "arena22" in both places)

  13. 15 minutes ago, gameboy said:
    I run it again, but I didn't get the  chat room list

    1. install some XMPP client if you don't have one yet (I used Pidgin on the screenshot)

    2. login via XMPP client with some other account (either the one you are using in game ("boytom", the password should be in ~/.config/0ad/config/user.cfg) or create a new one via ejabberdctl)

    3. get the room list (in Pidgin it's something like menu -> tools -> room list) 

  14. @gameboy when XpartaMuPP is running with the proper arguments, you should see it in the lobby (and it's not present on your screenshot).

    You can check this via XMPP client too:
    * start XpartaMuPP (and keep it running)
    * join the lobby server via XMPP client with another account
    * get the chat room list, you should see the room joined by the bot
    * join the room, you should see the bot in it

    xpartamupp_muc.png

×
×
  • Create New...