Age of Conan PvP Matchmaking Web Application

Hi,

it will be designed for crom or fury server?

idea looks great

The plan is to have it available for both servers. But I am not sure if I will enable both from the start yet. Crom is currently the focus as that is where the majority of the population resides.

I want to say thanks to @Lurvi for the great suggestion of using the aoc combat log to bring combat data into the application. This is going to delay the release a bit but I think this will make everyone’s life a LOT easier and provide us with some amazing statistics and metrics that can be reliably used to reward/deduct participants elo rating.

Here is a list of some of the things I thought can be accomplished with using this data:

  1. Users will not need to enter kills/deaths, this can all be determined from the parse
  2. We can see the breakdown of damage taken in a given life by player and ability
  3. We can see ccs taken and ccs dealt
  4. We can see heals given (green up time, blue up time, big heals used)
  5. We can show which players a player killed and who killed a given player
  6. We can see damage dealt by abilities
  7. We can see most used abilities
  8. We can see which abilities hit us the most
  9. Bit of a stretch but we could even see when a cc saved a player that was being focused
  10. We can verify that the players in the match are truly the players signed up for the match
  11. We can determine the winner of the match or a tie if score is the same
  12. We can award players with titles like Mvp of the game, Support player of the game, Clutch Master etc.
  13. Kill/Death vs particular players in a given game/over a period of time
  14. With the above data we can reliably say how a given player performs vs a given player based on a period of time.
  15. We can track dead time (time in which they are not cc’d and are not performing a successful action)
  16. We can suggest if a person either left the game early or went afk (hasn’t issued any commands for 1+ minutes)

I will say this idea really excites me. I am working on it now and will keep you guys updated.

I also think this could easily be extended to create some interesting open world warzone game modes.
If this is proven successful I will start developing this for open world (Fury). Think 6 v 6 v 6 v 6 in gateway to khitai or 3v3v3 on whitesands, 12 vs 12 in eiglophian mountains. The possibilities seem endless and honestly really exciting. If someone tried to grief there name would appear in the parse.

2 Likes

but what about the limited range when logging? you cant catch the entire map I believe

The plan is to create a small windows application which will parse the combat log for every player. That parse will be sent to the server for validation. Basically the game process will be handled completely by the windows application.

You sign up for matchmaking through the website.
A Matchmade game is made
The server tells the windows application running on your machine that a game is ready.
The windows application will be brought into focus and the game will proceed from that interface.

Within the windows application the only thing the user will need to do is provide the aoc install directory (like with any parser). They will then type /logcombat on

If any user does not have a valid combat log running they will not be able to ready up for the match.

This will verify that we get a complete parse of the entire game. I have already finished creating the parser.

1 Like

How many Crust were hurt in the making of this parser?

You can’t really rely on combat logs for such things. It’s a mess then it comes to real combat, especially in pvp. You won’t be able to determine k/d from logs. Even if you somehow resolve problem with range (your combatlog is limited in range around your character). So you can’t determine it from 1 person perspective. And forcing everyone to log is not a good idea, because of the different languages (logs gonna be in the same language, as client, which means: russian, german, spanish, french, polish. And some things are not accurate in different languages. For example, some offhand attacks are not shown in russian logs.). Even if you find a way to write combatlogs in english, by using some game key you are gonna hit troubles with synchronizing this mess.
And all of this doesn’t matter because of such things:
Sometimes people became “Strangers” in logs (happens then they die and for some other reasons). Take a look:

[23:09:55] Stranger’s Upheaval hits Mr.Goo for 124 slashing damage.
[23:09:56] Stranger’s Curse of Gwahlur hits Mr.Goo for 13 unholy damage.
[23:09:56] Stranger’s Upheaval hits Mr.Goo for 124 slashing damage.
[22:57:45] Stranger’s Curse of Gwahlur hits you for 30 unholy damage.
[23:11:30] Stranger’s Life of Set (Rank 6) heals you for 231.

Some damage you just can’t attach to specific person. For example, this is how “Armageddon Falls” look in logs:

Your Armageddon Falls hits you for 52 slashing damage.
Mr.Goo’s Armageddon Falls hits Mr.Goo for 166 slashing damage.

Does the game count all this damage to the person who applied original debuff? Or does it ignores all selfdamage? Or 42?

And there is quite a lot of limitations, timing issues, mechanic stuff and yada yada. I can see problems in implementing any item on your long list. But I think those reasons are enough?

The plan is that every player will be running the combat parser. This will allow for the server to make reasonable assumptions by checking the source of damage against the receiver of damage.

The important thing to note is that this is all post-processing. It’s not real-time. The only real-time action is the streaming of the data related to the ongoing game.

