2 Attachment(s)
Help me think, HaloRank.com (statistics system)
As most of you know, I've been working closely with Goemitar/Omega, known from apps like "Gandanur" and "version changer", towards building a HaloPC/CE statistics system on HaloRank.com for quite sometime now.
Regardless of the time frame and the amount of iteration I've been through to improve my web-dev abilities I'm determined to finish this system once and for all. The aim is by the end of this summer and thus I'm scripting on a daily basis towards a release, as there is still much to be done.
However there are times (like now), where I need opinions and feedback from people that are not afraid of providing ideas, good critics and solid arguments. So hopefully you smart monkeys from modacity are willing to put some thoughts in and help me on the way as I pose questions and demos.
"Try" to keep it civil and I'm sure we'll go a long way.
Before people start suggesting all kinds of stuff I thought it might be wise to point out a few things on how the system works as well as what is tracked, instead of having to disappoint people as they post ideas or comments.
Gandanur sends out 6 HTTP Requests a minute towards the HaloRank server when statistics is enabled.
Which comes down to 120 logs for a 20 minute game.
Put all these logs together and you have a good understanding on the game flow and how the game progressed.
As for the information that is send:
Player Info:
- name
- kills
- deaths
- assists
- score
- team
- hash
- ip
- hash validation (determine if someone is pirate yes or no)
- Killing Streak Counter
- Suicides
- Betrayels
- Flag Returns
- Flag grabs
- Racelaptime
- Ping of player
- Max killing streak during a game
Multi-Kills:
- double kills (2x)
- triple kills (3x)
- killacular (4x)
- killfrenzy (5x)
- killtrocity (6x)
- Killimanjaro (7x)
- killtastrophe (8x)
- killpocalypse (9x)
- killionaire (10x) (highest possible)
Sprees
- killing spree (5 kill spree)
- running riot (10 kill spree)
- overkill (15 kill spree)
- rampage (20 kill spree)
- Untouchable (25 kill spree)
- Invincible (30 kill spree)
- Inconceivable (35 kill spree)
- Unfrigginbelievable (40 kill spree)
Server Info:
- server name
- ip
- port
- map name
- game type (CTF/Slayer/Oddball/King/Race)
- game type name
- game stage (playing/gameend)
- game flags (get all gametype settings from here)
- player flags (get all player settings from here)
- Halo Game (CE or PC)
- frag limit (maximum score)
- max players
Team Info:
- team game
- score red
- score blue
I will point out that before the next release no more statistics will be added! So please don't suggest all kinds of stuff that's not in this list. The goal for now is to release a statistics system that provides as a platform for people to play HaloPC/CE games on. After the first release, if things go well, I hope to get more people/devs/apps involved to expand the foundation.
Regarding security/ban-able servers/statistics boosting.
In order to sign up for an account you'll need a legit Halo key, without a legit Halo PC key your account will not be activated. (this information is all gathered while you play through server verification from Gamespy, thus no CD Key input required).
Once a player account has been verified he/she is able to request a server key in order to set their server up in order to be allowed to send statistics to HaloRank.com, no server key = no tracking.
Bad behavior is picked up within seconds, thanks to 200+ checks on the logs and is banned immediately.
So people might want to reconsider if a permanent ban on their legit key is worth the effort of breaking a system.
If you have any more questions I'll answer them as we go.
Now for the part where I need you guys.
As some of you might have noticed I show cased a post-game graph yesterday on halomaps and halomods.
Which looks like the following:
Attachment 2761
and can be demo tested here:
http://dev.halorank.com/chart/chart_player.php
Today while bug fixing a few minor issues with the data that goes in to these graphs, I came across a game that lasted a little over 1 hour. When displaying all graphs of all players during that game it turned out you get something like this:
Attachment 2762
and can be demo tested here:
http://dev.halorank.com/chart/chart_massive.php
(Pretty massive, indeed)
As I was trying to merge player lines that belonged to a single player, in other words, players which have the same hash and player name during a game, which JOINED, LEFT and RE-JOINED the game.
Like I did here for a player called "JJ".
http://dev.halorank.com/chart/chart_JJ.php
I noticed a problem with the "pretty massive graph", it comes down to the source of all problems, PIRATES. :gonk:
Basically I can not separate pirates from pirates for the JOIN, LEFT, RE-JOINED actions in the graph, so there is a chance (as in the massive graph) that a certain player (example: "S2H-Lucy") shows up multiple times in the graph due to a refresh of hash.
Now I have 3 options, but I'm not sure which one to choose.
Option 1: Ban all pirates from having a line in the graph, leaving only legit players and quite an empty graph.
(I can ban pirates from having any stats, but I doubt the legit players like to see half empty tables)
Option 2: Merge all players with the same hash (or even all pirates) under a single line, downside pirate player lines can disappear for certain players/no way of telling pirate lines apart.
Option 3: Leave the chart as it is in the Massive chart but by default hide all pirates lines.
What other types of graphs would you like to see? (currently only kills per players with medals)
Have a browse through this page for ideas.
http://www.highcharts.com/demo/line-basic/dark-green
Second problem:
I'm currently working on "Fun Ranks" meant for public games, with Fun ranks I mean exp system as known from halo Reach where you get cR/exp as you kill/assists/make sprees and such and slowly lvl up.
This is purely used for fun and should give anyone a feeling of satisfaction.
In case you're wondering for skilled ranking (matches/scrims) I'll use TrueSkill, but that's for a bit later.
However how much cR/exp should be used for each lvl?
Currently I have a very basic system which just takes the level requirements from Reach.
And how much exp/cR should be assigned for what actions?
Currently have the following as a simple test so I can at least keep building:
Exp/cR points
Flag Cap +8
Slayer Point +0
Oddball Sec +0
King Sec +0
Lap Complete +8
Kill +4
Assist +6
Multikill use a small formula ((n-1)+2*n)
doublekill (n=1) so +2
triple (n=2) +5
killtac (n=3) +8
Spree use a small formula ((n-1)+5*n)
killingspree (n=1) +5
runningriot (n=2) +11
etc.
As you might have noticed I could award points for other things as well, but the question is how much/little?
Also with flag cap, should only the person that captured the flag be awarded, or the whole team?
(Keep in mind we track who grabbed the flag and who capped the flag)
Maps multipliers, gametype settings, team size, amount of pirates ingame, time a player played ingame, betrayels, ranks of the players playing, etc?
Basically I'm hoping we can come up with a fun system together through this open discussion as a community as it's just too much for me to sit down behind my desk and come up with it all.
*Note fine tuning during Beta testing is a must, but just an initial system would give us some room to work with.
So much that goes into this, hopefully when you are reading this you'll share some ideas or raise some questions.
I highly appreciate it!
EDIT 2012-Apr-19:
Looked at existing exp tables within games I came up with the following for lvling in HaloRank.
It basically means you need 1 million exp points to get a fun rank of lvl 50.
Please let me know what you think.
LVL |
TOTAL EXP |
EXP NEEDED |
|
RANK |
1 |
0 |
600 |
|
Recruit |
2 |
600 |
1200 |
|
Private |
3 |
1800 |
1900 |
|
Corporal |
4 |
3700 |
2500 |
|
Corporal Rank I |
5 |
6200 |
3100 |
|
Sergeant |
6 |
9300 |
3900 |
|
Sergeant Rank I |
7 |
13200 |
4600 |
|
Sergeant Rank II |
8 |
17800 |
5400 |
|
Warrant Officer |
9 |
23200 |
6200 |
|
Warrant Officer Rank |
10 |
29400 |
7000 |
|
Warrant Officer Rank |
11 |
36400 |
7900 |
|
Warrant Officer Rank |
12 |
44300 |
8800 |
|
Captain |
13 |
53100 |
9700 |
|
Captain Rank I |
14 |
62800 |
10600 |
|
Captain Rank II |
15 |
73400 |
11600 |
|
Captain Rank III |
16 |
85000 |
12500 |
|
Major |
17 |
97500 |
13500 |
|
Major Rank I |
18 |
111000 |
14500 |
|
Major Rank II |
19 |
125500 |
15500 |
|
Major Rank III |
20 |
141000 |
16500 |
|
Lt. Colonel |
21 |
157500 |
17400 |
|
Lt. Colonel Rank I |
22 |
174900 |
18500 |
|
Lt. Colonel Rank II |
23 |
193400 |
19400 |
|
Lt. Colonel Rank III |
24 |
212800 |
20400 |
|
Commander |
25 |
233200 |
21400 |
|
Commander Rank I |
26 |
254600 |
22400 |
|
Commander Rank II |
27 |
277000 |
23300 |
|
Commander Rank III |
28 |
300300 |
24300 |
|
Colonel |
29 |
324600 |
25200 |
|
Colonel Rank I |
30 |
349800 |
26100 |
|
Colonel Rank II |
31 |
375900 |
27000 |
|
Colonel Rank III |
32 |
402900 |
27800 |
|
Brigadier |
33 |
430700 |
28700 |
|
Brigadier Rank I |
34 |
459400 |
29500 |
|
Brigadier Rank II |
35 |
488900 |
30200 |
|
Brigadier Rank III |
36 |
519100 |
31000 |
|
General |
37 |
550100 |
31700 |
|
General Rank I |
38 |
581800 |
32300 |
|
General Rank II |
39 |
614100 |
33000 |
|
General Rank III |
40 |
647100 |
33500 |
|
General Rank IV |
41 |
680600 |
34100 |
|
Field Marshall |
42 |
714700 |
34500 |
|
Hero |
43 |
749200 |
35000 |
|
Legend |
44 |
784200 |
35400 |
|
Mythic |
45 |
819600 |
35700 |
|
Noble |
46 |
855300 |
35900 |
|
Eclipse |
47 |
891200 |
36100 |
|
Nova |
48 |
927300 |
36300 |
|
Forerunner |
49 |
963600 |
36400 |
|
Reclaimer |
50 |
1000000 |
0 |
|
Inheritor |
Re: Help me think, HaloRank.com (statistics system)
Isn't there a way you can do a check with their IP in addition to their hash to identify a certain player? Sure this will not work in the long-run for checking full stats on a player (since many ISP's rotate IP addresses frequently) but for a per game basis it should work fine.
So pirates would not be allowed to have a complete account with full tracking (but can still view stats from a specific game), and legit hashes could completely track their history.
I might be missing some pieces, this is the first time I've really checked it out.
Also it would be nice if there was another way to add this to a server other than Gandanur, like maybe add a way where you can load an additional .dll package onto a server similar to SAPP, so server admins can easily add this to their server.
1 Attachment(s)
Re: Help me think, HaloRank.com (statistics system)
Quote:
Originally Posted by
POQbum
Isn't there a way you can do a check with their IP in addition to their hash to identify a certain player? Sure this will not work in the long-run for checking full stats on a player (since many ISP's rotate IP addresses frequently) but for a per game basis it should work fine.
For the long run it's quite simple, as soon as a hash has been verified that it's legit, it's linked permanent to your account by matching to your login IP.
Once linked I would only have to check for Hash and IP can be neglected. This is what I did during the previous iteration. Hence last time around I had the following:
Attachment 2764
Quote:
Originally Posted by
POQbum
So pirates would not be allowed to have a complete account with full tracking (but can still view stats from a specific game), and legit hashes could completely track their history.
I might be missing some pieces, this is the first time I've really checked it out.
That's correct as there is "nearly" no way you can distinguish pirates player other than creating your own hashing/identification system and forcing them to use your system.
Quote:
Originally Posted by
POQbum
Also it would be nice if there was another way to add this to a server other than Gandanur, like maybe add a way where you can load an additional .dll package onto a server similar to SAPP, so server admins can easily add this to their server.
Last time HaloRank failed due to scalability issues, 70 Halo servers all sending wonderful stats at the same time.
For the time being I do not want to switch to other apps nor increase the amount of servers, until it's proven that HaloRank can handle it.
Re: Help me think, HaloRank.com (statistics system)
Don't track statistics for pirates, it's pointless since the statistics will be skewed anyway.
If they care enough about their own stats they'll go buy a copy for $10 somewhere.
Re: Help me think, HaloRank.com (statistics system)
Yeah you should really try to authenticate their hash with Gamespy or else you're going to have hundreds of thousands of one-time random hashes.
In the past year, just the Gulch Modacity server has had about 250k "unique" player hashes logged. Although I have no real way to determining which are legit, of that, the vast majority of the hashes have less than 10 kills. I assume this is because the players start the game with a new random hash, joined, played, then quit. The next time a player joins, they have a different hash.
This is really nothing against pirates...I mean, if they used the same key every time they played, I would still agree to tracking them. However, the problem is not the "pirating" issue as much as it's a problem with the database tracking.
Re: Help me think, HaloRank.com (statistics system)
The only data that is stored from pirates is the information needed to make a full post-game carnage report, nothing more, nothing less.
Information regarding total exp/lvls, leaderboards, tournaments(which they can't join), highscores, carreer report, achievements, etc., etc. is not stored for pirate players.
I'm considering getting them off the post-game graphs as well due to the byte size the graphs take, but we'll see during testing how much of an issue this is.
EDIT:
Quote:
Originally Posted by
jcap
This is really nothing against pirates...I mean, if they used the same key every time they played, I would still agree to tracking them. However, the problem is not the "pirating" issue as much as it's a problem with the database tracking.
Handing out a fixed hash is not difficult, a small register edit and it's done.
However as long as there are still Halo PC games / keys on the market I do not want to head down this road.
EDIT2:
Hello everyone!
Yet again, I need your help! Help me list for each maps, or at least the most popular maps, the amount of players it should be played with in order for it to work.
(Real numbers ranging from 1 to 16)
Please list them as following
Map Name, lowest amount of players, highest amount of players.
An example:
Bloodgulch, 8, 12
Basically meaning on map Bloodgulch the amount of players should be ranging from 8 to 12 in order to have an absolute "fair" game.
Anything above or below just doesn't work well with the map design.
It might be a bit of a task the list them all but if we all pitch in I'm sure we'll go a long way. Don't worry you can start with you favorites and update the list as you play!
Start with the stock maps and the most popular CE maps and update the rest as you go.
Stock Maps:
The list of all multi-player maps as provided by halomaps.org, for reference purpose.
(Please don't cry it's very, very, very long list but as mentioned a few at the time would help):
Here is my stock map list:
Battle Creek (beavercreek), 6, 10
Blood Gulch, 8, 12
Boarding Action, 8, 10
Chillout, 4, 6
Chiron TL34 (putput), 6, 8
Damnation, 6, 8
Danger Canyon, 10, 14
Death Island, 12, 16
Derelict (carousel), 6, 8
Gephyrophobia, 10, 14
Hang em High, 6, 8
Icefields, 10, 12
Infinity, 16, 16
Longest, 4, 6
Prisoner, 4, 6
Ratrace, 4, 8
Sidewinder, 10, 14
Timberland, 10, 16
Wizard, 4, 6