What is it? Why is it? How does it work?
Hi. I'm Chilly and I'm the co-author of the pvkstats.co.uk system. The original author was a chap called Rob and it was designed to run on the HL2 mod
Hidden:Source. I ported the application from the Hidden version to PVKII just under a year ago, probably Jan/Feb 2007 and it's been evolving ever since.
What is it?It's a per-server, per-player and global stats system for PVKII. It displays a user's kills, deaths, KDR, kills and deaths per class and team, kills by weapon and the last 10 kills that player made with a little popup window showing info like map, server, weapon etc.
It logs global stats such as the total number of kills registered from all servers reporting (this was just under 4m unique kills before 2.0 came out), total kills per minute, an estimate of the amount of real-time that players have spent in game so far and some other interesting facts.
Why is it?Sounded like a good idea at the time.
How does it work?The server is broken into 3 parts.
1 - Listener
There is a UDP listner server that authenticates servers as they send logs to the system by ip and port to stop spam attacks from filling the stats with rubbish.
2 - Parser
The listener passes authenticated log records onto the parser. The parser then decides which type of record it is (a kill, a map load, a player join, a suicide, etc) and passes it on again to a sub-parser to decode the information in that record and store it in the database and update any running totals etc.
3 - The web page
The web page basically pulls out various bits of information from the database and displays it in a niceish way to the visitor. There is also a dynamic update part of the page that allows you to refresh various sections of the page without a full refresh so as to get the results faster, such as the last 10 kills logged.
This is operated as an opt-in system, where permanent, dedicated server hosts can set their servers up (easily) to send me logs and have their players tracked.
Comments
What happens if two guys play with the same name, and then you search for "player name"?
For instance: Guy A and B both play with the name "Jolly Roger". If you search for Jolly Roger, do you get two results? Do their status get merged? How does that work?
Thanks in advance. =D