I’m sure there will be issues, but I think the fact that he’s willing of give it a shot far outweights ceasing all development because there could be some situations where creative solutions must be implemented.

Well, I wrote about crucial technical problems which will make it almost impossible to implement. Did you actually read my post?
Combatlogs have huge amount of useful information, but you can’t really rely on them in some cases.
As I understand, the main reason for parsing for now is to determine k/d, so you can free end user from annoying hand posting k/d? Maybe you should consider ocr for this? In this case will be enough to provide 1 screenshot from any player.

K/D is not the goal. the goal from the combat logs is to get meaningful features extracted from the logs. He proceeded to list all of them. K/D was just one of the many features he listed.

Nothing you listed makes this impossible at all.

Care to propose at least some workarounds for the issues I listed?

I’ll let the man with the plan explain. He’s thought about many of the issues you brought up and seems confident about some possible solutions.

Exactly the only way this can reliably work is to have everyone have the combat log running. You need the log of the damage dealer and the one having damage dealt to them.

Would it be out of line to ask players to use the english client? If that is too much to ask then I can create a translation of each ability/combo and translate a given text to english. Regarding things missing in particular language logs. The only time that would be an issue would be if say a russian white hit a russian and no one else was around to have that hit parse on their log.

The stranger problem is completely solvable when everyone is parsing. The ones listed above are actually from a third parties parse. You can find the name of stranger by going to Mr.Goo’s parse to see who hit him with that damage at that given time stamp.

Another situation is when say a necro dots someone and they run far away. Part of that damage will only appear on the victim’s log. So to validate dots you would always start from the victim’s log. And marry up the Stranger log’s to the damage dealer.

What if 2 necro’s dot are ticking on the same second interval on a victim and the victim runs out of range before the dot ends?

Mark of the devourer is a dot that lasts for 30 seconds and ticks every 5 seconds starting at 0.
So for 2 necro dots to be at the same second interval (every 5 second 2 dots appear on log) and for both necro’s to be out of range of the victim at the same time then the second dot would need to hit 5 seconds after the first.
Necro 1 dots victim 1 at 11:59:41
Necro 2 dots victim 1 at 11:59:46
and at 12:00:06 the victim is out of range of both necros.

[11:59:41] Dirtydanny’s casts Mark of the Devourer.
[11:59:41] Dirtydanny’s Mark of the Devourer hits You for 62 unholy damage.
[11:59:46] Bigboy’s casts Mark of the Devourer.
[11:59:46] Bigboy’s Mark of the Devourer hits You for 72 unholy damage.
[11:59:46] Dirtydanny’s Mark of the Devourer hits You for 58 unholy damage.


[12:00:06] Stranger’s Mark of the Devourer hits You for 72 unholy damage.
[12:00:06] Stranger’s Mark of the Devourer hits You for 58 unholy damage.

To find who each stranger is on the victim’s log you simply back track 5 seconds at a time until you see X casts Mark of the Devourer. At that point you should see 2 mark of the devourer casts on the same second. Since Bigboy’s dot ticked before Dirtydanny then every subsequent stranger tick from the dot will apply Bigboy’s name as the attacker for the first dot and Dirtydanny’s name as the attacker for the second dot.

How does it work in the game? Does that damage go to the attacker or is simply ignored and seen as self damage? I am not sure.

self dmg of a sort afaik, dont think you can see who triggered it

This is actually not true. If damage is done out of range it will always be displayed as stranger on the player taking the damage. The only way this can be solved is having player B between player A and player C. This way the range is doubled and it will not display stranger from player B’s log. However, I do not see this scenario by a melee combo possible and it is outrageous to even mention it.

The only scenario I can see stranger being a problem is when dots and hots are active on a player when the caster dies. For example, if there is a fight far away from the respad and a healer/dotter dies, then all its hots/dots will say “Stranger’s xx spell heals xx for xx”, or “Stranger’s xx spell hits xx for xx damage” and this might result in inaccurate parsing of kills/deaths, healing and to some extent the damage done.

This is incorrect, you seem to lack a little bit of knowledge in how the combat log works. Here let me shed some light on few details.
Only buffs/debuffs are displayed with Player casts spell unless you are the one casting the spell. In that case you will get two messages, one that says “You start casting spell xx” and “You successfully cast spell xx”. I’ve seen some special cases where Flame Lash shows up but that’s about the only hostile spell I observed in any combatlog I recently studied.

You might think "but I saw “player casts mark of the devourer” " in your combat log. Yes you did, but if you paid attention you will see the buff that increases the damage done/healing recieved from it, not when it is actually cast. If you want to see start of a dot you will have to track this entry “Player afflicts target with Spell(Rank x)” which I guess is the same method you were thinking of, doable.

