Jump to content

Feldfeld

Balancing Advisors
  • Posts

    486
  • Joined

  • Days Won

    11

Posts posted by Feldfeld

  1. 2 minutes ago, Grugnas said:

    so you think that killing 5 units is fair enough to let you win the game? None changed at all as long as cavalry still has same hp and trainin time of vanilla, the way to counter cavalry rush is always the same... cavalry.

    As i said in last post, I still think we can defend cavalry rush without using cavalry. As we both went for rush in last game, it seems obvious that cavalry will be fought  with cavalry, and with the very weak and unprotected eco that goes with the rush, winning cavalry fight is crucial.

  2. 6 hours ago, Grugnas said:

    Watching at the replay I managed to train 8 skirmish cavalry while you had 4 only + 3 producing from the Civic Center. In the attempt to scout your base, your civic center constantly attacked my skirmish cavalry and instead of retreat, i continued my attack with the civic center still attacking my cavalry and in the meanwhile  2 soldiers came closer to my cavalry and killed 1 only as long as infantry soldiers are simple dummies then i lost half of my "army". With a better micro and retiring while in time i could have survived.

    After that lost battle, i finished food ( cavalry cost tons of food for the first minutes of the game ) and the only defense i could focus on was sentry turret because it costs food. Matter of fact something like 15 skirmish cavalry destroyed that sentry tower with ease and at that point the game finished for me.

    The point is that more cavalry shouldn't be the only counter to cavalry as long as there are other stuff to train / build. In this mod, just like in vanilla, once a player has a relevant cavalry disadvantage ( something like 5 skirmish cavalry number of difference) it is game over already since he has no way to turn back.

    As we both went for cavalry rush, it seems logical to me that the winner of the cav fights win the game. I keep believing that if one of us went for foot citizen soldiers, he could defend. It's true though that it is a bit more difficult with non hellenic civ.

    And as servo said, rabbits are still not tamable, and i'm pretty sure that when we don't give them orders, they go where they want.

  3. I've tried this mod with Hannibal_Barca and Grugnas in particular. I played 2 games and took gauls in both to test skirm cav rush and fanatic rush. For now i believe that both are balanced. To be sure of that, more testing is needed of course.

    As for skirm cav rush : I played against grugnas in a team game and we both did skirm cav rush, the winner of the cav fights won the game. That made Grugnas believe that this mod changed nothing but i don't think so : we both had excellent hunt (ideal conditions to rush) and cav is trained later. This fact makes me believe that it is possible to defend a rush by having enough foot citizen soldiers on wood.

    About fanatics : I succesfully used them in a team game, making people suspect it's op but :

    - I think that a fanatic rush is very hard to do correctly and i would be interested in seeing someone else achieving and winning with a fanatic rush in this mod.

    - I grabbed lots of metal this game ( I used 22k metal in 40 min of gametime) that allowed me to train them even late game which would be impossible in almost every game. A fanatic remain expensive on metal !

    These facts make me thinking that fanatics aren't op in is mod, needs more testing of course.

    In future games i think i'll try some other civ and defend a rush myself.

     

    • Like 1
  4. 15 minutes ago, temple said:

    Yes, it doesn't take into account moving targets.

    The thing about ranged units is that they can all attack at once, so they work even better when massed. And since archers have longer range, they can be massed more effectively.

    My point, when speaking with mapkoc, was that i think that with the accuracy rework, archers reach more moving target, so it would buff archers. So i suspected that your graphs were without moving targets, thus underestimating the changes for archers from a21 to a22, and this is why archers would be better than what the graphs shows (in addition of their strength when massed that we already knew). I'm pretty sure that you would find a difference between a21's and a22's archers if you made graphs on moving targets and it would seem difficult to me to balance with these graphs only.

    But the fact that archers are better against moving targets compared with a21 might only be my own feel and maybe it needs confirmation.

  5. I'll give 6 replays that were played in the start of a22. Enjoy !

     

    2v3 skirm cav in hunt map.7z

    2v3 : Feldfeld, merlin1 vs Pretension (JC), Chronical, echotangoecho. Map : African plains

    This game, a bit imbalanced shows the strentg of skirm cav when massed in such a hunt map.

     

    3v3 Arctic summer trade map.7z

    3v3 : Feldfeld, Emperior, kjager vs Pretension (JC), Grugnas, Chronical. Map : Arctic summer

    Seems like Arctic summer is confirmed as a tradespam map, as there is few wood. If i recall well, there is wood treasure at the start, but this time treasures were disabled.

     

    4v4 skirm cav in hunt map, and leaving.7z

    4v4 : Feldfeld, merlin1, Uran238cz, realNoobNoob vs Grugnas, kjager, yunk2,  Pretension (JC). Map : African plains

    Shows once more the importance of skirm cav in this map (and the weakness of spear cav civs in early and middle game in such maps). The game ended after some ppl leaved, and couldn't be replaced (is that possible with the use of STUN to host ? Or i just gave wrong ip ?). So don't be surprised with a major suicide, and a resignation that seems at first sight not justified.

     

    2v2 ele stealing.7z

    2v2 : Emperior, Feldfeld vs Dizaka, Emperior. Map : Mainland

    With the accuracy rework, elephants are easier to hunt. They were even called "food treasures that follow you home". It becomes important to try to steal as much as possible. Elephants are crucial and decide the games they're in.

     

    3v3 strength of skirmisher cavalry.7z

    3v3 : reek (ragnar), temple, mapkoc vs ITRELLES1, chrstgr, Feldfeld. Map : Frontier

    This replay shows the strength (OPness ?) of skirmisher cav rush in hunt map. If they're massed enough early game, what can stop them ?

     

    3v3 army composition.7z

    3v3 : reek (ragnar), mapkoc, chrstgr vs Feldfeld, _jr_, ITRELLES1. Map : Frontier

    I called this replay like this, because i think that gauls have a very weak late game army composition, and that now they're one of the weakest civs.

     

    As always, you can download all replays in a pack : pack.7z.

    This post may not respect the rules of the subforum, but i would find it pretty boring to create a thread for each replays i want to post, so i made it like this. I won't do it again if i'm asked not to.

    • Like 2
  6. Either you played a map where this building is disabled (i only know a map "belgian uplands" or something like that), or it is a bug triggered in game setting. If i recall well, if you select this map where the building is disabled, then choose another map, the lighthouse will remain disabled even if it shouldn't. Maybe a dev will confirm, not sure of what i said.

    • Like 1
  7. 7 minutes ago, stanislas69 said:

    There is one issue with this. Since you see in real time what happens you would be able to cheat were you a friend with one of the players. I'm far from being a good player but I'm pretty sure this can be decisive information.

    Actually, being a spectator makes cheating easy currently. You can find all these informations easily by seeing the stats of the game and of all the players. The suggestion made here would make it easier to have these informations (constantly refreshed and without needing to go to another screen, you would see it while seeing the game). The spectator also has strategic informations (what the other player is doing, what army does he make etc).

  8. 5 hours ago, Skhorn said:
    8 hours ago, Feldfeld said:

    I remained silent using "main city" term because i don't really know if the term "capital" really has a meaning in that particular time with a confederation.

    I don't have a good argument against that, but main city or the most representative should've worked for any given faction too. In some of the articles i found on wikipedia, in a few of them i saw something like: The capital of "xxxxxx" kingdom/empire was "xxxxxx"

    I was just saying that about the confederation of tribes, but a particular tribe, or a civilisation can i think have a capital.

  9. 21 minutes ago, Tiber7 said:

    The "capital" of the federated tribes under the command of Vercingetorix was Alesia, wasn't it? Even though historians have no clue (except in the "Commentarii de Bello Gallico") of what it looked like since they don't even know where it was. There are two hypothesises offor the place: one in Switzerland in a valley that fits precisely the measurements of G.J.Caesar. I don't remember the second.

    That's all I know.

    I remained silent using "main city" term because i don't really know if the term "capital" really has a meaning in that particular time with a confederation. About Alesia, yes it was the place of the decisive gaul defeat (my french mind may tend to remember gaul victories only after all :)) but the city itself, from what i saw in quick wikipedia research ( https://fr.wikipedia.org/wiki/Mandubiens in french) seemed to be the capital of the mandubii, which didn't seem to be part of the most important gaulish tribes. Soldiers from different tribes gathered here under the command of Vercingetorix to fight, do we know more about the city ? Didn't it end up being important only for being the place of the decisive defeat which lead the confederation to lose the war ?

    (But i remind i only know history very approximately)

    • Like 1
  10. I can suggest Gergovia for the gauls, which was i think the main city of the Arverni, the tribe that could unify a good part of the gaul tribes against Rome. It was also the place of a prestigious victory of that confederation against rome (so you could maybe find more references).

    But since i only know a few about history, what i say is potentially false and i wait for someone to suggest a better city or correct what i said.

    • Like 2
  11. I confirm this and think that almost everything written is correct, however it seems to me that you posted it in the wrong forum.

    EDIT : didn't see the "tutorials & guides" subforum, but still, it seems to be tutorials and guides to modify the game itself, not gameplay guides, which belong i think to "gameplay discussion" forum.

    • Like 1
  12. Cavalry rushes can be balanced though. Now from what i saw in a22 changes, currently it may be skirmisher cav that is better than spear cav even early game. Still, interesting proposal in original post, but the way he described it would make for sure cavalry rushes, or even cavalry in general useless.

  13. Some 1v1s I played yesterday.

     

    Feldfeld (sele) vs WarriorSpartan (Ptols).7z

    Civs were chosen randomly. As they were imba, i offered a re and he declined, not much to say on this game.

    Feldfeld (ibers) vs WarriorSpartan (persia).7z

    A mistake ended the game quite fast.

    PhyZic (brit) vs Feldfeld (sparta).7z

    This game shows one more time how one unit rules a21's middlegame. It will be balanced on a22.

    PhyZic (mace) vs Feldfeld (gauls).7z

    By far the most interesting game of the series.

    PhyZic (rome) vs Feldfeld (gauls).7z

    Some rushes.

     

    Note that, about the maps, in my second game against PhyZic, he had hunt advantage. In the 3rd game, i had berry advantage.

    You may want to download all the games in a pack :

    pack.7z

    • Like 3
  14. If you want elexis, I am ok to play in multiplayer maps that don't have few chokepoints easily wallable, for example mainland, with stone wall allowed, and actually use the wall, to see if their ban is only a tradition that is not relevant in a21. It can be a good test.

    it would too be interesting to know if we should ban putting multiple layers of wall.

    Consider, too, that it can be interesting for a player to wall a building, that is of course unrealistic. With walls allowed, you can for example circle with walls a 2nd CC if you don't want to spend the stone and the time to circle the area, which you would do later. They would still be very vulnerable against slingers in a21, and likely ranged siege (catapults) in a22. But it would "add" them HP against rams for example, and prevent capture, for not much of stone added. This example and multiple layers of walls can be considered abusing, so you should discuss allowing it or not.

    • Like 1
  15. Walls aren't allowed for the reasons wowgetoffyourcellphone said.

    When causative said they are (a) a waste of resources, and (b) easy to walk around, it is only true for age 1 where it takes some time to close fully the wall, so at this age it is some investment. But after that, walls protect very effectively from both raids and full scale attacks, in a way that they would bring games into full trading very long games, because very hard to break, and i think there are some way to mass wall tower in an area, that fires a lot of arrows that make it even more difficult to break. Also, you could add multi layers of walls.

    • Like 1
  16. Hi,

    When I installed NVIDIA GeForce experience in order to record the game, and i updated my drivers, some weeks ago, i got almost the same error you described in last post 

    59 minutes ago, Alekusu said:

    new error

      Reveal hidden contents

    Function call failed: return value was -100102 (Case 2)
    Location: wmi.cpp:62 (Init)

    Call stack:

    Init (wmi.cpp:62)
        pLoc = 
            m_pInterface = 0x00000032


    ModuleInit (module_init.cpp:47)
        initState = 0x0042971C -> 4294867266 (0xFFFE7942)
        init = 0x00315DD0 -> (Init)

    wmi_GetClassInstances (wmi.cpp:108)
        className = 0x003D6494 -> "Win32_SoundDevice"
        instances = 0x005FE4FC -> (unsupported vector<map<basic_string<wchar_t,char_traits<wchar_t> >,tagVARIANT > >)
        pEnum = 
            m_pInterface = 0x00AEB948 -> 
                (IUnknown)


        query = [200] 
            13824
            12846
            14129
            49 ('1')
            0
            0
            0
            0
            0
            0
            15
            0 ...
        pObj = 
            m_pInterface = 0x005FE32C -> 
                (IUnknown)


        instance = (unsupported map<basic_string<wchar_t,char_traits<wchar_t> >,tagVARIANT >)
        numReturned = 6225966 (0x005F002E)
        name = 0x005FE4D0 -> [8] { 17160, 50 ('2'), 25748, 61 ('='), 58620, 95 ('_'), 42487, 19530 }
        value = 
            vt = 42767 (0xA70F)
            wReserved1 = 62367 (0xF39F)
            wReserved2 = 3152 (0x0C50)
            wReserved3 = 174 (0x00AE)
            llVal = 26992048395510948 (0x005FE520005FE4A4)
            lVal = 6284452 (0x005FE4A4)
            bVal = 164 (0xA4)
            iVal = 58532 (0xE4A4)
            fltVal = 0.000000 (0x005FE4A4)
            dblVal = 7.09688e-307 (0x005FE520005FE4A4)
            boolVal = 58532 (0xE4A4)
            scode = 6284452 (0x005FE4A4)
            cyVal = { Lo = 6284452 (0x005FE4A4), Hi = 6284576 (0x005FE520), int64 = 26992048395510948 (0x005FE520005FE4A4) }
            date = 7.09688e-307 (0x005FE520005FE4A4)
            bstrVal = 0x005FE4A4 -> [8] { 0, 0, 9, 0, 2, 0, 0, 0 }
            punkVal = 0x005FE4A4 (see above)
            pdispVal = 0x005FE4A4 (see above)
            parray = 0x005FE4A4 (see above)
            pbVal = 0x005FE4A4 (see above)
            piVal = 0x005FE4A4 (see above)
            plVal = 0x005FE4A4 (see above)
            pllVal = 0x005FE4A4 (see above)
            pfltVal = 0x005FE4A4 (see above)
            pdblVal = 0x005FE4A4 (see above)
            pboolVal = 0x005FE4A4 (see above)
            pscode = 0x005FE4A4 (see above)
            pcyVal = 0x005FE4A4 (see above)
            pdate = 0x005FE4A4 (see above)
            pbstrVal = 0x005FE4A4 (see above)
            ppunkVal = 0x005FE4A4 (see above)
            ppdispVal = 0x005FE4A4 (see above)
            pparray = 0x005FE4A4 (see above)
            pvarVal = 0x005FE4A4 (see above)
            byref = 0x005FE4A4 (see above)
            cVal = 164
            uiVal = 58532 (0xE4A4)
            ulVal = 6284452 (0x005FE4A4)
            ullVal = 26992048395510948 (0x005FE520005FE4A4)
            intVal = 6284452 (0x005FE4A4)
            uintVal = 6284452 (0x005FE4A4)
            pdecVal = 0x005FE4A4 (see above)
            pcVal = 0x005FE4A4 (see above)
            puiVal = 0x005FE4A4 (see above)
            pulVal = 0x005FE4A4 (see above)
            pullVal = 0x005FE4A4 (see above)
            pintVal = 0x005FE4A4 (see above)
            puintVal = 0x005FE4A4 (see above)
            pvRecord = 0x005FE4A4 (see above)
            pRecInfo = 0x005FE520 -> 
                (IUnknown)

            decVal = 
                wReserved = 42767 (0xA70F)
                scale = [8] { 159 (0x9F), 243 (0xF3), 80 (0x50), 12 (0x0C), 174 (0xAE), 0 (0x00), 164 (0xA4), 228 (0xE4) }
                sign = 243 (0xF3)
                signscale = 62367 (0xF39F)
                Hi32 = 11406416 (0x00AE0C50)
                Lo32 = 6284452 (0x005FE4A4)
                Mid32 = 6284576 (0x005FE520)
                Lo64 = 26992048395510948 (0x005FE520005FE4A4)

    win_get_snd_info (wsnd.cpp:130)
        instances = (unsupported vector<map<basic_string<wchar_t,char_traits<wchar_t> >,tagVARIANT > >)
        names = (unsupported set<basic_string<wchar_t,char_traits<wchar_t> > >)
        versionList = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
        dlls = (unsupported set<basic_string<wchar_t,char_traits<wchar_t> > >)

    WriteSystemInfo (util.cpp:87)
        cpuClock = 5.60307e-067 (0x322E36323FF1AE9F)
        driverInfo = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
        smbios = (unsupported basic_string<char,char_traits<char> >)
        un = 
            sysname = "171 ms"
            nodename = [16] { 243, 47 ('/'), 12, 10, 0, 0, 0, 15, 0, 0, 0, 0, 140, 43 ('+'), 12, 250 }
            release = [9] { 236, 25, 80 ('P'), 0, 0, 172, 0, 0, 0 }
            version = [16] { 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 64 ('@'), 252, 47 ('/'), 12, 232, 102 ('f') }
            machine = [9] { 43 ('+'), 12, 115 ('s'), 165, 74 ('J'), 76 ('L'), 136, 124 ('|'), 166 }

        pathname = 
            path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
            separator = 40 ('(')

        cardName = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
        LINE_81_ = 
            m_t0 = 1.10523 (0x3FF1AF06C92B3AFA)
            m_description = 0x003AEF30 -> "write_sys_info"

        seconds = 3615887140274155167 (0x322E36323FF1AE9F)
        timestampBuf = [100] 
            32 (' ')
            0
            0
            0
            31
            0
            32 (' ')
            0
            15
            0
            40 ('(')
            0 ...

    InitGraphics (gamesetup.cpp:1029)
        args = (unavailable)
        flags = (unavailable)
        profilerGPUEnable = (bool)0x5F
        setup_vmode = false
        context = "y¿WwHWw"
        buf = [500] 
            10
            0
            61704
            95 ('_')
            61772
            95 ('_')
            61735
            95 ('_')
            61705
            95 ('_')
            0
            257 ...
        context = "y¿WwHWw"
        context = "y¿WwHWw"
        rq = 
            mContext = 0xFFFFFFFE -> (JSContext)

        setup_gui = (bool)0xCA
        data = 
            { 
                    (js::ValueOperations<JS::Rooted<JS::Value> >)
     }
            stack = 0x005FE8DC -> 0x00000050
            prev = 0x775B67B0 -> 
                (js::RootedBase<void *>)
                stack = 0x8B55FF8B -> (unavailable - internal error)

                prev = 0x1475FFEC -> 
                    (js::RootedBase<void *>)
                    stack = (unavailable - internal error)

                    prev = (unavailable - internal error)

                    ptr = (unavailable - internal error)


                ptr = 0xFF1075FF

            ptr = 
                data = 
                    asBits = -7168786913 (0xFFFFFFFE54B4FE1F)
                    s = { payload = 
                            i32 = 1421147679 (0x54B4FE1F)
                            u32 = 1421147679 (0x54B4FE1F)
                            boo = 1421147679 (0x54B4FE1F)
                            str = 0x54B4FE1F -> (JSString)
                            sym = 0x54B4FE1F (see above)
                            obj = 0x54B4FE1F (see above)
                            cell = 0x54B4FE1F (see above)
                            ptr = 0x54B4FE1F (see above)
                            why = 1421147679
                            word = 1421147679 (0x54B4FE1F)
                            uintptr = 1421147679 (0x54B4FE1F)
    , tag = -2 }
                    asDouble = -1.#QNAN (0xFFFFFFFE54B4FE1F)
                    asPtr = 0x54B4FE1F (see above)

        scriptInterface = (shared_ptr<ScriptInterface>)
        e = 0x54B4FCCF -> 
            
                
                    
                        (exception)
                        m_msg = (unavailable - internal error)


    RunGameOrAtlas (main.cpp:525)
        argc = 1 (0x00000001)
        argv = 0x026F0008 -> 0x026F0028 -> "C:\Users\Atlani\AppData\Local\0 A.D. alpha\binaries\system\pyrogenesis.exe"
        replayFile = (unsupported basic_string<char,char_traits<char> >)
        scriptEngine = 
            (Singleton<ScriptEngine>)
            m_Runtimes = (unsupported list<JSRuntime const * >)

        args = 
            m_Args = (unsupported vector<pair<CStr8,CStr8> >)
            m_Arg0 = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 92 ('\')


        res = 0 (0x0000000000000000)
        paths = 
            m_root = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 65497

            m_rdata = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 3

            m_gameData = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 2

            m_userData = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 0

            m_config = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 1

            m_cache = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 62872

            m_logs = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 37664


        replay = 
            m_Stream = 0x00000004

        mod = 
            path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
            separator = 64523

        zip = 
            path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
            separator = 4

        mods = (unsupported vector<CStr8 >)
        paths = 
            m_root = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 65497

            m_rdata = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 3

            m_gameData = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 2

            m_userData = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 0

            m_config = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 1

            m_cache = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 62872

            m_logs = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 37664


        builder = 
            m_VFS = (shared_ptr<IVFS>)
            m_Files = (unsupported vector<Path >)
            m_TempDir = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 29

            m_NumBaseMods = 9440208 (0x00900BD0)


    SDL_main (main.cpp:567)
        argc = 1 (0x00000001)
        argv = 0x026F0008 (see above)

    main_utf8 (sdl_windows_main.c:126)
        argc = 1 (0x00000001)
        argv = 0x026F0008 (see above)

    wmain (sdl_windows_main.c:151)
        argc = 1 (0x00000001)
        wargv = 0x00ACB518 -> 0x00ACB520 -> 67 (0x0043)
        wenvp = 0x00ACBCD8 -> 13760 (0x35C0)
        argv = 0x026F0008 (see above)
        retval = 0 (0x00000000)
        i = 1 (0x00000001)

    CallStartupWithinTryBlock (wseh.cpp:364)
        ret = 3027264 (0x002E3140)

    RtlSubscribeWnfStateChangeNotification (:0)

    RtlSubscribeWnfStateChangeNotification (:0)


    errno = 0 (No error reported here)
    OS error = 0 (no error code was set)
     

    found itcrashlog.dmp

     

    New error

      Reveal hidden contents

    Function call failed: return value was -100102 (Case 2)
    Location: wmi.cpp:62 (Init)

    Call stack:

    Init (wmi.cpp:62)
        pLoc = 
            m_pInterface = 0x00000032


    ModuleInit (module_init.cpp:47)
        initState = 0x00ED971C -> 4294867266 (0xFFFE7942)
        init = 0x00DC5DD0 -> (Init)

    wmi_GetClassInstances (wmi.cpp:108)
        className = 0x00E86494 -> "Win32_SoundDevice"
        instances = 0x008FE73C -> (unsupported vector<map<basic_string<wchar_t,char_traits<wchar_t> >,tagVARIANT > >)
        pEnum = 
            m_pInterface = 0x010C6848 -> 
                (IUnknown)


        query = [200] 
            13824
            14126
            14132
            53 ('5')
            0
            0
            0
            0
            0
            0
            15
            0 ...
        pObj = 
            m_pInterface = 0x008FE56C -> 
                (IUnknown)


        instance = (unsupported map<basic_string<wchar_t,char_traits<wchar_t> >,tagVARIANT >)
        numReturned = 9371694 (0x008F002E)
        name = 0x008FE710 -> [8] { 17160, 221, 25748, 232, 59196, 143, 22324, 53134 }
        value = 
            vt = 7438 (0x1D0E)
            wReserved1 = 36753 (0x8F91)
            wReserved2 = 4464 (0x1170)
            wReserved3 = 268 (0x010C)
            llVal = 40505321181931236 (0x008FE760008FE6E4)
            lVal = 9430756 (0x008FE6E4)
            bVal = 228 (0xE4)
            iVal = 59108 (0xE6E4)
            fltVal = 0.000000 (0x008FE6E4)
            dblVal = 5.67907e-306 (0x008FE760008FE6E4)
            boolVal = 59108 (0xE6E4)
            scode = 9430756 (0x008FE6E4)
            cyVal = { Lo = 9430756 (0x008FE6E4), Hi = 9430880 (0x008FE760), int64 = 40505321181931236 (0x008FE760008FE6E4) }
            date = 5.67907e-306 (0x008FE760008FE6E4)
            bstrVal = 0x008FE6E4 -> [8] { 0, 0, 9, 0, 2, 0, 0, 0 }
            punkVal = 0x008FE6E4 (see above)
            pdispVal = 0x008FE6E4 (see above)
            parray = 0x008FE6E4 (see above)
            pbVal = 0x008FE6E4 (see above)
            piVal = 0x008FE6E4 (see above)
            plVal = 0x008FE6E4 (see above)
            pllVal = 0x008FE6E4 (see above)
            pfltVal = 0x008FE6E4 (see above)
            pdblVal = 0x008FE6E4 (see above)
            pboolVal = 0x008FE6E4 (see above)
            pscode = 0x008FE6E4 (see above)
            pcyVal = 0x008FE6E4 (see above)
            pdate = 0x008FE6E4 (see above)
            pbstrVal = 0x008FE6E4 (see above)
            ppunkVal = 0x008FE6E4 (see above)
            ppdispVal = 0x008FE6E4 (see above)
            pparray = 0x008FE6E4 (see above)
            pvarVal = 0x008FE6E4 (see above)
            byref = 0x008FE6E4 (see above)
            cVal = 228
            uiVal = 59108 (0xE6E4)
            ulVal = 9430756 (0x008FE6E4)
            ullVal = 40505321181931236 (0x008FE760008FE6E4)
            intVal = 9430756 (0x008FE6E4)
            uintVal = 9430756 (0x008FE6E4)
            pdecVal = 0x008FE6E4 (see above)
            pcVal = 0x008FE6E4 (see above)
            puiVal = 0x008FE6E4 (see above)
            pulVal = 0x008FE6E4 (see above)
            pullVal = 0x008FE6E4 (see above)
            pintVal = 0x008FE6E4 (see above)
            puintVal = 0x008FE6E4 (see above)
            pvRecord = 0x008FE6E4 (see above)
            pRecInfo = 0x008FE760 -> 
                (IUnknown)

            decVal = 
                wReserved = 7438 (0x1D0E)
                scale = [8] { 145 (0x91), 143 (0x8F), 112 (0x70), 17 (0x11), 12 (0x0C), 1 (0x01), 228 (0xE4), 230 (0xE6) }
                sign = 143 (0x8F)
                signscale = 36753 (0x8F91)
                Hi32 = 17568112 (0x010C1170)
                Lo32 = 9430756 (0x008FE6E4)
                Mid32 = 9430880 (0x008FE760)
                Lo64 = 40505321181931236 (0x008FE760008FE6E4)

    win_get_snd_info (wsnd.cpp:130)
        instances = (unsupported vector<map<basic_string<wchar_t,char_traits<wchar_t> >,tagVARIANT > >)
        names = (unsupported set<basic_string<wchar_t,char_traits<wchar_t> > >)
        versionList = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
        dlls = (unsupported set<basic_string<wchar_t,char_traits<wchar_t> > >)

    WriteSystemInfo (util.cpp:87)
        cpuClock = 6.7737e-043 (0x372E36323FF8EF27)
        driverInfo = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
        smbios = (unsupported basic_string<char,char_traits<char> >)
        un = 
            sysname = "475 ms"
            nodename = "bZ
    "
            release = "ìGn"
            version = [16] { 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 144, 98 ('b'), 90 ('Z'), 23, 120 ('x'), 206 }
            machine = [9] { 85 ('U'), 23, 176, 88 ('X'), 142, 207, 128, 107 ('k'), 208 }

        pathname = 
            path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
            separator = 40 ('(')

        cardName = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
        LINE_81_ = 
            m_t0 = 1.55846 (0x3FF8EF701F269EF1)
            m_description = 0x00E5EF30 -> "write_sys_info"

        seconds = 3976175110464270119 (0x372E36323FF8EF27)
        timestampBuf = [100] 
            32 (' ')
            0
            0
            0
            31
            0
            32 (' ')
            0
            15
            0
            40 ('(')
            0 ...

    InitGraphics (gamesetup.cpp:1029)
        args = (unavailable)
        flags = (unavailable)
        profilerGPUEnable = (bool)0x8F
        setup_vmode = false
        context = "y¿|wH|w"
        buf = [500] 
            10
            0
            62280
            143
            62348
            143
            62311
            143
            62281
            143
            0
            257 ...
        context = "y¿|wH|w"
        context = "y¿|wH|w"
        rq = 
            mContext = 0xFFFFFFFE -> (JSContext)

        setup_gui = (bool)0xCA
        data = 
            { 
                    (js::ValueOperations<JS::Rooted<JS::Value> >)
     }
            stack = 0x008FEB1C -> 0x00000050
            prev = 0x778067B0 -> 
                (js::RootedBase<void *>)
                stack = 0x8B55FF8B -> (unavailable - internal error)

                prev = 0x1475FFEC -> 
                    (js::RootedBase<void *>)
                    stack = 0x00000000
                    prev = 0x00000000
                    ptr = 0x00000000

                ptr = 0xFF1075FF

            ptr = 
                data = 
                    asBits = -8088079903 (0xFFFFFFFE1DE9B1E1)
                    s = { payload = 
                            i32 = 501854689 (0x1DE9B1E1)
                            u32 = 501854689 (0x1DE9B1E1)
                            boo = 501854689 (0x1DE9B1E1)
                            str = 0x1DE9B1E1 -> (JSString)
                            sym = 0x1DE9B1E1 (see above)
                            obj = 0x1DE9B1E1 (see above)
                            cell = 0x1DE9B1E1 (see above)
                            ptr = 0x1DE9B1E1 (see above)
                            why = 501854689
                            word = 501854689 (0x1DE9B1E1)
                            uintptr = 501854689 (0x1DE9B1E1)
    , tag = -2 }
                    asDouble = -1.#QNAN (0xFFFFFFFE1DE9B1E1)
                    asPtr = 0x1DE9B1E1 (see above)

        scriptInterface = (shared_ptr<ScriptInterface>)
        e = 0x1DE9B331 -> 
            
                
                    
                        (exception)
                        m_msg = 0x41000000 -> (unavailable - internal error)


    RunGameOrAtlas (main.cpp:525)
        argc = 1 (0x00000001)
        argv = 0x04640008 -> 0x04640028 -> "C:\Users\Atlani\AppData\Local\0 A.D. alpha\binaries\system\pyrogenesis.exe"
        replayFile = (unsupported basic_string<char,char_traits<char> >)
        scriptEngine = 
            (Singleton<ScriptEngine>)
            m_Runtimes = (unsupported list<JSRuntime const * >)

        args = 
            m_Args = (unsupported vector<pair<CStr8,CStr8> >)
            m_Arg0 = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 92 ('\')


        res = 0 (0x0000000000000000)
        paths = 
            m_root = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 520

            m_rdata = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 512

            m_gameData = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 2

            m_userData = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 0

            m_config = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 1

            m_cache = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 63448

            m_logs = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 21968


        replay = 
            m_Stream = 0x00000004

        mod = 
            path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
            separator = 46871

        zip = 
            path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
            separator = 4

        mods = (unsupported vector<CStr8 >)
        paths = 
            m_root = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 520

            m_rdata = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 512

            m_gameData = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 2

            m_userData = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 0

            m_config = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 1

            m_cache = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 63448

            m_logs = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 21968


        builder = 
            m_VFS = (shared_ptr<IVFS>)
            m_Files = (unsupported vector<Path >)
            m_TempDir = 
                path = (unsupported basic_string<wchar_t,char_traits<wchar_t> >)
                separator = 32 (' ')

            m_NumBaseMods = 5114936 (0x004E0C38)


    SDL_main (main.cpp:567)
        argc = 1 (0x00000001)
        argv = 0x04640008 (see above)

    main_utf8 (sdl_windows_main.c:126)
        argc = 1 (0x00000001)
        argv = 0x04640008 (see above)

    wmain (sdl_windows_main.c:151)
        argc = 1 (0x00000001)
        wargv = 0x010A9368 -> 0x010A9370 -> 67 (0x0043)
        wenvp = 0x010B09C0 -> 6624 (0x19E0)
        argv = 0x04640008 (see above)
        retval = 0 (0x00000000)
        i = 1 (0x00000001)

    CallStartupWithinTryBlock (wseh.cpp:364)
        ret = 14233920 (0x00D93140)

    RtlSubscribeWnfStateChangeNotification (:0)

    RtlSubscribeWnfStateChangeNotification (:0)


    errno = 0 (No error reported here)
    OS error = 0 (no error code was set)
     

     

     

    I think you have the same issue since you record videos too.

    Note that it doesn't prevent me to play the game, i can push "continue", and it runs the game and i can play multiplayer too.

    I hope this information can be useful.

  17. 4 hours ago, FeXoR said:

    You are absolutely correct that a list of players sorted by strength doesn't give you a probability for the victory of one side. But that's exactly what you want to have so you additionally have to assume something like

    adding to the uncertainty (you don't even attempt to calculate).

    So basically it ends up in the same way as the probabilistic attempt: Not enough information

    Yes, not enough information but i still trust that, following the "better than nothing" logic :

    sometimes, i see games setup where a player say that currently the game is not balanced, the host says "suggest changes" but none are suggested. The ranking system would maybe suggest a balancing.

    sometimes, the host, and the players, don't all know each others. Maybe, by checking the rating system, we can see who's the closest known player to the unknown one to have an estimation that i would call somewhat decent, because the issue here would be how the ranking is made. It would give a relative strength value that i think is used by most of people to balance. I would call that better than nothing.

    So here what i don't agree about is this sentence :

    4 hours ago, FeXoR said:

    But that's exactly what you want to have

    sometimes, a help, even if it still doesn't give a perfect balance, is helpful and good to take, or at least that's what i think, from my experience in the game.

  18. 3 hours ago, FeXoR said:

    I guess it's about estimating the outcome (win/lose) of the game hosted? If so how do you want to estimate if not with a probability?

     

    I read:

    and assumed what is meant by "fair" in my previous post.

     

    Correct me if I misunderstood anything, please..

    You're right, i expressed badly...

    What i mean is that currently, it is a ranking, not a rating (and i made the mistake many times already in the thread). Currently teams are balanced considering relative players strength, so they don't use probabilities. I guess a way to try to balance a game with this ranking is to put on a team, the best ranked player with the 4th, the 5th and the 8th (following the logic of "the first beat the 2nd, but the 3rd beat the 4th etc) but of course  players can be same strength and that messes up a bit the balance. I'm simply not sure we can use probabilities with a ranking only and not a rating. Though causative in a post tried to rate players from 0 to 5 considering their ranking so i don't really know.

    • Like 1
  19. 8 hours ago, FeXoR said:

    I have many things to say to this but for now I'll just mention a few points:

    1. Whatever you mean by "Good" - as in good player - is unlikely a one dimensional property of a player (if at all) and thus can't be expressed with a number. What can be expressed with a number is the frequency of a player winning games in the past. But that's not telling much about a players likelihood of winning a game in the future! That's because games - their settings and the participating players - are differing for most games and thus don't produce independent and identically distributed random variables. You also need massive amount of data points (1000 is sometimes considered the lower limit) to come to useful conclusions.
    2. Persons react to ratings. This means even if assuming the outcomes of games where randomly distributed over all games (which might by OK) and we have enough data you will break a precondition of statistics by generating them and using them for the purpose stated here - helping PPL to host fair (Guessing here it's meant all teams have an equal chance of winning the game hosted according to the analyzed data) games.
    3. Since one doesn't want to get the likelihood of any player to win the game (which should be 0.5 if nothing is broken ;p) but of a specific player that means one can only use the data of past games he participated in. Since this holds true for all players participating in the particular game you can only use data of games with the exact same players. That makes the "masses of data" requirement quite hard to be fulfilled.
    4. As far as I'm concerned "troll" and "smurf" is an insult (Definitely out of the scopes of statistics BTW ;p). So please be careful with those!

    EDIT: Some rating systems (like ELO) are designed to give a relative score to each player of a (stable - over many games) group of players assuming that games are played one player vs. one player (simplifying things - but that's not true for 0 A.D.) and players always want to win (likely true for competitive communities like a chess league - not so much for mixed communities like that of 0 A.D.). And so on and so forth...

    Even though i don't have an especially good level in statistics or mathematics, i'll try to answer this considering the idea of causative ...

    first thing i want to clarify is that (if i understood well) is that a "win" or a "loss" is not the actual outcome of the multiplayer game, but a comparison of arbitrary selected statistics of the game (with good weight for killed units). This sole fact means that anyway the goal was from beggining to give an estimation and not predict a probability of winning a multiplayer game. So i think that causative explained his system better that i would have done with my english ...

    On 06/05/2017 at 7:57 AM, causative said:

    Each player was considered to have "beaten" other players on their own team, if their score in that game is higher.  Players were not compared to players on the opposing team, because being on the winning/losing team artificially inflates/decreases your score due to the action of your teammates, and I didn't want that to influence the results.  If you were within 20% of another player's score, then both you and the other player were considered to be tied (each recorded as beating the other)

    so what's measured is actually a serie of 1v1s in a multiplayer games. If you play a 4v4 game you actually play 3 games, between your allies. As this was not criticized i wanted to make sure it's clarified...

    1. So as i said i am not good in statistics but from how i see it : supposing the arbitrary selected score of a game used to compare players are good (though we know it's not the case), then this "multiplayer" rating is similar to the current 1v1 rating of the game : if statistics laws applies to multiplayer rating, it also applies to the 1v1 rating system of this game, so that would mean the 1v1 official system is as bad as this multiplayer system. So knowing that, the issue of this multiplayer system is how score describe a multiplayer game which we, i think, all acknowledge is not 100% accurate, score for example doesn't measure how good a strategy is unless it rewards more kills etc...

    2. Already talked about that in a post in the thread, even if i don't speak well, but still, how i see it : indeed, games are supposed to be balanced, but since it's not the outcome (win/loss) of the entire multiplayer game that is measured, i think that we should take other conclusions of this. We have players of different strength in a team. It is supposed to be balanced at the start : that mean players already use more or less relative estimations of a player's strength, in a way that better players play with weaker players. If the game's score agreed with the human estimation of a player's strength, it simply gives a human help to multiplayer rating estimation.

    3. i still think another conclusion should be taken. You emphasized the fact that players in a multiplayer games may play in different conditions each game (and i think it is more about fighting a player in the opposing team who is stronger than the one your ally fights) but i would say that with more and more games this fact tends to disappear.

    4. Well, for the "smurf" term i guess everyone has its own meaning, though for the troll one : the guy hannibal called a troll was actually the guy who caused a huge disruption, who was the cause of closing registrations. I don't think this term will be used again anytime soon.

    EDIT : by the way Feldfeld = Attila2

    well, i play chess and in chess too we see upsets : i already beat a player rated 400 over me and drew one rated 450 over me. It doesn't need 1000 games to be accurate. In 0a.d., if a player doesn't want to win i think the it will be seen in the score. But generally as far as i'm concerned in multiplayer games players try to win. And yes, it seems elo system doesn't work in 0a.d. since causative noticed that fide rating doesn't work here for reasons described in first post.

    • Like 1
  20. Full of smurfs and banned people, yes, but best ranked ones are known i think. There are also smurfs that aren't kicked from 1v1 rankings too, furthermore 1v1 ranking is unrealistic in some way, too, since people that play more 1v1s will tend to have better ratings (without considering their actual level). A lot of players deserve being better ranked in 1v1s but they didn't play enough, so top 100 not only is full of inactive people (hence unrealistic considering their level is now not known), but with active players that remain low ranked because of lack of games.

    This multiplayer is unrealistic too indeed because sometimes stats aren't enough to assess one's help to the team, and because teams are already supposed to be balanced in pre-game balancing, that means that it is done in a way so that better players are seeded with weaker ones. One of the consequence is that some players are already supposed to be in top of their team from the beggining and won't face best players of opposing team. So from the lot of games i played, i was almost never in borg's team and hence almost never faced him (only when i started 0ad and one recent game i think).

    But i still think that in general this ranking tend to guess well reality, will be better if we remove known smurfs.

    • Like 1
  21. Fanatic rushes can be very deadly. If you look away for 10 seconds you might find a lot of your women/cavalry dead.

    Here I provide in the pack 3 replays where I used them successfully. 1 of the replays is a 1v1 against ffm, the others are team games.

     

    fana rush.7z

    • Like 1
  22. 3 hours ago, sphyrth said:

    Here's another aspect I'm going to jab at: There are no real significant differences among the factions.

    Everybody can rush. Everybody can build armies and fight. No faction really specializes in any of that.

    For example, even with their walls the Iberians can still be raided almost as easily as any other faction.
    The Mauryan Worker Elephant? I don't see a lot of players using the advantage of "faster builder" and the "saving wood because for the Mobile Dropsite".
    Carthage's Embassies, Faster CC Build and Stronger Walls? I don't see them having practical advantages.

    Now I've become a bitter old whiner again. My fallback argument is always "It's still in Alpha."

    Yes there are ...

    "Everybody can rush. Everybody can build armies and fight. No faction really specializes in any of that"

    For the rush, the factions that specialize in that in early game are roman and macedonian, because spear cavalry are available right are the start of the game, and they kill women way faster than skirmisher cavalry (though they lose to them if they fight at equal numbers). Especially romans since their starting cav are also spear cav, when macedonian starts with skirmisher cav.

    "Everybody can build armies and fight"  Yes, but what would do a faction that can't build armies and can't figth ? ... That being said, i'll give an other example of differences among civilizations. Currently, I think that late game is dominated by macedonian and spartans because their spear champions are really strong. So we now have champion fights dominated by these civilizations... I can give other examples if needed.

    "For example, even with their walls the Iberians can still be raided almost as easily as any other faction" Hmm, I doubt that because i think that the iberians, if they want security, should go out and take their wood only when they have a good enough mass of citizen soldiers to counter cav, but i never tried it myself. The walls mainly defend their food income from raids. Also, an other difference in fations : iberians actually have the strongest defense structures in the game (not considering carthage's walls  because walls are forbidden in good games...).

    The Mauryan worker elephant :

    Currently, in early game, yes, they are used to saving wood because of mobile dropsite, and build houses.Though, later in the game they start to require more micro, and are hence only used to gather ressources out of a player's territory. In late game, not only they need micro to be used effectively, but they take also 1 pop that can be precious in low pop games (150, though becoming 165 for mauryans due to their bonuses).So i think they currently give an advantage, and i forgot to speak about hunting using the worker elephant.

    Carthage's Embassies :

    It is true that they are currently not used a lot, but they will likely be in next alpha due to buff of mercenaries, it will encourages people to use mrecenaries and it will likely be a good argument for carthage.

     

    It is also true that the community can't see good player's games/playing due to lack of both replays/videos. Maybe i'll try to remediate that myself but it is some investment...

    • Like 3
×
×
  • Create New...