Greetings,
This post is aimed at the implementation and usage of DPS meters.
API proposal
Provide a json API that provides logs of the last fights. Something along the lines of
GET /v2/last_combats
[
{
"foe": "Sabetha the Saboteur",
"success": true,
"group_dps": 120154,
"individiual_dps": {
"player_a": 23053,
[...]
},
"effect_uptime": {
"player_a": {
"alacrity": 0.92,
"regeneration": 0.32,
[...]
},
[...]
},
combat_events: [
{
"timestamp": 1491122052,
"player": "player_a",
"target": "Sabetha the Saboteur",
"category": "damage",
"amount": 1492,
"type": "Condition",
"subtype": "Poison"
}, {
"timestamp": 1491122053,
"player": "some_druid",
"target": "player_a",
"category": "heal",
"amount": 423,
"type": "Boon",
"subtype": "Regeneration"
}, {
"timestamp": 1491122054,
"player": "some_warrior",
"target": "player_a",
"category": "boon",
"amount": 1,
"type": "Might",
"subtype": "Phalanx Strength"
},
[...]
]
}, {
"foe": "Bandit",
"success": true,
"group_dps": 80152,
[...]
}
]
Current state
Players use 2 brands of memory reading DPS meters in Raids. In the following sections S will explain why I will not use them and why no one should.
Legal issues
From the User Agreement ยง8:
You acknowledge that You may not, without signed written consent from a legally authorized representative of ArenaNet, do any of the following:
[…]
(i) Use, obtain or provide data related to operation of the Game, including but not limited to:
????????(i) software that reads areas of computer memory or storage devices related to the Game;
[…]
In the GW2 AMA for Head of the Snake Chris Cleary wrote the following:
We have no problems with players using a 3rd party tool whose scope is only to collect and visualize combat data gathered directly from the game client. Anything beyond that scope is still considered a violation of the User Agreement.
This is not a written signed agreement though so in my laymans opinion DPS meter users are still in violation to the user agreement (Yes, I’m fun at parties). If ANet wants users to continue using these mods they should change the user agreement.
Security issues
Especially the B*** tool concerns me a lot regarding security. This tool contains auto-update functionality that makes it possible for anyone controlling the update server to execute arbitrary code. I do not think that the developers have the resources to ensure the safety of their infrastructure under the circumstances. Arbitrary access to thousands of GW2 Accounts make these C&C servers very high-profile targets.
The A** tool seems saner in this matter as the developer guarantees that the DLL contains no network functionality.
Anti cheating heuristics
Both A** and B*** employ techniques that are very common among cheats. Any heuristic from ANet that detects D3D9 wrappers will have no way to determine the legitimacy of these wrappers except whitelisting every version of every legitimate meter.
Tolerating these kind of tools may make it difficult for ANet to employ such techniques if they become necessary.
Summary
If ANet tolerates DPS meters they should provide a sane way for everyone to use this data. D3D9 wrappers are not a sane way at all. As it stands players without DPS meters have a huge disadvantage in raids because they have less feedback from boss fights which they can use to refine their gameplay.