Jump to content

ffm2

Community Members
  • Posts

    93
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by ffm2

  1. That's annoying. I got matplotlib 3.9.2, so quite new (instead of what they wrote). And for me the other way don't work: AttributeError: 'Legend' object has no attribute 'legendHandles' I don't want to include some checks to execute different code for different versions of matplotlib ... So I agree, if you have a similar issue, replace it yourself, sorry (-.-)
  2. Oh, good I aborted after I heard my fans blow up and tested afterwards in a test directory with only 10 replays. This should be fixed but I only tested it in the test directory again. This can be run on only one case with multiprocess = False and a specified path (good for editing/debugging etc.) Can process a part of your database (first 10% in batches) limit number of processes (is set on 4 for now) delete pngs (good to delete all the pngs named sigle) multiprocess = False # you can specify to handle which part of your db you want process. # E.g. test with [0, 10] and if it works in a reasonable time do [10, 100] next. # in percent process_part_database = [0, 10] parallel_processes = 4 path = "2024-11-13_0009/" # for single game delete_pngs = False game_analyzer.py
  3. Thanks, should all be in the single_game_analyzer.py too. Also I wrote si[N]gle in one chart... Still some to improve but the basis is better now.
  4. This is a new update. Its a version for single games, that's easier to change, adapt, debug etc.. And one with the multiprocessing. For my Pc it didn't run through all games within my limited patience, so I tested it only in a folder with 10 games. It deletes .png files in the folders where it finds a commands.txt, so if you have stored pngs in your replay folder save them elsewhere. But I assume you might ran the old version and want the updates in the folders. Apart from already discussed command-analysis it features Colors are now in game colors Legend moved outside of the plot If you have a metadata.json of the game also: the eco_score of used resource (instead of gathered resources) units trained over time The attached figures are from the first game of the sanafur games that has also zoomed figures on page 2 in this thread. single_game_analyzer.py
  5. This site has some interesting tests: https://www.arealme.com/apm-actions-per-minute-test/en/ But this is a bit too difficult. That record is 733 apm or 12.22 clicks per second or 2.44 clicks per turn Their cps test is nice displayed, but too easy (this should have a world record of 105 cps): https://www.arealme.com/click-speed-test/en/
  6. The highest of sanafur is 58 per turn (0.2 seconds). 58 / 0.2 = 290 clicks per second. The world record is (presumably) 1051 clicks per 10 seconds for clicking on any spot. World record speed per turn would be 1051 / 10 * 0.2 = 21 clicks per turn. But this is not clicking on any spot.
  7. I think it is about using just as many arrows on one target as necessary to take it out. Not more, not less arrows. The queue would only do the command after the prior target died and I thought for a long time that's how most players snipe. I could update the script of yours to also show other commands, like pressing H, sniping with queue etc.. But I'd want to clean up the graphs and code first until I blow it up.
  8. This is the first spike of 10 commands: turn 4273 200 cmd 8 {"type":"attack","entities":[333],"target":8632,"queued":false,"pushFront":false,"allowCapture":false} cmd 8 {"type":"attack","entities":[334],"target":8632,"queued":false,"pushFront":false,"allowCapture":false} cmd 8 {"type":"attack","entities":[335],"target":8632,"queued":false,"pushFront":false,"allowCapture":false} cmd 8 {"type":"attack","entities":[336],"target":8632,"queued":false,"pushFront":false,"allowCapture":false} cmd 8 {"type":"attack","entities":[337],"target":8634,"queued":false,"pushFront":false,"allowCapture":false} cmd 8 {"type":"attack","entities":[6278],"target":8629,"queued":false,"pushFront":false,"allowCapture":false} cmd 8 {"type":"attack","entities":[6354],"target":8629,"queued":false,"pushFront":false,"allowCapture":false} cmd 8 {"type":"attack","entities":[6454],"target":8629,"queued":false,"pushFront":false,"allowCapture":false} cmd 8 {"type":"attack","entities":[6475],"target":8634,"queued":false,"pushFront":false,"allowCapture":false} cmd 8 {"type":"attack","entities":[6592],"target":8634,"queued":false,"pushFront":false,"allowCapture":false} end So the first 4 units attack one target (8632), then comes one attacking 8634, then 3 attacking 8629 and 2 attacking 8634. So even in one turn there is no multiplicator to find.
  9. Unless it's a toggle It doesn't seem really useful to build three cs when you only want one If I'd do, it I'd use a dedicated key with the multiplier to avoid this. One for usual play, the other for sniping. But this explanation does not make sense to me. Here is a zoom to the first burst of the first figure of the sanafur part. The sequence is 10, 6, 4, 8, 4, 8, 4, 7, 13, 8, 5, 8, 5... so the sniping is no multiplication of 2 or (like claimed) 3.
  10. A single attack looks like this in the commands.txt: cmd 8 {"type":"attack","entities":[10681],"target":8109,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} The one unit with the entity ID 10681 get the command to attack unit 8109, not queued. AFAIK this can be done either selecting the unit and right click on the enemy unit or selecting this unit and other units with higher entity IDs and hold alt right click on the enemy unit A group command looks like this: cmd 6 {"type":"attack","entities":[452,6571,6572],"target":203,"queued":false,"pushFront":false,"allowCapture":false} The units 452 6571 and 6572 get the command to attack the unit 203 at the same time probably with one control group and just right click. this should look something like this: cmd 1 {"type":"attack","entities":[9341,9342],"target":9345,"queued":true,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} so with "queued":true. In these two plots it should always be not queued as this is the pattern I was looking for. Please check the replay and think what you would do in the situation on the timestamp. Maybe you can replicate it.
  11. These are other games with berhudar who reaches quite high values but not every time. Sorry for the big legends.
  12. For normal clicks. There's "advanced" techniques like Jitter-, Butterfly- and Drag-clicking up to 30+cps. But I think someone with drag-clicks would miss a lot of soldiers i.e. with alt-click send units with walk.
  13. https://clickspeedtest.com/ says: According to Recordsetter - a website that lets player post record for everything, Per the same website, Dylan Allred from Las Vegas holds the world record for most mouse clicks in 10 seconds. The data suggest that Allerd click the mouse 1,051 times in 10 seconds. Assuming they have some verification for this records. With a smooth game that would be 1051 / 10 * 0.2 = 21 clicks per turn. Then additionally to this you'd need also point on the target and then click (not just clicking like this test)
  14. Yeah, since you can know which unit gets this command. (just for clarity 130 in the total game [number in the legend], you had 6 per turn max.)
  15. But note that you need more than one or two games. I also encourage to look at the turn in the text file if you found something to double check. Attached is one game that seems suspicious with berhudar and weirdJokes and others, but if you look at other games of weirdJokes (berhudar has only one upload) you don't see him with that high of a number. I think this was a heavy lagging game since a lot of players have such high values. e.g. just glancing at total number of commands: https://replay-pallas.wildfiregames.ovh/Replays/ReplayDetails/46D647BA5A8FA5C8 https://replay-pallas.wildfiregames.ovh/Replays/ReplayDetails/C7CF37877668B4F0
  16. Put the script in the right folder: On Windows (Vista or newer): C:\Users\{name_of_user}\Documents\My Games\0ad\replays\ On OSX: ~/Library/Application Support/0ad/replays/ On Linux: ~/.local/share/0ad/mods/ (may be found in GUI via Home/.local/share/0ad/replays/) Adjust line 8 to be the folder containing the replay: path = "0.0.26/1ADDA938C7135CC0/" # stockfish; max. 96, total 1407 Install dependencies: small: matplotlib, numpy, python 3; (Or I use Spyder [on Windows install Anaconda] if you'd like to use a visual variable explorer, but not necessary just to run this). run the script: python load_replay.py 2 Figures get saved to the folder containing the replay and also pop up as windows in which you can zoom, pan etc.
  17. Here is a zoom on the sanafur-Decger game. Apart from the one spike of 30 he gets rarely over 4 and max. 7. You reached 5 here in one game too. Maybe you can try and send a command.txt? The big difference is that it's in every game over 10 min. of sanafur and Stockfish that I checked. Decger and you have it on rare occasions.
  18. Sure, better hardware gives an advantage, but I don't see a benefit in this case. Lets assume you hold down a extra mouse button that clicks 1000 times per second. In combination with holding alt and hovering the mouse over enemies you'd send units a walk command in between when the cursor is not on a enemy unit. In combination with attack-walk it would be the same as the attack-walk alone.
  19. Yes, other ways to attack are (all not counted in the diagrams here): attack-walk (ctrl+Q+right-click) Is good for the starting of a battle when you face an enemy that is not tightly grouped. If units run loosely with this method in a tight group of enemies they die fast in a outnumbered fight. stop activity (H-key) Let the selected units drop all activities with a aggressive stance results attacking the nearest target very fast. Good for complex situations. Also good if your units have a locked target, the target retreats and there are other targets in range. So your units don't spend time walking but attacking. group sniping (select a group right-click) Makes sense to take out heroes (and their aura on the army), siege and in small battles with e.g. 5 riders to take out wounded units. With other plots like these I like to see some habits other players have. The stop activity is heavily underutilized imo. of middle strong players that might not even know this can be used in that way. It's not so easy, or what do you mean? You'd rather not be able to take out heroes or siege? Commanding a catapult on a CC would also be considered single unit attack (unqueued). I don't want to lose that control. I don't see a general problem in this mechanic. Imo. a rounded use of all the techniques described above usually makes sniping with a lot alt+rightclick of big groups not a good choice. It's very apm intensive and too little rewarding compared to other tasks. You can see some top players not using this at all in these graphs.
  20. Oh, you mean the legend entry, that's the sum over the whole game. Should have labeled it better. The value of each turn is on the y-axis
  21. 1 turn is 0.2 seconds game time (in this alpha). During lag and pauses (if you have autociv) spikes can occur. Usually more players have a high command count then. In the second plot of the sanafur section one can see Decger have one high spike at the end. But looking at other games Decger one cant see this. So one needs to check a few games. For other commands, like holding the ungarrison key, multiple commands can also be send during one turn. But in this case the target changes where one would need to click on to. This is very rare, can be code executed or some overlooked mechanic of which no one else knows. Like this funny exploit
  22. This is the python script for these graphs load_replay.py
  23. But I found one player (sanafur) that is currently active and has this unusual active sniping: Maybe he can provide some insight how this is done. commands.zip Sniping with alt+rightclick gives the command to one unit. Or more precisely to the unit with the lowest entity ID / oldest. In a game one can't know realistically which would be that in a group. So if one would alt-rightclick one couldn't give the command to the nearest unit. This would only make sense with a target in range of everyone in a group. Archers and slingers might use this in bigger groups (30+). Skirmishers might try to reach a target on the other side of the group and would need to run between their own army. Halt command (H-key) makes more sense then to attack the next target near each unit without sniping.
  24. I analyzed a game of Stockfish and stumbled up on some weird behavior regarding unusual high sniping activity. Now I analyzed a few more game of him and others. The unusual sniping acts in that way, that one players sends individual attack commands to individual units. In the commands.txt it looks like this in one turn: cmd 2 {"type":"attack","entities":[2472],"target":2963,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2483],"target":2963,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} cmd 2 {"type":"attack","entities":[2533],"target":2963,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"} ... In the following graphs I count only these individual attack commands for each player. Here are 4 games of Stockfish which all show this behavior and I did not find a game which didn't have this that were longer than 10 min: Here are some games of other high ranked players that don't have this unusual sniping activity:
×
×
  • Create New...