Navigation

    FAForever Forums
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    1. Home
    2. splitice
    3. Posts
    • Profile
    • More
      • Following
      • Followers
      • Topics
      • Posts
      • Best
      • Groups

    Posts made by splitice

    RE: AI Development Guide and M27AI v70 Devlog

    @maudlin27 Iterate the blueprints on start for unit ranges perhaps? Thats how unit stats are normally changed so it makes sense to do the same on first tick.

    It didnt build zero experimentals (I saw a few galactic colossuses before taking the center) but they were limited. Towards the end of the game I would have expected to see waves of them.

    posted in AI development •
    RE: AI Development Guide and M27AI v70 Devlog

    Also flying engineer strategy:

    • Fly in over land defences and take them 🙂

    Might have been a good strategy for that engineer army.

    posted in AI development •
    RE: AI Development Guide and M27AI v70 Devlog

    Played a heavily modded game (primarily fast build, increased storage, increased nuke defence build rate, defence expanded). 1x AIX vs 1x human.

    @maudlin27 well done... took me over 2 hours (Uveso with the same settings would be sub 1hr typically).

    Got forced to turtle up to the middle a bit the AI was very overwhelming with a constant stream of high tier units controlling the center.

    I'm betting it would have had enough resources to build more experimentals however it didnt. Might have been able to win if it did. One area AIs can typically offer more challenge to human players (if resources permit) is by building experimentals as that requires extensive micro management as a human.

    It never tried for a nuke win. T4 Arty was disabled in this match so there was no Arty win possible.

    I won via area supression followed by brute force nuke win.

    1. Area for improvement.

    Don't park within range of guns

    1. Area for improvement

    In the above screenshot that was a fleet of T1 and T3 engineers primarily. Seems kind of useless?

    Tried to invade with that engineer army multiple times. Cannon fodder strategy?

    Overall - good game. Played well. Slowest point with large armies clashing -2, typically +2.

    posted in AI development •
    RE: AI Development Guide and M27AI v70 Devlog

    @maudlin27 thanks very much.

    I thought it might be mod compatibility but I was thinking Auto Reclaim. I look forward to seeing what the next release can do.

    posted in AI development •
    RE: AI Development Guide and M27AI v70 Devlog

    @maudlin27 It was a modded game. It would probably be a pain to replay https://replay.faforever.com/17253648

    I saw there was an update since I last updated so I gave that a shot and got no where. On start:

    warning: false\000M27ERROR Count=1: GameTime 4: sBlueprintToBuild is nil, could happen e.g. if try and get sparky to build sxomething it cant - refer to log for more details
    warning: stack traceback:
    warning:         [C]: in function `assert'
    warning:         [C]: in function `pcall'
    warning:         ...nder forged alliance\mods\m27ai\lua\m27utilities.lua(74): in function `ErrorHandler'
    warning:         ...d alliance\mods\m27ai\lua\ai\m27engineeroverseer.lua(3146): in function `BuildStructureAtLocation'
    warning:         ...er forged alliance\mods\m27ai\lua\ai\m27overseer.lua(7173): in function <...er forged alliance\mods\m27ai\lua\ai\m27overseer.lua:7154>
    info: BuildStructureAtLocation: Had category to build. oEngineer=ual00011; UC=1; All blueprints that satisfy the category={ table: 27460820 
    info:   "drlk005",
    info:   "uab0101",
    info:   "uab0201",
    info:   "uab0301",
    info:   "ueb0101",
    info:   "ueb0201",
    info:   "ueb0301",
    info:   "urb0101",
    info:   "urb0201",
    info:   "urb0301",
    info:   "xrl0002",
    info:   "xrl0003",
    info:   "xrl0004",
    info:   "xrl0005",
    info:   "xsb0101",
    info:   "xsb0201",
    info:   "xsb0301",
    info:   "zab9501",
    info:   "zab9601",
    info:   "zeb9501",
    info:   "zeb9601",
    info:   "zrb9501",
    info:   "zrb9601",
    info:   "zsb9501",
    info:   "zsb9601"
    info: }
    

    (Ditto Mods)
    https://replay.faforever.com/17253862

    posted in AI development •
    RE: AI Development Guide and M27AI v70 Devlog
    warning: Error running lua script: ...ed alliance\mods\m27ai\lua\ai\m27factoryoverseer.lua(524): attempt to perform arithmetic on field `?' (a nil value)
             stack traceback:
             	...ed alliance\mods\m27ai\lua\ai\m27factoryoverseer.lua(524): in function `DetermineWhatToBuild'
             	...ed alliance\mods\m27ai\lua\ai\m27factoryoverseer.lua(1219): in function <...ed alliance\mods\m27ai\lua\ai\m27factoryoverseer.lua:1107>
    

    Finished in like 10 minutes flat after norush. AI did not build much.

    posted in AI development •
    RE: Error joining a game from lobby

    Tried three times to start with Faf beta, no luck.

    posted in Game Issues and Gameplay questions •
    RE: Mappers: 15km Setons, I will pay

    If it does get made Github. Expecially as a backup to prevent loss of content due to arbitary removal.

    posted in Mapping •
    RE: [MOD] PJ Infrastructure Pack for play with AIx

    @foxy_pj aware. Gripe directed at whomever involved, not you sorry if that was unclear.

    Not exacty against rules explicitly or how copyright or takedown works (e.g us supreme court finding re; right to modify software). But hey nothing I can do about it other than not upload content to the vault.

    If faf staff were concerned about legality they would look into the legal models used by similar services e.g:

    • github
    • fanfiction (e.g otw)
    • other moddb sites all of which deal with derivative works (most of the mods in the vault would be infringing on GPG if not for that supreme court finding)
    • or; even force appropriate licencing

    This is kind of off topic for this thread (sorry), so I'll leave it here.

    posted in Modding & Tools •
    RE: [MOD] PJ Infrastructure Pack for play with AIx

    @foxy_pj

    News to me.

    The dwm variant has been removed too, leaving only the original unmaintained in 7 years version. Don't you just love it when good content is removed for pointless reasons?

    Before anyone asks, no I don't have a backup copy of dwm's version of the mod and since mines (supposedly?) against the rules I'll just say PM me for a copy.

    FYI to any staff the rules links a 404 (https://forum.faforever.com/topic/607/faf-mod-vault-rules-regulations) so anyone confirming they have read the linked rules is confirming they have read a page not found error.

    It is funny to me considering that:

    1. 4 of the 15 most recent mods are modifications
    2. my mod is an improvement of an existing modification (dwm) for the existing modification by Mavr390 (published 8 years ago) and thats largely a copy of the Supcom lua files with a few additional lines of logic (claim copywrite on that? ha)

    It's what mods are, modifications.

    Anyway doesnt matter me, it was for the communities benefit I uploaded. I don't need to, and now I won't.

    posted in Modding & Tools •
    RE: [MOD] PJ Infrastructure Pack for play with AIx

    I assume you mean "AutoReclaim (splitice)" which is mine.

    It's based off dwm's variant. I mainly set out to fix the performance (it was horrible late-game).

    I've observed AIs using it (it's the T1 kenel) at-least for Cybran and UEF. Although probably not upgrading it.

    Any fixes you want to contribute (now that you understand the upgrading logic are welcome and can be contributed).

    posted in Modding & Tools •
    RE: Simspeed: Revive work on modifying luajit to work with FAF

    Ended up manually throwing together a testing bundle (expected a failure). And it worked without a problem. I looked into it and I was wrong it wouldnt be as simple as a binary compatible DLL. Neither MohoEngine.dll or LuaPlus_1081.dll are actually used by Supcom. Both are statically (lib) compiled into the exe.

    Doh.

    posted in Suggestions •
    RE: Simspeed: Revive work on modifying luajit to work with FAF

    Also step 0, get LuaPlus compiling. After spending a fair portion of today just trying to get its build system to work (with both VS 2017 and VS 2019) it's not a simple problem.

    posted in Suggestions •
    RE: Simspeed: Revive work on modifying luajit to work with FAF

    Thank you @Askaholic those issues are great. I'll likely take you up on that when I get to that stage (or if something I do wouldnt be best shared with the community).

    One way to look for differences between your Lua and the Games lua would be to compare the output of the globals.

        local seen={}
    
        function dump(t,i)
            seen[t]=true
            local s={}
            local n=0
            for k in pairs(t) do
                n=n+1 s[n]=k
            end
            table.sort(s)
            for k,v in ipairs(s) do
                print(i,v)
                v=t[v]
                if type(v)=="table" and not seen[v] then
                    dump(v,i.."\t")
                end
            end
        end
    
        dump(_G,"")
    

    My thoughts regarding a process to do this would be.

    Phase 1. Move to in-house lua (PoC only)

    Build a compatible (compare export list) LuaPlus + Lua dll as a drop in for LuaPlus_1081.dll

    This will fail if there are any missing changes (and it sounds like there will be). Implementation of whats missing. Also need to look for any modifications that may have been made to LuaPlus.

    Get "roughly playable" proving that the concept is possible.

    This PoC wouldnt have to be perfect, the goals would be:

    1. To identify any otherwise unknown changes by GPG
    2. To verify the dll replacement method

    Stage 2 (Luajit)

    Swap the library to luajit and move the lua cfunctions to luajit. luajit is ABI compatible so this is actually pretty easy.

    Deal with any ABI or language differences. There are some nuances for luajit applications none that I think will apply here (mostly with the calling of cfunctions from lua that call back into lua)

    At this stage it's a suitable optional drop-in and we can focus on getting it properly playable and bug free

    Stage 3 (further acceptance and performance)

    Optimize the code for luajit. We now have a modern Lua variant 🙂

    posted in Suggestions •
    RE: Simspeed: Revive work on modifying luajit to work with FAF

    @Askaholic

    1. Is lua-lang in use for anything currently?

    Looking through git the only thing I could find was the unit testing (syntax only?).

    1. What method was used to detirmine the changes (from GPG) to lua. Was it just known language changes?

    The reason I ask is because I've got some experience with binary patching and (more specifically) in-memory binary patching. It's been about 15 years but I did do some work in that area in the past.

    Patching in luajit could begin first by patching memory patching in an in-house build of lua (interpreter) that is supposedly compatible (as a PoC).

    posted in Suggestions •
    RE: AI Development Guide and M27AI v70 Devlog

    @maudlin27 said in AI Development Guide and M27AI v15 Devlog:

    To give a rough idea of the relative weightings for M27

    Thank you for the time you spent gathering this.

    That's quite a low % of total time, I assume this is pegged at 100% (i.e max sim speed until saturation)?

    In retrospect I wonder what % of time goes to AI vs lua game logic vs engine. I'd always assumed the AI code (being there is multiple instances of it running and they typically can be quite intensive) would be a good (50+%) of the total sim time.

    posted in AI development •
    RE: AI Development Guide and M27AI v70 Devlog

    @maudlin27 Re; Burial Mounds if I was to describe the problems with the strategy they would be (in no particular order) - sorry was late.

    1. Over reliance on light artilery. I (a human player) would see this and respond with a small air fleet and this unit is not particularly useful on a water map. The AIs pumping these out were largely limited to defensive operations.
    2. After the early rush fails (or if AI suspects it will fail) the AI really needs to switch to economy building first. A player who has a well optimized build queue can easily push many orders of magnitude ahead of this AI
    3. One of the AIs didnt build any mass extractors, just a single land factory and pumped out units. Given the extremely low cost and quick pay back time of a T1 mass extractor I struggle to see why they should b skipped (of course they could be delayed, but I stopped the game after ~15m and it was still just pumping out units). Perhaps if a early rush tactic is chosen a max game time before mass extractor build within at-least the players own area continues should be implemented?

    I havent played against the AI as a human yet so this is theoretical.

    posted in AI development •
    RE: AI Development Guide and M27AI v70 Devlog

    @maudlin27 said in AI Development Guide and M27AI v15 Devlog:

    What were the game settings, in particular what player slots were in use by what teams and/or do you have a replay ID? I tried it just now in slots 1+2 and didnt get an error but from the log extracts and look of the map it might depend on what the player and team setup is.

    From memory was a mix of Sorian and your 2x m27 aix v 2x sorian aix v 2x sorian aix v1(player)

    Just added m27 on a whim so didnt record game settings. Replay is https://replay.faforever.com/16044970

    posted in AI development •
    RE: AI Development Guide and M27AI v70 Devlog

    I also gave v15 a try but failed on start with:

    
    info: playable area coordinates are { 0, 0, 1024, 1024 }
    info: Offmapareas are {
    info:   { x0=-100, x1=1124, y0=-100, y1=0 },
    info:   { x0=-100, x1=1124, y0=1024, y1=1124 },
    info:   { x0=-100, x1=0, y0=0, y1=1024 },
    info:   { x0=1024, x1=1124, y0=0, y1=1024 }
    info: }
    warning: false\000M27ERROR GameTime 1: Exceeded max loop count; iCurIntelLine=6
    warning: stack traceback:
    warning:         [C]: in function `assert'
    warning:         [C]: in function `pcall'
    warning:         ...nder forged alliance\mods\m27ai\lua\m27utilities.lua(45): in function `ErrorHandler'
    warning:         ...er forged alliance\mods\m27ai\lua\ai\m27overseer.lua(387): in function `RecordIntelPaths'
    warning:         ...er forged alliance\mods\m27ai\lua\ai\m27overseer.lua(4108): in function <...er forged alliance\mods\m27ai\lua\ai\m27overseer.lua:4042>
    warning: false\000M27ERROR GameTime 1: Exceeded max loop count; iCurIntelLine=7
    warning: stack traceback:
    warning:         [C]: in function `assert'
    warning:         [C]: in function `pcall'
    warning:         ...nder forged alliance\mods\m27ai\lua\m27utilities.lua(45): in function `ErrorHandler'
    warning:         ...er forged alliance\mods\m27ai\lua\ai\m27overseer.lua(387): in function `RecordIntelPaths'
    warning:         ...er forged alliance\mods\m27ai\lua\ai\m27overseer.lua(4108): in function <...er forged alliance\mods\m27ai\lua\ai\m27overseer.lua:4042>
    warning: false\000M27ERROR GameTime 1: Exceeded max loop count; iCurIntelLine=8
    warning: stack traceback:
    warning:         [C]: in function `assert'
    warning:         [C]: in function `pcall'
    warning:         ...nder forged alliance\mods\m27ai\lua\m27utilities.lua(45): in function `ErrorHandler'
    warning:         ...er forged alliance\mods\m27ai\lua\ai\m27overseer.lua(387): in function `RecordIntelPaths'
    warning:         ...er forged alliance\mods\m27ai\lua\ai\m27overseer.lua(4108): in function <...er forged alliance\mods\m27ai\lua\ai\m27overseer.lua:4042>
    warning: false\000M27ERROR GameTime 1: Exceeded max loop count; iCurIntelLine=9
    

    Map: Liberiam Battles

    posted in AI development •
    RE: AI Development Guide and M27AI v70 Devlog

    @maudlin27 said in AI Development Guide and M27AI v15 Devlog:

    Rewrote most of the reclaim logic to improve performance (significant reduction in game stuttering, although still worse than I'd like)

    I'm not sure if it will help but I recently re-wrote AutoReclaim (dwm) as "AutoReclaim (splitice)" for more performant reclaims (for T!-3 engineering type towers).

    --

    I also tried a 2v2 (far slots) on Burial Mounds and noted many issues (including a general lack of awareness of the no unit paths and lack of serious economic growth). This was on v14. I think I'll re-asses though when this gets more mature.

    posted in AI development •