It comes up as self-inflicted damage, I’m not into the pvp meta so I’m not sure how much of a problem armagedon fall actually is. I don’t see it as a problem but then again I’m not invested in the current pvp meta.

On a sidenote: If there is a player using russian letters in their character name it will show up as ??? In the combat log.

Another thing you can track using the combat log is to see who is running what buffs/potions. Crit potions, combat rating potions, exiles runes, gold potions etc can all be detected in the combat log. You can even go as far to keep track on how many times a protection buff has been cast or how many times a soldier stance danced in the minigame which might be very interesting to see. You can keep track on which manifestation is used by bear shamans, how often bubbles are used etc. There are probably a lot more things you can track to generate some interesting stats.

1 Like

Yes, this is least of the problem. But you still need to consider crashes and relogs. If you relog, while logging is running - it stops writing, but log will be technically still open.

But if someone played few years and knows casts on his language - switching could be a problem.

Even in Mr.Goo’s logs that would be stranger:

[23:56:33] Stranger’s Intense Heat hits you for 18 fire damage.
[23:56:35] Stranger’s Intense Heat hits you for 18 fire damage.

If I remember well, “Intense Heat” is AOE damage on dot tick. So it might look like:

[23:56:35] Stranger’s Incinerate (2) hits Mr.Goo for 20 fire damage.
[23:56:35] Stranger’s Intense Heat hits Mr.Goo for 20 fire damage.
[23:56:35] You absorbed 5 points of damage from Stranger attack
[23:56:35] Stranger’s Intense Heat hits you for 18 fire damage.

Same thing with “Pestilential Blast”:

[23:49:48] Stranger’s Pestilential Blast (Rank 7) crits Mr.Goo for 169 unholy damage.
[23:49:48] Stranger’s Pestilential Blast (Rank 7) crits you for 417 unholy damage.

And same thing from all AOE damage from dot


And this is also fun thingy:

[22:40:05] Stranger’s Spell hits Mr.Goo for 1286 piercing damage.
[22:40:07] Stranger’s Spell hits Mr.Goo for 1864 piercing damage.
[22:40:49] Stranger’s Spell hits Mr.Goo for 1055 piercing damage.

Although that you can see from Mr.Goo’s perspective


Although, this:

[23:19:35] You absorbed 92 points of damage from Stranger attack
[23:19:35] You mitigated 92 points of damage from Stranger attack.
[23:19:35] Stranger’s Spell hits you for 328 slashing damage.

I appreciate the responses, this is all very helpful. I do not have a lot of knowledge on how the combat log works entirely, last night was the first time I looked at one.

But won’t the victim’s log have the entirety of the dot? So you can easily backlog to see who inflicted the dot earlier in the log and replace Stranger with that name. Isn’t dot damage inflicted even after the necro dies calculated into the kill calculation?

I can’t say I don’t lack some knowledge on how the combat log works :). Instead of looking at the “Cast” log for a given spell on the victim you could look for the first inflicted spell in a dot’s given life span. I.E mark is 30 seconds long so you can easily find the first hit which will always have the player’s name associated with it. You may have to get more creative with something like sin poop bomb but I still think you could determine the attackers name from the victim’s log.

Does the whole name show as ??? or just the russian characters?

Thanks for mentioning that, this was something I noticed last night when I was testing this dual boxing. You can easily see all the buffs a character has and I think it gets parsed out after every death as well. Well when I zoned in I noticed it showed the buffs alongside the shield of the risen.

I thought about this one as well. Since we will have the start time and end time of the match via the windows application I can grab all of the combat logs for today and find all parse information that falls between the start and end time of the game. I don’t think this will be a problem.

I understand that, I wouldn’t mind trying to translate everything but that would be a LOT more work imo.

You can find Stranger’s name by parsing backwards (victim’s log) to the initial hit which would have the stranger’s name.

Not in the case of AOE damage on dot tick.
Example:

[23:16:46] Stranger’s Incinerate (2) hits Mr.Goo for 28 fire damage.
[23:16:46] Stranger’s Intense Heat hits Mr.Goo for 29 fire damage.
[23:16:46] Stranger’s Intense Heat hits you for 18 fire damage.

In this example Stranger applied dot “Incinerate” on Mr.Goo. Each time “Incinerate” ticks it damage everyone around with “Intense Heat”.
So I was in proximity of Mr.Goo when Stranger’s (from my perspective) “Incinerate” ticked. So I was damaged by another spell “Intense Heat”. Which is again, Stranger’s spell.

In this case you can’t determine the attackers name from the victim’s log.