Navigation

    FAForever Forums
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    1. Home
    2. maudlin27
    maudlin27

    maudlin27

    @maudlin27

    168
    Reputation
    232
    Posts
    35
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    • Profile
    • More
      • Following
      • Followers
      • Topics
      • Posts
      • Best
      • Groups
    maudlin27 Follow

    Best posts made by maudlin27

    AI Development Guide and M27AI v35 Devlog

    Following the recent Supreme Computer Cup I was inspired to have a go at developing a basic AI for FAF. As I had zero experience of coding in Lua, I thought at the same time I would write down things as I learnt them to have both a guide for other people interested in getting started in developing an AI, and a dev log for the creation of my AI.

    See below for a link to the current AI development guide and devlog:
    https://docs.google.com/document/d/1uQlEoN-kti7G2MnhwD60uaaHwVevPNYH/edit?usp=sharing&ouid=100973959280546778272&rtpof=true&sd=true

    You can also access the mod on Github:
    https://github.com/maudlin27/M27AI

    I've copied the current overview from the guide below:

    This document is intended to do 3 things at once (meaning it does none of them very well!):
    • Act as a guide to people new to FAF AI development, including collating any other useful resources out there on AI development
    • Be a sort of dev log of my thought process and development steps for creating my first FAF AI, with extracts of code thrown in
    • Form my main ‘todo’ list for further developments of my AI
    If you see any errors, or have any comments or suggestions (in particular any AI developers who read this since you’ll probably know better/easier ways of doing things than the methods I’ve chosen) let me know and I can update the guide where relevant.

    If you’re here for useful resources and/or details of how to write AI and don’t care about the dev log aspect then just skip to section 2) Setup and background and section 5) Index of useful functions, and/or browse the index for points that may be of interest.

    Latest changes (v35 summary)
    v35 - Pre-planned firebases
    Part 2 of my turtling logic - this time M27 should preemptively setup a firebase at map chokepoints (only works on some map chokepoints).

    Other changes:
    24 Bugfixes, including

    • Novax and T3 arti targeting
    • Fatboy running away too much
    • Power-stall manager miscalculations
      22 Misc changes, including:
    • Air factory adjustments for building air scouts and inties
    • Making ACU more aggressive if the enemy doesn't have T3 units

    Key areas of focus by version (history):
    v1-3: Release
    v4 - Intel and threat detection
    v5 - Use of ACU and hotfix
    v7 - Engineers and building upgrades
    v9 - Air
    v10 - Anti-Turtle
    v11-v12 - Pathfinding and misc changes
    v13 - Anti-navy
    v14 - ACU and mobile shields
    v15-v18 - CPU optimisation and hotfixes
    v19 - Rally points and air domination strategy
    v20 - Late game
    v21-23 - Eco management
    v24 - Bombers
    v25 - Misc
    v26 - Nukes
    v27 - T3 Arti
    v28 - Game options/compatibility
    v29 - Optimisation and TMD
    v30 - Czar, Soulripper and Defences
    v31 - Bombers (again) and TML
    v32-33 - Plateaus
    v34-35 - Turtling

    posted in AI development •
    Player Councilor elections - shorten future timeframe

    Having only started following the FAF forums and news the start of this year I'd not come across the PC election before, but one thing that's surprised me is just how long the process has gone on for. To summarise the timings for the PC election that's almost now finished:

    • 6 May 21 - election announced, candidates requested
    • 30 May - Signups closed (includes 1 week extension to accommodate further debate following disqualification of certain candidates/clarification of conditions to apply)
    • 6 June - voting begins
    • 6 July - voting ends

    So essentially, 3 months taken up with the PC election.

    Regardless of whoever wins the current election, I'd suggest shortening this period significantly, as 1/4 of the PC's time will potentially be in 'election mode'.

    I'd therefore suggest allowing 3 weeks for candidates, and then 3 weeks for voting, to halve the time involved overall, for next year's election, while still giving enough of a period to allow most people who might be on holiday at some point in that time to be able to stand and/or vote, without having the election go on for so long.

    I'd also be curious if anyone has stats on the timeframe of when votes were cast, as I suspect they will be weighted significantly towards the start of the voting period (which would give further support for there not being a need for a whole month to vote). If this isn't the case and votes tend to be evenly spread over the time period (or even weighted more towards the end of the voting period) then it may still be worth retaining 4 weeks for voting.

    posted in Suggestions •
    RE: AI Development Guide and M27AI v35 Devlog
    1. Overview 32
      1.1) AI goals 32
      1.2) Background 33
      1.3) Approach 33
    2. Setup and background 34
      2.1) Lua editors 34
      2.1.1) Intellij IDEA 34
      2.2) Other guides which include a section on AI: 35
      2.2.1) General information: 35
      2.2.2) How AI in FAF works 35
      2.2.3) AI markers and how AI uses them: 37
      2.2.4) Hooking (e.g. replacing/appending existing game code) 37
      2.2.5) Creating custom scripts for Sorian AI: 37
      2.2.6) Pathfinding 37
      2.2.7) How platoons work 37
      2.2.8) AI Research (non-FAF related) 37
      2.3) Lua coding 37
      2.3.1) How to code in Lua 37
      2.3.2) Stand alone Lua code testing 37
      2.3.3) Lua optimisation 38
      2.3.4) Common causes of errors for non-Lua coders 38
      2.4) Debugging in FAF 38
      2.4.1) Console 38
      2.4.2) Cheats 39
      2.4.3) Log window and error messages 39
      2.4.4) Debug window and shortcuts 39
      2.4.5) Platoon names for debugging 40
      2.4.6) Function hooks and identifying infinite loops 40
      2.4.7) Fast speed 40
      2.4.8) In-game tools and information 41
      2.4.9) Other shortcuts and game startup options 42
      2.4.10) Suggested shortcut 44
      2.4.11) Using FAF Develop 44
      2.4.12) Error handling 45
      2.4.13) Optimisation – benchmarks and monitoring 46
      2.4.14) Debugging via replay 47
      2.5) AI development discord 48
      2.6) Core FAF Lua files 49
      2.6.1) Accessing core Lua code 49
      2.6.2) Other built in functions 49
      2.6.3) Unit blueprints 50
      2.7) Testing AI against other AI 50
      2.7.1) Simple offline testing 50
      2.7.2) Mass offline AI testing 51
      2.8) Getting started – using a simple AI template as a starting point 52
      2.9) Downloading and setting up MicroAI 52
      2.10) Giving the AI mod your own name 52
      2.11) General - Hooks, and getting the code to recognise if it’s running your AI 53
      2.11.1) Hooking – Unit callbacks/events – applied example 53
      2.12) Github 57
      2.12.1) Github advantages and Github desktop 57
      2.12.2) Linking Github with a local repo via creating your own init file 58
      2.12.3) Pro Git ebook 58
      2.12.4) Git commit messages 58
      2.13) Uploading your AI to FAF 58
      2.13.1) Pre-upload checklist 58
      2.13.2) FAF rules on uploading mods 58
      2.13.3) Uploading to FAF 58
      2.14) Other AI documentation 59
    3. AI changes 59
      3.1) Build order - Changing the initial build order 59
      3.1.1) Adding/removing buildings 59
      3.1.2) Change build order based on map resource positions 59
      3.1.3) Build order conditions 60
      3.2) Build order – ACU builds without moving at start 60
      3.2.1) BaseTemplate 61
      3.3) Build factory and power to benefit from adjacency 62
      3.3.1) Record all mexes on the map, and reference this information 62
      3.3.2) Determine com start position 63
      3.3.3) Identify mexes near to start 63
      3.3.4) Hook onto the core code relating to building a structure at a location 64
      3.3.5) Call build order from custom aiBrain function, to edit how things are built 65
      3.3.6) Adjust build template based on mex location - conditions 65
      3.3.7) Adjust build template based on mex location – build location adjustment 66
      3.3.8) Build initial PGens by existing factory 67
      3.3.9) Adjacency bonus where ACU is away from start location 69
      3.3.10) Referencing unit blueprints for information such as unit size 71
      3.4) Platoons and sending engineers to reclaim 73
      3.4.1) How platoons work 73
      3.4.2) Send the first engineer on reclaim duty 78
      3.4.3) Determine where to send the engineer to reclaim 79
      3.4.4) Identifying reclaim mass value 80
      3.4.5) Find out if a location is accessible by ground: 80
      3.4.6) Mapping reclaim locations and assigning preferred location to an engineer 82
      3.4.7) Don’t send early reclaiming engi if there’s minimal starting reclaim 82
      3.4.8) Issue new reclaim command if engineer becomes idle 83
      3.4.9) Send more engineers to reclaim later (as lower priority) based on the reclaim currently on the map 83
      3.4.10) Send 5 engineers at the start to reclaim and build mexes 84
      3.4.11) Reclaiming trees when no main mass left 84
      3.5) Building and assisting hydro 84
      3.5.1) Check if hydro near start area and have engineer build hydro 84
      3.5.2) Have ACU assist engineer with hydro 85
      3.5.3) Get ACU to continue build order after hydro complete 86
      3.5.4) Subsequent build order changes 87
      3.6) Attack force composition changes and check of AI performance 87
      3.6.1) Build Moar Tanks 87
      3.7) Pre-v1: AI Progress check 88
      3.7.1) Land factory buildings and other build order refinements 89
      3.8) Raiding AI 90
      3.8.1) Raiding behaviour - overview 90
      3.8.2) Queue up move commands for mexes 91
      3.8.3) Identify mexes to target 91
      3.8.4) Locating mexes near to an existing pathing route 94
      3.8.5) Determine when raiders need new targets 94
      3.8.6) Handling complications (stuck units, move orders built on, platoon units dying) 95
      3.8.7) Change factory rally point so units are assigned orders sooner 96
      3.8.8) Making use of platoon names for debugging 99
      3.8.9) Ensure 1 land scout included in each platoon 99
      3.8.10) Use microbots before switching to tanks 100
      3.8.11) Have scouts stay with the platoon 102
      3.8.12) AI scouting, threat detection, and identifying nearby enemy units 102
      3.8.13) Attack engineers en-route: Overview 105
      3.8.14) Tracking when have reached movement points 106
      3.8.15) Determining the platoon minimum range 106
      3.8.16) Identifying nearby enemy units and assessing their threat 108
      3.8.17) Actions based on enemy threat 109
      3.8.18) Avoid attacking enemy mexes for small platoons 110
      3.8.19) Other issues – cheating, walls and min range 111
      3.8.20) Larger raiding platoons 112
      3.9) Large attack wave 113
      3.9.1) Checking when to form a large attack wave 113
      3.9.2) Generalising raider AI 113
      3.9.3) Creating separate platoon AI for the large attack force 114
      3.9.4) Run nearer to base when outnumbered 114
      3.9.5) Recalling nearby raiders to join attack force 115
      3.9.6) Updating threat assessment for ACU health and upgrades 116
      3.9.7) Don’t chase small numbers of faster units 118
      3.9.8) Switch to hunt and kill enemies once reached destination 119
      3.10) Pre-v1: AI Progress check 120
      3.10.1) Summer duel 120
      3.10.2) Theta passage 120
      3.10.3) New issues 120
      3.11) Platoon AI – Generalised approach and further enhancements 121
      3.11.1) Embracing the table 121
      3.11.2) Moving units when shots blocked by cliffs 124
      3.11.3) Anti-stuttering protection 125
      3.11.4) Large attack AI – Rally point for merged units 125
      3.11.5) Raiders assume small numbers of enemies are engis/scouts 125
      3.11.6) T1 Artillery specifically target structures, and spread-attack units 125
      3.11.7) Keep scouts at back of platoon 127
      3.11.8) Platoons with non-Seraphim T1 artillery and no tanks don’t run unless against slower enemy 127
      3.11.9) Factor in nearby platoons when faced with enemies 127
      3.11.10) More T1 arti in platoons once reached certain level of tanks 128
      3.11.11) Don’t treat AA as a direct fire unit when forming a platoon 128
      3.11.12) Build hydro where it’s far away from base 128
      3.12) Expansion bases 129
      3.12.1) Background – expansions and the main base 129
      3.12.2) Having all units treated as available for platoons 129
      3.13) Upgrade ACU with gun and attack 130
      3.13.1) How to upgrade an ACU 130
      3.13.2) Get enough energy to support guncom 131
      3.13.3) Upgrade ACU’s gun once have enough energy 131
      3.13.4) Attack with ACU once upgrade finished 132
      3.13.5) ACU overcharge 133
      3.14) V1-3 release incl AI progress check 133
      3.14.1) Performance – v1-3 of M27AI 133
      3.14.2) Issues and planned improvements from testing 134
      3.14.3) Debug issues and other bug fixes 135
      3.14.4) Attack lauched as soon as ACU gun ready 139
      3.14.5) Default attack-move direct fire units at enemy (attack-move if platoon scattered) 139
      3.14.6) Limit of 1 microbot per early raider platoon, and tank defenders 140
      3.14.7) Skip move location if are closer to the next move location than the first one 140
      3.14.8) Build more engineers if are close to overflowing mass 141
      3.14.9) Add energy storage requirements to ACU initial land factory build order 142
      3.14.10) ACU and Engineers will move near mex to build 142
      3.14.11) Other minor misc changes 144
      3.15) On demand basic pathfinding 145
      3.15.1) Revised approach 145
      3.15.2) Mex raiding path optimisations 146
      3.15.3) Useful maps for testing map based logic 146
      3.15.4) Move to build structure – check pathing 147
      3.15.5) Platoon Merge location – have it check no pathing issues in nearby segments 147
      3.16) AI Overseer - responding to enemy attacks 147
      3.16.1) Overview 147
      3.16.2) Planned initial logic 148
      3.16.3) Run overseer on AI creation 148
      3.16.4) Assigning units to defender platoons 149
      3.16.5) Recording enemy threats 150
      3.16.6) Sending units to deal with enemy threats 152
      3.16.7) Sorting a multi-dimensional table 152
      3.16.8) Disbanded units return to base 154
      3.16.9) Intercepting platoons should leave at least 1 scout when removing spare units 154
      3.16.10) Don’t remove units when in combat 155
      3.16.11) Platoon and other build conditions 155
      3.16.12) Limit number of mobile AA in an intercepting defending platoon 156
      3.16.13) Remove ACU from defender platoon once the threat is dealt with 156
      3.16.14) Don’t have ACU join a platoon if its upgrading 156
      3.16.15) Disabling sorian base manager distress logic 157
      3.17) AI Overseer – Intel and ACU managers 157
      3.17.1) Intel manager - overview 157
      3.17.2) Planned logic – 1-off 157
      3.17.3) Planned logic – recurring 158
      3.17.4) Scout localised platoon AI 159
      3.17.5) ACU manager 160
      3.18) V4 release (incl AI progress check) 161
      3.18.1) Pre-release checklist 162
      3.18.2) AI performance results 163
      3.18.3) Notable issues noted from performance 163
      3.18.4) Resolution of immediate issues/bugs post-release 164
      3.19) ACU –aggression, support and micro enhancements 169
      3.19.1) ACU custom platoon - overview 169
      3.19.2) ACU expansion – choice of location 170
      3.19.3) Platoon completion actions 172
      3.19.4) Expanding more than once 173
      3.19.5) Getting nearby reclaim and/or unclaimed mexes while moving 174
      3.19.6) Assisting hydro construction (reworked) 176
      3.19.7) ACU defender platoon refinements 177
      3.19.8) ACU Scout helper and general scout build order 178
      3.19.9) ACU MAA helper and general behaviour 180
      3.19.10) Air threat assessment and MAA to build (initial) 181
      3.19.11) Large platoon scout and MAA helpers 181
      3.19.12) ACU attacks independently to large attack platoon 181
      3.19.13) ACU Build order tweaks 181
      3.19.14) Aeon ACU gets both gun upgrades 182
      3.19.15) ACU retreat 182
      3.19.16) ACU kiting 182
      3.19.17) Have ACU attack-move if kiting doesn’t return any action 183
      3.19.18) Manual overcharge 184
      3.19.19) Other misc changes/refinements 187
      3.20) V5 release (incl AI progress check) 187
      3.20.1) Pre-release checklist 187
      3.20.2) AI performance results 188
      3.20.3) Resolution of immediate issues/bugs 189
      3.21) V6 - Refinements, basic water based actions, v6 hotfix 189
      3.21.1) Misc refinements pre v6 189
      3.21.2) ACU water based actions – reclaim and move to shore 190
      3.21.3) V6 hotfix 191
      3.21.4) Error fixes subsequent to v6 191
      3.22) V7 - Custom build orders and platoon formers 194
      3.22.1) Proof of concept 194
      3.22.2) Initial complications – LABs and no valid units 196
      3.22.3) Related changes – scout conditions; tracking construction orders 196
      3.22.4) Linking production with threat detection overseer 196
      3.22.5) Increasing indirect fire units based on enemy PD usage 197
      3.22.6) Assign MAA similarly to how scouts are assigned 197
      3.22.7) Platoon former – manually assigning platoons based on threat distance 197
      3.22.8) Try to save raider scouts 198
      3.22.9) Not got enough units for a platoon – send spare units to intel path 198
      3.22.10) Call the platoon former if disband a platoon containing combat units 198
      3.22.11) Platoon merger – Periodically combining attack platoons where they’re nearby 198
      3.22.12) Delayed platoon formation 199
      3.22.13) Factories away from main base or with nearby enemies don’t build engineers 200
      3.23) V7 - Engineer overseer 200
      3.23.1) Overview 200
      3.23.2) Spare engineer action logic 200
      3.23.3) Nearby enemy logic 201
      3.23.4) Unclaimed mex logic 201
      3.23.5) Threat detector – adjust distance calculation and record 201
      3.23.6) Update engineer names to reflect their action 202
      3.23.7) Clear unit actions if factory idle (unexpected bug workaround) 202
      3.23.8) Have ACU assist assigned hydro builder and build land factory 202
      3.23.9) Retain existing engineer assignments in favour of nearest engineer 203
      3.23.10) Power assignment – longer term requirement check 204
      3.23.11) Optimisations and rollbacks 204
      3.23.12) Adjacency refinements 204
      3.23.13) Misc changes 205
      3.23.14) If an engineer changes its action and its being guarded, clear the current action and commands of the guards so they can be reassigned 205
      3.23.15) Consider engineer actions as soon as a factory finishes construction 206
      3.23.16) Constructing building – first check if part-complete similar building 206
      3.23.17) Building more engineers 206
      3.23.18) Engineers take into account ACU expansion path 207
      3.23.19) Initial engineers keep building mexes until they die or half the map is covered 207
      3.23.20) Have engineers queue up nearby unclaimed mexes and multiple T1 power 207
      3.23.21) Build a second power at the same time 208
      3.23.22) Build more energy storage based on power income 208
      3.24) V7 - Building Upgrade overseer 208
      3.24.1) Overview 208
      3.24.2) Refinements 209
      3.24.3) Have engineer overseer switch to assisting an upgrade instead of building a land factory 209
      3.24.4) Pause upgrade if low on resources (and track so can resume later) 209
      3.24.5) Mass stall – pause factories over mexes 210
      3.25) V7 - Idle platoon 210
      3.25.1) Army pool platoon and new idle platoon 210
      3.25.2) Approach 211
      3.26) v7 - Misc changes 211
      3.26.1) ACU is removed from defender platoons when allocating new threats 211
      3.26.2) Allocating overseers to different ticks 211
      3.26.3) Have defender platoons move in formation 212
      3.26.4) State of game log 212
      3.26.5) Intel path – allow scouts to move +/- 1 path 212
      3.26.6) ACU shots blocked 212
      3.26.7) Enemy ACU threat increase 213
      3.27) V7+V8 release (incl AI progress check) 213
      3.27.1) V7 - Minor enhancements to overseers due to testing (pre-release) 213
      3.27.2) Tracking revision 213
      3.27.3) Choosing nearby engineers based on mex location 214
      3.27.4) Pre-release check results 214
      3.27.5) V8 Hotfix – crash 215
      3.27.6) Other bugs – fixed in v9 215
      3.27.7) Other misc changes for v9 219
      3.28) V9 - Air scouting 220
      3.28.1) Determining when we last scouted an area 220
      3.28.2) How often we want to scout areas 221
      3.28.3) Deciding on nearest mex targets 222
      3.28.4) Deciding which area to scout first 222
      3.28.5) Adding via points to journey 223
      3.28.6) Take a detour if a scout has died 223
      3.28.7) Produce air factory 223
      3.28.8) Ignore locations too far away 224
      3.28.9) Number of air scouts wanted: 224
      3.28.10) Air factory unit builder 224
      3.28.11) Available scouts – factor in fuel and make use of air staging 224
      3.29) V9 - Air overseer – Bombers and Inties 225
      3.29.1) Generalised scout/air unit management 225
      3.29.2) Find targets for bombers 225
      3.29.3) Determine available bombers 225
      3.29.4) Assign targets to bombers 225
      3.29.5) Bomber production 226
      3.29.6) Make mexes nearer enemy base high priority scout target if idle scout and bomber 226
      3.29.7) Target power if no other targets 226
      3.29.8) Interceptor basic logic: 226
      3.29.9) Interceptor tracking: 227
      3.29.10) Inties built if not enough to meet current air threats 227
      3.29.11) Don’t build bombers if last 3 that died were ineffective 227
      3.30) V9 Release 228
      3.30.1) Pre-release checklist 228
      3.30.2) Post-release bug fixes 228
      3.30.3) Misc tweaks 229
      3.30.4) Initial build order done via my code 230
      3.31) V10 - Air overseer – minor enhancements 231
      3.31.1) Air scouts clear current target if it’s already been scouted recently 231
      3.31.2) Stop inties chasing enemy air to other side of map 231
      3.31.3) Send idle air units to refuel if they have <70% fuel or <80% health 231
      3.31.4) Surplus bomber attack 231
      3.32) V10 - Indirect fire units 232
      3.32.1) Indirect fire overseer/enhancements to threat detection 232
      3.32.2) Prioritise shields and TMD if near current target and wouldn’t cause us to come within range of an enemy PD 235
      3.32.3) Instead of using the average position of a platoon, use the position of the front units 236
      3.32.4) Improved ACU protection logic 236
      3.32.5) Raider/large related attack/run logic 237
      3.32.6) Pathfinding issues 238
      3.32.7) Disband indirect defenders if their current threat group is all dead 238
      3.32.8) Don’t issue override orders from the overseer if a platoon is attacking or running 238
      3.32.9) Syncronised attacks 239
      3.32.10) Include nearby defensive type structures when assessing PD threat 239
      3.32.11) Minor refinements 239
      3.32.12) Escort expanding engineers with 1 tank 240
      3.32.13) Remove escorts if too many 240
      3.32.14) Target upgrading ACU 241
      3.33) V10 - Strategic choices – switching to eco 241
      3.33.1) Stop building tanks and upgrade sooner if have map control 241
      3.33.2) Switch to eco if we have no core platoons we want tanks for 241
      3.33.3) Eco strategy – focus on defence with minimal raiders 241
      3.33.4) Upgrade factories to non hq factories once we have an hq 241
      3.33.5) Switch to eco if mex income not increased recently 242
      3.33.6) Don’t upgrade buildings near the frontline 242
      3.33.7) After upgrading a factory, build an engineer and power as a high priority 242
      3.33.8) Have spare combat units patrol around the mex on our side nearest the midpoint if in eco mode 242
      3.33.9) Keep building tanks in eco mode if we have high mass 243
      3.34) V10 Release 243
      3.34.1) Pre release checks 243
      3.34.2) AI Tournament performance 243
      3.34.3) Bug fixes 244
      3.34.4) Minor enhancements 246
      3.35) V11 - Pathfinding 3rd attempt 247
      3.35.1) Background 247
      3.35.2) Information wanted from pathfinding 248
      3.35.3) Can we path from A to B 248
      3.35.4) Pathing results 255
      3.35.5) Amphibious pathfinding 258
      3.35.6) Naval pathfinding 262
      3.35.7) Summary of time taken to generate level 1 pathing 263
      3.35.8) Optimisation – function integration 263
      3.35.9) Update existing code to make use of new logic in place of CanPathTo 264
      3.35.10) Update intel logic to determine intel paths at start of game 264
      3.35.11) Further changes – v11-v12 264
      3.35.12) V13 Issues – Serenity Desert 265
      3.35.13) V13 - Double-check all mex positions are pathable 265
      3.35.14) Manual height adjustment 267
      3.36) V11-v12 Releases – Mass storage, Anti-Nuke, Misc 267
      3.36.1) Further bug fixes 267
      3.36.2) Basic Anti-experimental and nuke logic 268
      3.36.3) Cap mexes with mass storage 269
      3.36.4) Factor in energy income before having engineers upgrade 269
      3.36.5) Other misc changes 269
      3.36.6) V12 release: Pre release checks 270
      3.36.7) Bug fixes 271
      3.36.8) Misc changes for v13 272
      3.37) V13 - Anti-Navy logic 273
      3.37.1) Navy threat detection overseer 273
      3.37.2) Build more air factories if significant shortfall in air units wanted 274
      3.37.3) Build radar at base once we have enough power 274
      3.37.4) Only produce amphibious land units if we can’t path to the enemy base 275
      3.38) V13 Release 275
      3.38.1) Post release bug fixes 275
      3.38.2) Misc changes 278
      3.39) V14 - ACU Upgrades 280
      3.39.1) Issuing an upgrade 280
      3.39.2) ACU requests help when damaged 280
      3.39.3) Mid-tier ACU upgrades 281
      3.39.4) Only upgrading if we can attack approaching enemy units 281
      3.39.5) Spare engineers don’t assist anything if ACU upgrading and we have low mass 281
      3.39.6) Disable reclaim and building functionality if ACU has big gun (sera+cybran) 281
      3.39.7) ACU won’t get slow upgrades unless it’s closer to our base than the enemy 281
      3.40) V14 - Mobile shields 282
      3.40.1) Shield platoon 282
      3.40.2) Shield production: 282
      3.40.3) Assign mobile shields to T2+ mexes if TML detected 283
      3.40.4) Other platoon changes 283
      3.40.5) Misc changes 283
      3.41) V14 - Assign land scouts to mexes 284
      3.41.1) Assign scouts to mexes and adjust upgrade logic 284
      3.41.2) Build scouts based on numbers needed 284
      3.41.3) Create new platoon logic for guarding a mex 284
      3.41.4) Only upgrade mexes if they are close to base or have intel coverage 284
      3.42) V14 - Anti-bomber logic 285
      3.42.1) Micro to dodge bombers 285
      3.42.2) Working out the position a unit is facing, and how that compares to another location 285
      3.43) V14 - All-in attack on ACU 287
      3.43.1) Deciding whether to launch an all-in attack 287
      3.43.2) Platoon and unit actions 287
      3.43.3) Production and upgrade logic 288
      3.43.4) Platoon formation 288
      3.43.5) Misc refinements 288
      3.44) V14 Release 289
      3.44.1) Pre-release checks 289
      3.44.2) Bug fixes post release 289
      3.44.3) Misc changes/tweaks 291
      3.45) V15 - Profiler 293
      3.45.1) Profiler 293
      3.45.2) Function count and time per tick 294
      3.45.3) Initial results (with no optimisation) 294
      3.45.4) Softles profiler 301
      3.45.5) Conclusion – functions to focus on 303
      3.45.6) Optimisation: Reclaim 303
      3.45.7) Optimisation: GetIntelCoverageOfPosition 303
      3.45.8) Optimisation – high usage functions 304
      3.45.9) Optimisation: GetNearestEnemyIndex 305
      3.45.10) Optimisation: AddNearbyUnitsToThreatGroup 306
      3.45.11) Optimisation – moving near a target and initial optimisation results 306
      3.45.12) Optimisation – GetPriorityExpansionMovementPath (part 2) 307
      3.45.13) Results of optimisation to date and reclaim adjustments 308
      3.45.14) Summary of time taken by different logic areas 313
      3.46) V15 - New reclaim logic 313
      3.46.1) Shortlist of reclaim locations 313
      3.46.2) Assignment 315
      3.46.3) Localised reclaim logic 315
      3.46.4) Reclaim tracking and checks 316
      3.46.5) Other Reclaim functions 316
      3.46.6) Further optimisation 317
      3.47) V15 Release, and v16-18 Hotfix releases 318
      3.47.1) Pre-V16 release bug fixes 319
      3.47.2) Pre-V16 release misc changes 319
      3.47.3) Intel path rewrite 319
      3.47.4) V16 Hotfix release 320
      3.47.5) Pre-v17 hotfix release bug fixes 320
      3.47.6) Pre-V17 hotfix release - Other misc changes 321
      3.47.7) V17 Hotfix Pre-release checks 322
      3.47.8) V18 Hotfix 323
      3.47.9) Post v18 bugfixes 323
      3.47.10) Misc changes 324
      3.48) V19 - Rally points 325
      3.48.1) Choice of rally point 325
      3.48.2) Use of rally points 326
      3.48.3) ACU Anti-TML Logic – retreat to rally point 327
      3.49) V19 - Air dominance strategy and bomber changes 328
      3.49.1) Conditions for switching to air dominance 328
      3.49.2) Production and upgrade changes 328
      3.49.3) Air AA targeting changes 329
      3.49.4) Bomber targeting changes 329
      3.49.5) Initial build order changes 329
      3.49.6) Bomber – ‘hard to hit’ target logic 330
      3.49.7) Other bomber changes 330
      3.50) V19 Release 331
      3.50.1) Pre-release checks 331
      3.50.2) Post-release bugfixes 332
      3.50.3) Misc fixes 333
      3.51) V20 - Experimentals 333
      3.51.1) First experimentals 333
      3.51.2) V20 Pre-release checks 334
      3.51.3) Progress assessment 335
      3.51.4) Post-release bug fixes: 336
      3.51.5) Post release misc changes: 337
      3.52) V21 - Improved ecoing 339
      3.52.1) Build order and eco adjustments 339
      3.52.2) Powerstall management 339
      3.52.3) Reclaiming redundant buildings 340
      3.52.4) Ctrl-K mexes 341
      3.52.5) Other engineer and upgrade improvements 341
      3.52.6) Tracking eco performance progress 342
      3.53) V21 - ACU protection strategy and v21-v23 release 343
      3.53.1) SML ACU protection logic 343
      3.53.2) Dedicated ACU protection mode 343
      3.53.3) V21 Pre-release checks 344
      3.53.4) Post-release changes: Bugfixes 344
      3.53.5) Post-release changes: Misc 345
      3.53.6) V22 Pre-release checks 347
      3.53.7) Post-release bugfixes 348
      3.53.8) Post-release misc changes 349
      3.54) V24 - Early T3 bomber 349
      3.54.1) Prioritise airHQ if enemy is vulnerable to strat bombers 349
      3.54.2) Assisting HQ upgrades 349
      3.54.3) Initial engineers 350
      3.54.4) Scouting 350
      3.54.5) Factoring in bomber success to air factories wanted 350
      3.54.6) Prioritising power over HQs sometimes 350
      3.54.7) Minor eco improvements 350
      3.54.8) Best bomb location 351
      3.54.9) Clear path for bomber 352
      3.54.10) AirAA Support adjustments 352
      3.54.11) Targeting shielded units 353
      3.54.12) Other bomber and air changes 353
      3.55) v25 – Misc issues 355
      3.55.1) Bug fixes 355
      3.55.2) Initial build order changes 356
      3.55.3) Land combat and ACU related 357
      3.55.4) Intel related 358
      3.55.5) Engineer related 359
      3.55.6) Factory production related 360
      3.55.7) Threat response 360
      3.55.8) Air related 360
      3.55.9) Economy upgrade related 362
      3.55.10) Optimisations 362
      3.55.11) Misc/General logic changes 363
      3.55.12) V25 pre-release checks 363
      3.56) V26 – Nukes, shields and novax 364
      3.56.1) Bugfixes (post v25 release) 364
      3.56.2) Misc changes (post v25 release) 365
      3.56.3) When to start a late game unit 367
      3.56.4) Impact on normal build logic 367
      3.56.5) What experimental unit to build: 367
      3.56.6) Nuke launcher construction logic 368
      3.56.7) Nuke launcher targeting logic 368
      3.56.8) Fixed Shield generators 368
      3.56.9) Novax – decision to construct 369
      3.56.10) Novax - Usage 369
      3.56.11) Pre release checks 371
      3.57) V27 – T3 Arti 371
      3.57.1) Bug fixes 371
      3.57.2) Misc changes 373
      3.57.3) Revised overcharge logic 375
      3.57.4) Failed optimisation attempt 376
      3.57.5) UEF remaining late game logic 380
      3.57.6) Pre release checks 381
      3.58) v28 – Compatibility/game options 382
      3.58.1) Bugfixes 382
      3.58.2) Misc changes 383
      3.58.3) Improved nuke logic 384
      3.58.4) Improved logic where we can’t path to the enemy base 384
      3.58.5) Changing focus when an enemy is nearly defeated 385
      3.58.6) Scenario info settings – non-assassination game modes 386
      Other game setting – Unit restrictions 387
      Extra support for mods 388
      Other game setting support – Norush timer 389
      3.58.7) Pre-release checks 390
      3.59) V29 – Optimisation (again) and TMD 391
      3.59.1) Bug fixes 391
      3.59.2) Misc changes 391
      3.59.3) Identifying sim mods 392
      3.59.4) Random optimisation – GetBlueprint and GetUnitId 392
      3.59.5) Reclaim optimisation (again) 394
      3.59.6) NewMovementPath optimisation 398
      3.59.7) Optimisation – engineer logic – Initial changes 398
      3.59.8) New basic profiling check – total game time 401
      3.59.9) Optimisation - Idle engineers 402
      3.59.10) New optimisation feature – showing the ms at a point in time 403
      3.59.11) Platoon raiding 403
      3.59.12) Anti-Mercy logic 405
      3.59.13) TMD 405
      3.59.14) Pre-release checks 409
      3.60) V30 – Czar, Soulripper and defence 409
      3.60.1) Bug fixes 409
      3.60.2) Misc changes 410
      3.60.3) Enemy cloaked com 411
      3.60.4) Fatboy logic enhancements 411
      3.60.5) Reclaim tweaks 412
      3.60.6) ACU running from enemy experimental threats 413
      3.60.7) Non-UEF choice of experimental 413
      3.60.8) Cybran experimental gunship logic 413
      3.60.9) Czar 414
      3.60.10) Further tweaks to czar and soulripper logic 414
      3.60.11) Building SAMs 415
      3.60.12) Building PD 415
      3.60.13) Pre-release checks 416
      3.61) V31 – Bombers, TML and late-game 417
      3.61.1) Bug fixes 417
      3.61.2) Misc changes 419
      3.61.3) Misc improvements to late game 421
      3.61.4) New bomber logic: Initial bombers 422
      3.61.5) New bomber logic: T1 bombers (general) 423
      3.61.6) New bomber target logic: T2 bomber 423
      3.61.7) New bomber target logic: T3 bomber: 423
      3.61.8) Other air changes 425
      3.61.9) T4 bomber targeting and usage 429
      3.61.10) New Logic for land experimental attacks 430
      3.61.11) Co-ordinated T3 arti and novax targeting 430
      3.61.12) TML 431
      3.61.13) Pre-release notes 432
      3.62) V32 – Plateaus 433
      3.62.1) Bug fixes 433
      3.62.2) Misc changes 434
      3.62.3) Transports 436
      3.62.4) Identifying plateaus of interest 436
      3.62.5) Building engineers and transports 437
      3.62.6) Managing transports 437
      3.62.7) Plateau logic - engineers 438
      3.62.8) Plateau logic - factories 438
      3.62.9) Plateau platoon logic 439
      3.62.10) Plateau logic – other 440
      3.62.11) Pre-release checks 440
      3.63) V33 – Hotfix 441
      3.63.1) Bug fixes 441
      3.63.2) Misc changes 443
      3.63.3) Pre-release checks 444
      3.64) V34 – Firebase and shield assisting 445
      3.64.1) Bug fixes 445
      3.64.2) Misc changes 446
      3.64.3) Dynamic Firebases 448
      3.64.4) Shield assisting/Arti war enhancements 450
      3.64.5) Pre-release checks 451
      3.64.6) Acknowledgements 452
      3.65) V35 – Turtling (i.e. pre-planned firebase) 452
      3.65.1) Bug fixes 452
      3.65.2) Misc changes 454
      3.65.3) Identifying a chokepoint 455
      3.65.4) Factory build conditions and turtle mode 456
      3.65.5) ACU T2 upgrade rush, construction and enemies 456
      3.65.6) Defensive ranges and other changes 456
      3.65.7) Firebase fortification logic 457
      3.65.8) Platoon logic adjustments 457
      3.65.9) Other firebase related changes 457
      3.65.10) Pre-release checks 458
      3.65.11) Acknowledgements: 460
    4. Future possible changes 460
    5. Index of useful functions 532
      5.1) Map, game setup and general aiBrain information 533
      5.1.1) aiBrain - general 533
      5.1.2) AI Brain – Economy 535
      5.1.3) Map Markers and start positions 536
      5.1.4) Map size and playable area 537
      5.1.5) Terrain info 537
      5.2) Getting a list of units by category, location, or other method 538
      5.2.1) All units that meet a particular category 538
      5.2.2) Units at/near a location 539
      5.3) Unit information 540
      5.3.1) Units on radar 540
      5.3.2) Blueprints and unit categories 540
      5.3.3) Unit upgrades (enhancements) 541
      5.3.4) See 5.4.10) Other unit commands 542
      5.3.5) Location and pathfinding 542
      5.3.6) Unit’s ai Brain owner 542
      5.3.7) Unit’s current commands and whether it’s alive 542
      5.3.8) Unit bones 542
      5.3.9) Shields 543
      5.3.10) Units with missiles/anti-nukes 543
      5.3.11) Unit resource usage 543
      5.4) Unit and platoon commands 544
      5.4.1) Building 544
      5.4.2) Assisting 544
      5.4.3) Pausing 544
      5.4.4) Reclaim 545
      5.4.5) Factory specific commands 545
      5.4.6) Movement and attack-move 545
      5.4.7) Transport 546
      5.4.8) Combat related 546
      5.4.9) Stopping 547
      5.4.10) Other unit commands 547
      5.4.11) Upgrades and enhancements 547
      5.4.12) Current commands and targets 547
      5.4.13) Unit status 548
      5.4.14) Change a unit’s name 549
      5.5) Platoon additional functions 549
      5.5.1) Units platoon handle 549
      5.5.2) Get AIBrain 549
      5.5.3) Get units in a platoon 550
      5.5.4) Disband 550
      5.5.5) Platoon exists 550
      5.5.6) Platoon position 550
      5.5.7) Get all platoons 550
      5.5.8) Platoon ai plan name 550
      5.5.9) Add units to a platoon 550
      5.5.10) Army pool and removing units from a platoon 551
      5.5.11) Create a platoon 551
      5.5.12) Change or reset an AI plan 551
      5.5.13) Platoon movement formation 551
      5.6) Weapon information 551
      5.6.1) Get a unit’s weapon 551
      5.6.2) Get information on that weapon 552
      5.7) Time and thread related 552
      5.7.1) Game time 552
      5.7.2) System time 552
      5.7.3) Wait/delay the code 553
      5.7.4) Fork thread (run independently) 553
      5.8) Events 553
      5.8.1) Creating custom events 555
      5.9) Other 556
      5.9.1) Visual changes – Draw Circles and Lines 556
      5.9.2) On Intel Change 556
    posted in AI development •
    RE: Aeon: effort vs. reward (average-ish player?)

    Aeon gun's increased range is massive - you can reliably kite enemy guncoms with it, and they're forced to either hope you slip up with the kiting (letting them get within range), have a load more nearby units to charge at you, or get enough T2 PD up to stop you. Oh and a cost decrease to gun upgrade is a buff to the gun upgrade.

    Aurora I don't like but it does at least give a clear difference to the other factions who all have a very similar main tank.

    Mercy - discussed a load in a separate threat - I'd prefer the oppsosite of your suggestion - instead of making them survive against MAA, make them die to MAA. IMO if the enemy has MAA by their com it should counter mercies. Making Mercies able to tank T1 MAA shots for a while would make them insane.

    GC - It gets omni and the claws, which are really powerful against some matchups. As an extreme (unlikely) scenario - I can beat other land experimentals with certain SACU mass equivalent combinations. Try that against a GC and it'll easily crush them due to its claws [Edit: Forgot that the sandbox scenario I was recalling was UEF Shield SACUs with Percies underneath them and for some reason thought the claws got the SACUs - instead it got the shielded percies]. It also easily beats a monkeylord, and its 'crush when walking' is more meaningful due to its huge HP.

    Czar - compare this to soulripper, there's just no contest. It's incredibly versatile - you can charge at the enemy com under shields with SAMs nearby and kill it (try that with a soulripper and you've just given them a big mass donation). You can kite enemy asfs with it; you can use it in a more attritional style thanks to its shield; you can do surprise attacks by storing air units inside it, etc.

    posted in Balance Discussion •
    RE: Influx of Pro-Putin/Anti-Ukraine behavior in chat and game title

    @cpt_cnullrufs sports are banning players that are representing Russia from competing. Big difference to banning/discriminating against someone just because they live in Russia which is what you seem to be suggesting.

    posted in General Discussion •
    RE: AI Development Guide and M27AI v35 Devlog

    V10 - Implemented anti-turtle logic:

    • Use of T2+T3 MMLs and mobile arti to break firebases
    • Ecoing (not very well, but better than before)
    • Reduced turtle feeding

    Misc changes:

    • Large bomber attack for if we end up with lots of spare bombers
    • T3 air factories can be built/upgraded
    • Support factories will be built/upgraded instead of HQs
    • Higher tier power is built sooner
    • Engineers can request guards
    • Various bug fixes (see section 3.30.2 of the guide)
    • Updated the guide with details on how to run in FAF Develop offline

    My AI also has a new icon 🙂

    M27AI.jpg


    For anyone that's interested in the background to the last 5 versions/2 months - back at v5 I was crushed by gunner1069 (I usually get them to play a match every couple of weeks against the latest AI version) with a simple turtle strategy on Theta Passage - they didnt bother getting any mexes and instead just rushed T2 PD with their ACU and my AI had no answer despite having 4x the mass income. My primary focus in all the versions since then has been coming up with the logic that will give my AI a chance in that scenario.

    Unfortunately, a relatively simple plan for a human (dont send units single-file into PD, upgrade mexes and then attack with MMLs) required a bunch of different bits of logic:

    • Checking for PD and running away from it (so the enemy isn't fed kills/mass), without running away when we're already in range of it and able to beat it (I had some frustrating to watch games where my AI would charge in at a firebase, overwhelm the shields, be about to destroy everything, before deciding to run and turning a winning position into a loss)
    • Realising there's PD when it kills our land scouts without being picked up by their radar
    • Making use of air scouts to reveal 'hidden' PD to avoid suiciding units and the ACU into the PD
    • Quickly expanding to uncontested mexes (including on enemy side of the map)
    • Focusing on maintaining map control and ecoing if faced with a turtle rather than trying to break them immediately, which in turn requires various logic for identifying if we're against a turtle, upgrading mexes, building T2+ buildings, upgrading factories, making use of support factories, etc. (I've still not got basic things done like capping mexes with mass storage)
    • Using indirect fire units to attack PD/long range enemy units while both protecting them from enemy mobile attacks, and not suiciding our own units trying to protect them

    These changes also mean my AI will be worse in other situations - e.g. against a non-turtle it might choose to eco when it would be able to finish the game by pressing the attack, and it's also still poor at the mid-T2+ stage so extending the game via ecoing means it's more likely to snatch defeat from the jaws of victory. Long term though it needed to happen as a 'T1 or die' strategy only has a decent chance on 5v5 maps.

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

    v22-v23 Update
    There was no particular theme to these changes, other than that most of them arose from watching mistakes my AI made on a 1v1 against another AI on Burial Mounds

    • Tanks can now suicide (sometimes)
    • Fixed bug with power stall manager that made it far less effective; minor tweaks to this to prioritise HQ updates and initial engineer production (to allow more efficient power)
    • Minor logic improvements to experimentals (stopping them from trying to kite, making monkeylord move instead of attack-moving)
    • Ignoring PD that cant be pathed by land (so MMLs etc. arent overbuilt trying to counter it - relevant in particular for Burial Mounds)
    • Various tweaks to air logic (more likely to refuel, target transports with AA, make use of stealth)
    • More accurate logic for whether reclaim is within range (thanks to Marlo and Jip who helped me figure out how to determine the size of a reclaim object)
    • Another rework of my land scout 'intel path' logic - it should now form a path along the shoreline on island maps
    • Bugfix that caused my threat response logic to view each unit individually instead of grouping threats together
    • Various other bugfixes and tweaks

    Although there was no big area of focus with this release, I did manage to achieve one of my long term goals with it, beating gunner1069 (the human sparring partner who usually plays a match against each version of the AI; they're a 1.1k global from playing astro exclusively, with their preferred tactic being to turtle - originally they played M27AI on Theta Passage, until around v10 when M27AI would fare well against their turtling on conventional maps, at which point they switched to Astro Craters).

    Winning against a turtle on Astro Craters is harder than a normal map, since the normal advice against a turtle is to avoid attacking them, out-eco them with your map control (since T1 mexes are far cheaper per mass generated than T2 mexes), and then attack with an overwhelming force. Obviously this doesn't work so well if gaining map control just means you have 21 mexes to their 19. There are still plenty of flaws with my AI that a good astro player could exploit to win, but it can now at least offer a challenge on the map against weaker players.

    V23 hotfix - Thanks to relent0r for flagging - there was a bug in v22 which caused my T1 platoon formers to not work, which should be fixed now.

    posted in AI development •
    RE: Weekly AI Tourney Series

    AI biweekly/monthly tourney: 20km Combined arms
    The theme of this map was 20km maps that allow use of land, navy and air. The maplist chosen was:

    • Crossfire Canal - FAF version
    • Norfair
    • The Ditch - FAF version
    • Setons Clutch - FAF version
    • The Bermuda Locket - FAF version

    Setup
    Setup is similar to the last tourney - 12 AIs are split into 4 groups. The weakest 4 are eliminated in the first round, with the winners from one group fighting the runners up from the other in the quarter-finals in 3 matches.
    As there were 5 maps, maps were chosen randomly for the group and quarters, and then for the semis and finals each map was played.
    Starting positions are the default first and second positions set by the map (e.g. on Setons this means a 'mid vs mid' battle)

    Changes to AI
    5 of the featured AI have released new versions since the last tourney: M27, Swarm Terror, SCTA Arm, Sorian Edit, SCTA Core

    The results
    Group stages

    Group AI name Wins
    1 M27 4
    1 DilliDalli 2
    1 SCTA Core 0
    2 Swarm Terror 4
    2 Sorian Adaptive 2
    2 Sorian Edit 0
    3 Dalli 3
    3 Dilli 2
    3 Adaptive 0
    4 RNG Standard 4
    4 SCTA Arm 2
    4 AI: Turtle 0

    Quarter finals

    AI Name Wins AI Name Wins
    M27 3 Dilli 0
    Swarm Terror 3 SCTA Arm 0
    DilliDalli 3 Dalli 0
    RNG Standard 3 Sorian Adaptive 0

    Semi finals

    AI Name Wins AI Name Wins
    M27 5 Swarm Terror 0
    DilliDalli 5 RNG Standard 0

    Finals

    AI Name Wins AI Name Wins
    M27 5 DilliDalli 0

    Total wins by AI

    AI Name Wins Win %
    M27 17 100%
    DilliDalli 10 59%
    RNG Standard 7 58%
    Swarm Terror 7 58%
    Dalli 3 43%
    Dilli 2 29%
    Sorian Adaptive 2 29%
    SCTA Arm 2 29%
    Sorian Edit 0 0%
    SCTA Core 0 0%
    Adaptive 0 0%
    AI: Turtle 0 0%

    Detailed results
    The full results can be seen in the 'DetailedResults' worksheet of the following file:
    https://docs.google.com/spreadsheets/d/1i2ObsZ49S9gUTgWw0E68qZ8VrOkaP_Jk/edit?usp=sharing&ouid=100973959280546778272&rtpof=true&sd=true

    Other Observations

    • While some AI attempted to build navy, in all cases it proved ineffective with the mass invested in navy far exceeding the mass killed. Neither of the finalists built a single naval unit the entire tourney.
    • The finals were closer than the scoreline suggests, with DilliDalli dominating land on most of the maps and winning map control (e.g. holding 5 out of the 6 islands at one point on Crossfire Canals, and effectively raiding and even claiming mexes behind M27's main base on Setons). The finals ended up being an air vs land contest on most maps.
    • SCTA Arm managed to have 2 T3 tanks solo a GC (GC's shot was blocked by cliffs) but it wasn't enough to let it claim a win
    • Heroic unit of the tourney: DilliDalli's lone striker vs M27 on Setons which managed 19 kills and 1,720 mass kills raiding mexes
    • Notable changes in fortunes: Swarm managed a turnaround in speed, going from the slowest AI to claim wins in the last tourney to getting the second fastest win (11m21, beaten only by Dilli who got a win in 10m48)
    posted in AI development •
    RE: Noob matchmaker queue

    @BlackYps
    I fail to see how anyone could argue astro craters is like sim city with a straight face, even allowing for the way in which many people here (as shown on this thread amongst others) seem to look down with disdain on those of us that play such maps (even though they appear to be the most popular types of maps on FAF, at least for custom games). There's more variety in the gameplay on astro than the majority of 1v1 maps on ladder for those not in the highest ratings , where in most cases for ladder it's a case of 'T1 land spam or die' (with having a good APM being far more significant than making good strategic decisions). Perhaps you've just not played enough astro games to appreciate the range of strategies on it (since if you're using your main profile you don't appear to have any games on the map).

    I'd have also thought a focus on "the kind of players that faf wants to attract" (in the context of not wanting to attract people who don't like high APM play) very shortsighted. The more people who play faf (in a non-toxic way) the better its longevity/future prospects. Just using myself as an example, while I may play mostly astro I also sometimes play some 1v1 ladder. I doubt I'm the only person who has a favourite style of map such as astro/gap/setons but who also likes to sometimes play other maps or game modes. If all such players were to leave faf because we're 'not the kind of players that faf wants to attract' you get fewer people playing those maps/game mods you approve of such as 1v1 matchmaker.

    I also don't understand the logic proposed both here and in the PC election thread for removing the global ranking system. If you had a team of rank 1500s on astro or dual gap against a team of rank 500s (global rating), almost every time the 1500 ranks would crush the 500 ranks. While you may have a greater variance in ability (especially at lower ratings) than with a 1v1 rating, the rating is still a far far better guide to how well someone will play than having no rating at all. Removing the rating just seems like a way of punishing people who are playing maps that don't meet the personal preferences of those suggesting its removal, especially given how bad opti-balance is at balancing a game when you have newer players. As for manually balancing based on knowledge of players, the majority of my games have been from where I've hosted an all welcome lobby, but on average I won't recognise the names of the majority of people who join, and even of those whose names I recognise I'll only know how well some of them play/favoured strategies (there's probably only 4-5 people I could think of off the top of my head where I know how they tend to play and how good that style of play is).

    Going back to the OP, while I'd like the idea of an option to play 'lower APM' 1v1 maps (as opposed to currently where I can be given a 1v1 map on a map that's normally seen in the custom lobby as a 3v3 or 4v4 map), and think it would be a more gentle introduction to newer players, if implemented it'd need to be as an option on the existing matchmaker (e.g. you check the box for if you want to play 'new player friendly only' maps, and/or if you're open to playing the full map pool), or else you dilute the number of people on matchmaker even further.

    Since as I understand it something a bit like this is meant to happen (I don't think it's working well if it is though), it may be easier to just improve the current system of starting with a small map pool and then adding more complex maps as rating rises.

    The 'stone age' mode also sounds like an interesting idea for teaching the gameplay style that's required for 1v1, although I'm not sure how best it would be implemented (if as an option, people may just not choose it and/or it splits the pool of people queuing too much and makes finding games harder; if its as a tutorial mode with AI then people may not be aware of it and/or the AI may not offer enough of a challenge; if it's forced for the first x games then it could put off people who want to experience the full range of options and not be limited to the first tier).

    posted in Suggestions •
    RE: Sparky Rationalization

    The problem I've with them whenever I've got them is that a normal T2 engineer is often better at the role that it feels the sparky should be there to fill (frontline engineer firebase builder), and the main reason is the lack of intel.

    I'd therefore be fine with them either having an increase to their radar range to 50, or to allow them to build t1 radar. That way they keep their unique feel (they cant build power or factories), but can still build a firebase that can actually detect units within range of PD. T1 radar is also arguably more of a defensive structure, so still fits with the theme of an engineer only being able to build defences.

    Making them just another engineer (that can build everything) just with more health would mean they lose what makes them unique, even if from a balance perspective it might not be a big boost to them.

    posted in Balance Discussion •

    Latest posts made by maudlin27

    RE: AI Development Guide and M27AI v35 Devlog

    v35 - pre-planned firebases
    Part 2 of my turtling logic - this time M27 will preemptively setup a firebase at map chokepoints. It only works on very simple chokepoints (e.g. Astro and Fields of Isis; there will be a number of other chokepoint maps which it doesnt detect/work on), and I'm not even sure if it is beneficial even on these maps (it has a slight boost in performance against AI but that's to be expected as most AI will suicide units into the firebase - for example it was sometimes able to beat DilliDalli AiX 2.0 on Astro Craters. It's eco performance suffers massively from spending so much on the firebase though)

    Other changes:
    24 Bugfixes, including

    • Novax and T3 arti targeting (Novax would go to a unit's original position; T3 arti could sometimes error out when selecting a target)
    • Fatboy run logic (that'd cause them to flee in terror from the slightest enemy threat)
    • Issues with the power-stall manager, in particular a miscalculation of the energy usage of SMD and SMLs
      22 Misc changes, including:
    • Air factory builder tweaks so air scouts are more likely to be built, and so the air factory and intie should be rushed if enemy air units are detected early in the game
    • Making ACU more aggressive if the enemy doesn't have T3 units

    Acknowledgements:

    • Jip – Replay that resulted in an error relating to a land factory being built on a plateau where the pathfinding didn’t work.
    • JantDarvus – replay highlighting M27’s vulnerability to early jesters
    • Relent0r – highlighting issue with fatboys retreating, and issue with Ythotha’s attack-moving (I’ve decided to park the Ythotha point as a potential future change as I think I want experimentals to attack most of the time, except when there’s a Ythotha death-ball nearby)
    • Spyro – Replay where M27 may have caused a hard-crash (It's not clear from analysing the replay if M27 caused the crash or if it was a separate occasional error that happens with FAF where M27 isnt active, but the replay highlighted a few errors/issues)
    posted in AI development •
    RE: Assisting Factories Inherit Control Groups

    Re point 1 (inheriting control groups) I might have my factories go to different locations on the map so would want them to have different control groups.

    Re point 2, if I select units and give them a control group I expect that to overwrite any existing groups. With your suggestion it sounds like that would be actively prevented.

    3 I wouldnt have an issue with

    If points 1 or 2 were to be implemented I’d want it to be as a ui mod or togglable preference

    posted in Suggestions •
    RE: Cybran Acu upgrades

    60 according to the blueprint, so getting gun nerfs torpedo?!

    posted in General Discussion •
    RE: No draw

    Seems like a change that would make things worse not better. If I have 100 health less than the enemy acu when I die why should I lose when they should die to the explosion? You can just play non-assassination custom games if you dont like drawing games when both ACUs die at the same time.

    As already mentioned by pearl the potential for a draw also increases the strategic options by allowing you to try and push for a draw if you think you’re behind

    As for lower ranked players gaining rating, the rating system will deal with this automatically-theyll end up losing more of the games where they cant force a draw if their rank is ‘inflated’ from forcing draws, while higher ranked players should be capable of avoiding a draw against a lower ranked player.

    The only issue this might help is the bug that gives a win for a draw. Fundamental changes to game mechanics just to adjust a minor flaw with rating (that due to how the rating system works is unlikely to have a notable impact over time) doesnt seem like a good idea.

    posted in Suggestions •
    RE: AOE against air

    T3 MAA generally feel really weak, especially in comparison to T2 MAA. What about giving them a slight buff, by increasing their speed by 0.3 and increasing their aoe by 0.5, so they're both slightly more likely to be able to help in a big air fight, and are more effective against large swarms?

    Also looking at the stats on the Unit DB made realise just how much Cybran T3 MAA sucks - half the DPS of the other MAA, and it has a really slow projectile speed.

    posted in General Discussion •
    RE: Reclaim Brush

    Most arguments against seem to be that manual reclaim isn't that important (in terms of helping you win the game). If anything, that's another argument for the change (since it's not going to have much of a balance impact)!

    I'd bet most people playing the game find it more fun to do things other than playing 'click rock not tree simulator'. Something that therefore reduces the APM required for manual reclaim (and therefore the need to do this) is likely to increase fun for such people. The change also removes a source of frustration with not being able to properly execute a decision - as mentioned above, if you want your ACU to reclaim an area, there is no suitable option at present. Unlike engineers, you don't have a sub-optimal attack-move order option, and if you do patrol then that can cause various issues/unintended consequences. It is also still sub-optimal to choosing the reclaim targets yourself, just not as sub-optimal as an attack-move order, so people wanting to eke out small advantages that make use of higher apm will still be able to.

    So we have a mechanic that isn't fun, can at times be frustrating, and seems generally accepted by proponents of it posting here to not result in a decisive difference between games being won or loss. Other than this mechanic rewarding people with high APM, what's the benefit of banning a reclaim brush type option?

    Also, why is it acceptable to automate/reduce apm with features like mex capping and mass fab automation, but not with reclaim?

    posted in Suggestions •
    RE: Weapon target check intervals

    @jip While I agree in principle with the idea of having simple checks for a secondary weapon where that weapon's effect is negligible, I'd disagree with making it as broad as 'if it's not the primary purpose then downgrade it'.

    As an example, you mention cruisers with direct fire weapons. Sometimes I will build a Cybran cruiser for the primary purpose of using its direct fire weapon, since on some maps it's the optimal unit for taking out a firebase (although having said that I dont actually know what its default priorities are so maybe it wouldnt make much difference).

    Seraphim sub hunters would be another example where you might build them both for the AA and for the anti-sub capabilities.

    Other examples where you might build a unit for a combination of its weapons/non-primary purpose would be restorers, and in theory continentals (although in practice they're a bit too weak to use efficiently as a combat unit that can also sometimes transport units)

    I'd therefore suggest a stricter threshold, where the weapon must both be a secondary purpose, and also be very bad at that secondary purpose. So for example a fatboy's anti-air or a transport's air to ground would fall into that category, but a Seraphim sub hunter's AA or a Cybran cruiser's direct fire attack wouldnt.

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

    v34 - Dynamic firebases

    • This update introduces firebases, although the scenarios where they get built will be relatively rare. More extensive turtling logic is planned for a future update (specifically pre-planned firebases), but for now M27 has what I'm calling 'dynamic' firebases, which in practice are likely to be built if it faces a constant stream of progressively stronger enemy units. As part of this, it will now build T2 artillery for the first time.

    • Another related change is the introduction of shield assist logic to help with T3 arti wars, with M27 being significantly better at surviving against a T3 artillery.

    • 15 Bug fixes, including an issue that stopped torpedo bombers working (they'd only attack enemies that got near them previously), and an error that would happen when building experimentals if the enemy had an experimental

    • 33 misc changes, including improving ecoing ability slightly by trying to always have something upgrading (sometimes this can hurt it though)

    Thanks to:

    • Pyrolol for highlighting a bug with Plateaus on Twin Rivers
    • Relent0r for a bug with the decision on what experimental should be built.
    posted in AI development •
    TMM with computers on the same connection

    Was queuing up for 4v4 TMM, 2 computers using the same internet connection, one of us showed 7/8 connected, the other showed 1/8 connected. We've managed 4v4 TMM games before (although usually after many attempts).
    I'm assuming given what was displayed that it was one of our computers failing to connect, but seemed strange that one could connect to everyone else while the other couldn't even connect to the computer on the same internet connection so thought I'd mention in case it might be a wider issue than just with one of our computers.

    posted in FAF support (client and account issues) •
    RE: Weapon target check intervals

    Just to check re the point about never rechecking for targets if one has already been found, does that mean if I fly an air scout over a bunch of T1 MAA, followed by bombers, the T1 MAA will all target the air scout (it's the only unit they see), and if they fail to kill it (often the air scout travels too fast, unless its cybran MAA or is going almost directly at the MAA) theyll keep trying to target it while the bombers are free to cause carnage as long as the air scout stays within range of the MAA?
    Similarly a land scout could be used to distract Aeon T2 PD (although it'd require more micro) allowing a guncom to close in without taking damage if the opponent isn't paying attention?

    posted in Suggestions •