#1 BigBattleServers.com - Forum
HOME Forum / Chat Rules Servers [BBS] UT3 MODS Chatlog Wiki About
 

BLOG: Working on TheCLQ.com / AllGameServers.com

Discuss everything related to TheCLQ.com / AllGameServers.com development.

BLOG: Working on TheCLQ.com / AllGameServers.com

Postby BattleMode on June 29th, 2008

It seems QStat is still alive and kicking.

qstat -R -P -ut2004s 83.98.163.86:7777

Still works nice and tells you what is happening on the Titan RPG server.

It seems Steve Jankowski abandoned the project but others picked it up: http://qstat.org

Latest source code: http://qstat.svn.sourceforge.net/viewvc ... te#dirlist

UT3 support is going to be "fun": http://sourceforge.net/mailarchive/foru ... qstat-devx ("I'm still trying to get Epic to sort their lives out with respect the ut3 query protocol as its at total and utter mess.")
I play as BattleMode. I also own and manage the BigBattleServers.com servers :alien:.

Image
User avatar
BattleMode
Owner
 
Posts: 5274
Joined: June 2nd, 2007
Location: The Netherlands

Re: Working on: AllGameServers.com / TheCLQ.com

Postby BattleMode on June 29th, 2008

Got scanning all my UT2004 servers with qstat working:

qstat -R -P -f servers.lst

Code: Select all
ut2004s 83.98.163.84:7777
ut2004s 83.98.163.85:7777
ut2004s 83.98.163.86:7777
ut2004s 83.98.163.86:8888
I play as BattleMode. I also own and manage the BigBattleServers.com servers :alien:.

Image
User avatar
BattleMode
Owner
 
Posts: 5274
Joined: June 2nd, 2007
Location: The Netherlands

Re: Working on: AllGameServers.com / TheCLQ.com

Postby BattleMode on June 29th, 2008

Tested XML mode (which did not exist yet 10 years ago):

Code: Select all
<?xml version="1.0" encoding="iso-8859-1"?>
<qstat>
   <server type="UT2004S" address="83.98.163.84:7777" status="UP">
      <hostname>83.98.163.84:7777</hostname>
      <name>#1 BigBattleServers.com ONS RPG</name>
      <gametype>ONSOnslaughtGame</gametype>
      <map>ONS-HoldingTankRedux</map>
      <numplayers>0</numplayers>
      <maxplayers>32</maxplayers>
      <ping>32</ping>
      <retries>0</retries>
      <rules>
         <rule name="gametype">ONSOnslaughtGame</rule>
         <rule name="ServerMode">dedicated</rule>
         <rule name="AdminName">BattleMode</rule>
         <rule name="AdminEmail">BigBattleServers.com</rule>
         <rule name="ServerVersion">3369</rule>
         <rule name="GameStats">True</rule>
         <rule name="MaxSpectators">4</rule>
         <rule name="MapVoting">true</rule>
         <rule name="KickVoting">true</rule>
         <rule name="Mutator">MutXxxXTranslocator|MutUTAN|MutUT2004_RPG_TC04|MutDruidRPG|MutUT2k4ScoreRecovery_v3_RPG|MutRPGKIT|MutNoSuperWeapon|DeployableFun|ResSltMut</rule>
         <rule name="XxxX Trans Version">v3a</rule>
         <rule name="XxxX Trans Trails">Enabled</rule>
         <rule name="XxxX Trans TossForce">2500</rule>
         <rule name="XxxX Trans Ammo">Unlimited</rule>
         <rule name="Starting Level">1</rule>
         <rule name="Stat Points Per Level">6</rule>
         <rule name="Current Avg. Level">0.00</rule>
         <rule name="Highest Level Player">wito (132)</rule>
         <rule name="Magic Weapon Chance">80%</rule>
         <rule name="Magical Starting Weapons">False</rule>
         <rule name="Artifacts">True</rule>
         <rule name="Ironman Mode">False</rule>
         <rule name="RPG KIT">TC04 Build 41.70.65 (Jan 11 2008)</rule>
         <rule name="Titan Admin Hax Version">0.29j</rule>
         <rule name="MinPlayers">10</rule>
         <rule name="EndTimeDelay">4.00</rule>
         <rule name="GoalScore">3</rule>
         <rule name="TimeLimit">10</rule>
         <rule name="Translocator">True</rule>
         <rule name="WeaponStay">True</rule>
         <rule name="ForceRespawn">False</rule>
         <rule name="BalanceTeams">True</rule>
         <rule name="PlayersBalanceTeams">True</rule>
         <rule name="FriendlyFireScale">0%</rule>
         <rule name="LinkSetup">Default</rule>
         <rule name="mutator">ONSDefaultMut|UAdminMod</rule>
      </rules>
      <players>
      </players>
   </server>
   <server type="UT2004S" address="83.98.163.85:7777" status="UP">
      <hostname>83.98.163.85:7777</hostname>
      <name>#1 BigBattleServers.com INVASION RPG</name>
      <gametype>Invasion</gametype>
      <map>DM-AniMatrix-HauntedHouse-v1-1</map>
      <numplayers>7</numplayers>
      <maxplayers>32</maxplayers>
      <ping>16</ping>
      <retries>0</retries>
      <rules>
         <rule name="gametype">Invasion</rule>
         <rule name="ServerMode">dedicated</rule>
         <rule name="AdminName">BattleMode</rule>
         <rule name="AdminEmail">BigBattleServers.com</rule>
         <rule name="ServerVersion">3369</rule>
         <rule name="GameStats">True</rule>
         <rule name="MaxSpectators">4</rule>
         <rule name="MapVoting">true</rule>
         <rule name="KickVoting">true</rule>
         <rule name="Mutator">MutBattleDrones|MutXxxXTranslocator|MutUTAN|MutUT2004_RPG_TC04|MutUT2k4ScoreRecovery_v3_RPG|MutRPGKIT|MutDruidRPG|DeployableFun|mutsatoreMonsterPack|Mutnecro</rule>
         <rule name="XxxX Trans Version">v3a</rule>
         <rule name="XxxX Trans Trails">Enabled</rule>
         <rule name="XxxX Trans TossForce">2500</rule>
         <rule name="XxxX Trans Ammo">Unlimited</rule>
         <rule name="Starting Level">1</rule>
         <rule name="Stat Points Per Level">10</rule>
         <rule name="Current Avg. Level">90.00</rule>
         <rule name="Highest Level Player">Dissed (140)</rule>
         <rule name="Magic Weapon Chance">80%</rule>
         <rule name="Magical Starting Weapons">False</rule>
         <rule name="Artifacts">True</rule>
         <rule name="Auto Adjust Invasion Monster Level">True</rule>
         <rule name="Monster Adjustment Factor">0.25</rule>
         <rule name="Ironman Mode">False</rule>
         <rule name="RPG KIT">TC04 Build 41.70.65 (Jan 11 2008)</rule>
         <rule name="satoreMonsterPackVersion">1.20</rule>
         <rule name="MinPlayers">0</rule>
         <rule name="EndTimeDelay">4.00</rule>
         <rule name="GoalScore">60</rule>
         <rule name="TimeLimit">0</rule>
         <rule name="Translocator">True</rule>
         <rule name="WeaponStay">True</rule>
         <rule name="ForceRespawn">True</rule>
         <rule name="BalanceTeams">True</rule>
         <rule name="PlayersBalanceTeams">True</rule>
         <rule name="FriendlyFireScale">0%</rule>
         <rule name="InitialWave">0</rule>
         <rule name="FinalWave">16</rule>
         <rule name="mutator">InvasionMutator</rule>
      </rules>
      <players>
         <player>
            <name>{XxX}Medic</name>
            <score>0</score>
            <deaths>-32767</deaths>
            <ping>52</ping>
            <team>0</team>
         </player>
         <player>
            <name>Xendr16</name>
            <score>282</score>
            <deaths>-32767</deaths>
            <ping>52</ping>
            <team>red</team>
         </player>
         <player>
            <name>Tigoda</name>
            <score>881</score>
            <deaths>-32767</deaths>
            <ping>36</ping>
            <team>red</team>
         </player>
         <player>
            <name>Seeker55</name>
            <score>913</score>
            <deaths>-32767</deaths>
            <ping>160</ping>
            <team>red</team>
         </player>
         <player>
            <name>Titcher</name>
            <score>510</score>
            <deaths>-32767</deaths>
            <ping>36</ping>
            <team>red</team>
         </player>
         <player>
            <name>[BBS]Ev!l</name>
            <score>438</score>
            <deaths>-32767</deaths>
            <ping>100</ping>
            <team>red</team>
         </player>
         <player>
            <name>PIOTREX(PL)</name>
            <score>1405</score>
            <deaths>-32767</deaths>
            <ping>76</ping>
            <team>red</team>
         </player>
         <player>
            <name>mager_pain</name>
            <score>-24</score>
            <deaths>-32767</deaths>
            <ping>100</ping>
            <team>red</team>
         </player>
      </players>
   </server>
   <server type="UT2004S" address="83.98.163.86:7777" status="UP">
      <hostname>83.98.163.86:7777</hostname>
      <name>#1 BBS Titan RPG vCTF</name>
      <gametype>xVehicleCTFGame</gametype>
      <map>VCTF-Slax</map>
      <numplayers>14</numplayers>
      <maxplayers>32</maxplayers>
      <ping>15</ping>
      <retries>0</retries>
      <rules>
         <rule name="gametype">xVehicleCTFGame</rule>
         <rule name="ServerMode">dedicated</rule>
         <rule name="AdminName">BattleMode</rule>
         <rule name="AdminEmail">BigBattleServers.com</rule>
         <rule name="ServerVersion">3369</rule>
         <rule name="GameStats">True</rule>
         <rule name="MaxSpectators">8</rule>
         <rule name="MapVoting">true</rule>
         <rule name="KickVoting">true</rule>
         <rule name="UTExtra">v1.5</rule>
         <rule name="Mutator">TTeamFixMut|MutXxxXTranslocator|MutRPGMantarunAssist|mutRPGFlags|DeployableFun|MutTitanRPGFixes|MutUT2004RPG|mutBalance|MutUTAN|ResSltMut|UTExtra</rule>
         <rule name="XxxX Trans Version">v3a</rule>
         <rule name="XxxX Trans Trails">Enabled</rule>
         <rule name="XxxX Trans TossForce">1500</rule>
         <rule name="XxxX Trans Ammo">Default</rule>
         <rule name="UT2004RPG Version">2.2 Special #1 build 002</rule>
         <rule name="Starting Level">1</rule>
         <rule name="Stat Points Per Level">5</rule>
         <rule name="Current Avg. Level">70.50</rule>
         <rule name="Highest Level Player">D@rkeMule (108)</rule>
         <rule name="Magic Weapon Chance">66%</rule>
         <rule name="Magical Starting Weapons">False</rule>
         <rule name="Artifacts">True</rule>
         <rule name="Ironman Mode">False</rule>
         <rule name="Titan Admin Hax Version">0.29j</rule>
         <rule name="TitanTeamFixVersion">v1.0beta19_Test</rule>
         <rule name="MinPlayers">6</rule>
         <rule name="EndTimeDelay">4.00</rule>
         <rule name="GoalScore">7</rule>
         <rule name="TimeLimit">15</rule>
         <rule name="Translocator">False</rule>
         <rule name="WeaponStay">True</rule>
         <rule name="ForceRespawn">False</rule>
         <rule name="BalanceTeams">True</rule>
         <rule name="PlayersBalanceTeams">True</rule>
         <rule name="FriendlyFireScale">0%</rule>
         <rule name="mutator">DMMutator18|ResSltMut0|UTExtra0|TTeamFixMut0|MutXxxXTranslocator0|MutRPGMantarunAssist0|mutRPGFlags0|DeployableFun0|MutTitanRPGFixes0|MutUT2004RPG0|mutBalance0|MutUTAN0</rule>
      </rules>
      <players>
         <player>
            <name>Mr.barmalei</name>
            <score>21</score>
            <deaths>-32767</deaths>
            <ping>68</ping>
            <team>blue</team>
         </player>
         <player>
            <name>Merzkii(Vile)</name>
            <score>19</score>
            <deaths>-32767</deaths>
            <ping>76</ping>
            <team>red</team>
         </player>
         <player>
            <name>Satin_&lt;Frebel&gt;</name>
            <score>44</score>
            <deaths>-32767</deaths>
            <ping>80</ping>
            <team>red</team>
         </player>
         <player>
            <name>Incomming</name>
            <score>23</score>
            <deaths>-32767</deaths>
            <ping>140</ping>
            <team>blue</team>
         </player>
         <player>
            <name>D@rkmagician</name>
            <score>30</score>
            <deaths>-32767</deaths>
            <ping>124</ping>
            <team>blue</team>
         </player>
         <player>
            <name>Glop</name>
            <score>17</score>
            <deaths>-32767</deaths>
            <ping>72</ping>
            <team>blue</team>
         </player>
         <player>
            <name>RSDomology</name>
            <score>6</score>
            <deaths>-32767</deaths>
            <ping>76</ping>
            <team>red</team>
         </player>
         <player>
            <name>(PPG)Gabba_Gandalf</name>
            <score>5</score>
            <deaths>-32767</deaths>
            <ping>80</ping>
            <team>red</team>
         </player>
         <player>
            <name>alpha3</name>
            <score>6</score>
            <deaths>-32767</deaths>
            <ping>80</ping>
            <team>blue</team>
         </player>
         <player>
            <name>WeaponDistrib.</name>
            <score>31</score>
            <deaths>-32767</deaths>
            <ping>92</ping>
            <team>blue</team>
         </player>
         <player>
            <name>~SD~V_Mac</name>
            <score>2</score>
            <deaths>-32767</deaths>
            <ping>68</ping>
            <team>blue</team>
         </player>
         <player>
            <name>surox</name>
            <score>1</score>
            <deaths>-32767</deaths>
            <ping>76</ping>
            <team>red</team>
         </player>
         <player>
            <name>eF[5tr4wb3rry]</name>
            <score>0</score>
            <deaths>-32767</deaths>
            <ping>84</ping>
            <team>red</team>
         </player>
         <player>
            <name>blubb</name>
            <score>0</score>
            <deaths>-32767</deaths>
            <ping>0</ping>
            <team>red</team>
         </player>
      </players>
   </server>
   <server type="UT2004S" address="83.98.163.86:8888" status="UP">
      <hostname>83.98.163.86:8888</hostname>
      <name>#1 BigBattleServers.com MULTI RPG</name>
      <gametype>xCTFGame</gametype>
      <map>CTF-Face3</map>
      <numplayers>0</numplayers>
      <maxplayers>32</maxplayers>
      <ping>16</ping>
      <retries>0</retries>
      <rules>
         <rule name="gametype">xCTFGame</rule>
         <rule name="ServerMode">dedicated</rule>
         <rule name="AdminName">BattleMode</rule>
         <rule name="AdminEmail">BigBattleServers.COM</rule>
         <rule name="ServerVersion">3369</rule>
         <rule name="GameStats">True</rule>
         <rule name="MaxSpectators">4</rule>
         <rule name="MapVoting">true</rule>
         <rule name="KickVoting">true</rule>
         <rule name="Mutator">MutXxxXTranslocator|MutUTAN|MutUT2004_RPG_TC04|MutUT2k4ScoreRecovery_v3_RPG|MutRPGKIT|MutDruidRPG|MutNoSuperWeapon|DeployableFun</rule>
         <rule name="XxxX Trans Version">v3a</rule>
         <rule name="XxxX Trans Trails">Enabled</rule>
         <rule name="XxxX Trans TossForce">2000</rule>
         <rule name="XxxX Trans Ammo">Unlimited</rule>
         <rule name="Starting Level">1</rule>
         <rule name="Stat Points Per Level">6</rule>
         <rule name="Current Avg. Level">0.00</rule>
         <rule name="Highest Level Player">Dark_Lady (131)</rule>
         <rule name="Magic Weapon Chance">80%</rule>
         <rule name="Magical Starting Weapons">False</rule>
         <rule name="Artifacts">True</rule>
         <rule name="Ironman Mode">False</rule>
         <rule name="RPG KIT">TC04 Build 41.70.65 (Jan 11 2008)</rule>
         <rule name="MinPlayers">8</rule>
         <rule name="EndTimeDelay">4.00</rule>
         <rule name="GoalScore">3</rule>
         <rule name="TimeLimit">20</rule>
         <rule name="Translocator">True</rule>
         <rule name="WeaponStay">True</rule>
         <rule name="ForceRespawn">False</rule>
         <rule name="BalanceTeams">True</rule>
         <rule name="PlayersBalanceTeams">True</rule>
         <rule name="FriendlyFireScale">0%</rule>
         <rule name="mutator">DMMutator|UAdminMod</rule>
      </rules>
      <players>
      </players>
   </server>
</qstat>
I play as BattleMode. I also own and manage the BigBattleServers.com servers :alien:.

Image
User avatar
BattleMode
Owner
 
Posts: 5274
Joined: June 2nd, 2007
Location: The Netherlands

Re: Working on: AllGameServers.com / TheCLQ.com

Postby BattleMode on July 1st, 2008

Some design stuff.

Ordered a server for this stuff now. Will try 1TB+ storage, Quad Core, 3 GB RAM, Linux, 100mbit.

The raw collected data will be HUGE. With TheCLQ I used to delete the raw data, but perhaps I can do different now.

There will be about 100.000 live game servers in the database of which about 10.000 will be active (have 2 or more players).

I intend to use differential scanning (TheCLQ scanned all servers once per minute, that's overkill):
Class 1: once per minute, top 1000 (?) servers - 1000 servers per minute
Class 2: once per 3 minutes, top 9000 (?) servers - 1000 servers per minute
Class 3: once per 10 minutes, all 100.000+ servers - 10.000 servers per minute
Class 4: once per hour, servers that have been down for over am hour
Class 5: once per day, servers that have been down for over a day

This all adds up to about 10.000 servers per minute (170 per second). I used to do much bigger amounts so that should be possible. Once I have somethign working I can tune these numbers.

Stats to be kept per server (besides stuff like name etc.):
  • Last successful scan timestamp
  • Downtime (missed scans)
  • Statistics for number of players (last hour, day, week, month, etc.)
  • Normalized to minutes, PPM per player per week in slots (float)
  • Number of played minutes (detected) per player per week
  • Number of collected points per player per week
  • Some form of ELO (not sure yet how to achieve that TBH, since it is not incremental)
  • End game rankings (can only be approached)

One significant difference I have in mind compared to what I did 10 years ago is live data. The AllGameServers.com site should get live data (e.g. who is playing where NOW), TheCLQ.com site should get the rankings etc. Preferably you should be able to enter a list of your favorite players, store that and get an overview of where they are playing on a special personal web page. Where technically possible you should then be able to launch the game directly from the browser.

TheCLQ used to differentiate between gametypes. Not sure yet how to handle that this time. For the player stats I will probably focus on per server statistics this time (global stats are crap anyway, although I might do them anyway) so gametype might be less relevant.
I play as BattleMode. I also own and manage the BigBattleServers.com servers :alien:.

Image
User avatar
BattleMode
Owner
 
Posts: 5274
Joined: June 2nd, 2007
Location: The Netherlands

Re: Working on: AllGameServers.com / TheCLQ.com

Postby BattleMode on July 1st, 2008

I play as BattleMode. I also own and manage the BigBattleServers.com servers :alien:.

Image
User avatar
BattleMode
Owner
 
Posts: 5274
Joined: June 2nd, 2007
Location: The Netherlands

Re: Working on: AllGameServers.com / TheCLQ.com

Postby BattleMode on July 1st, 2008

Map related statistics per server:
  • Minutes played
  • Average number of players on the map
  • Player increase / decrease statistics

E.g. these stats should allow a server owner to determine which maps to dump because they scare away players.
I play as BattleMode. I also own and manage the BigBattleServers.com servers :alien:.

Image
User avatar
BattleMode
Owner
 
Posts: 5274
Joined: June 2nd, 2007
Location: The Netherlands

Re: Working on: AllGameServers.com / TheCLQ.com

Postby BattleMode on July 5th, 2008

Did some experimenting with memcached, very interesting stuff. http://www.danga.com/memcached
I play as BattleMode. I also own and manage the BigBattleServers.com servers :alien:.

Image
User avatar
BattleMode
Owner
 
Posts: 5274
Joined: June 2nd, 2007
Location: The Netherlands

Re: Working on: AllGameServers.com / TheCLQ.com

Postby BattleMode on July 5th, 2008

Empty site is up now: http://allgameservers.com
CLQ site is also up, but I will not replace that until I have something to show: http://theclq.com (200.673.123 pageviews so far)

I have ordered a server and will use the BBS servers to build things while waiting for that. I will probably not start large scale scanning until the server arrives.

One thing I am not certain about yet is how I am going to do data processing. In the past I use a C application for that since C is very very fast. But in 10 years CPUs have become much faster so I am considering to use PHP now. Disadvantage being that it is slower, advantage being that it takes less time to build things. I might just start with PHP, see where it breaks and then replace the broken parts with C applications.
I play as BattleMode. I also own and manage the BigBattleServers.com servers :alien:.

Image
User avatar
BattleMode
Owner
 
Posts: 5274
Joined: June 2nd, 2007
Location: The Netherlands

Re: Working on: AllGameServers.com / TheCLQ.com

Postby BattleMode on July 6th, 2008

Moved TheCLQ site to a different server, changed the DNS settings and replaced "May the fragging go on forever." with "We WILL be back... ". DNS changes are slow so it will be a while before these changes are visible.
I play as BattleMode. I also own and manage the BigBattleServers.com servers :alien:.

Image
User avatar
BattleMode
Owner
 
Posts: 5274
Joined: June 2nd, 2007
Location: The Netherlands

Re: Working on: AllGameServers.com / TheCLQ.com

Postby BattleMode on July 6th, 2008

Made some changes to http://www.theclq.com to make clear I am working on a comeback. Boy did I make crappy HTML 10 years ago (not that my current HTML is so great). Anyways, updated the information there and created links to the BBS and Titan forums. Even though the site has been static for 5 years there are still hundreds of weekly visitors there.
I play as BattleMode. I also own and manage the BigBattleServers.com servers :alien:.

Image
User avatar
BattleMode
Owner
 
Posts: 5274
Joined: June 2nd, 2007
Location: The Netherlands

Re: Working on: AllGameServers.com / TheCLQ.com

Postby BattleMode on July 6th, 2008

Integrated the scanner stuff into PHP and made a nice parser for it.

First results:
Code: Select all
    [83.98.163.86:7777] => Array
        (
            [name] => #1 BBS Titan RPG vCTF
            [players] => 6
            [maxplayers] => 32
            [map] => VCTF-WinterDocks-Titan
            [playerlist] => Array
                (
                    [Kraut1958] => 36
                    [Jarzabek_PL] => 94
                    [Terrorblade] => 25
                    [hellsduck] => 29
                    [blubb] => 88
                    [ZZZip] => 5
                )

        )
I play as BattleMode. I also own and manage the BigBattleServers.com servers :alien:.

Image
User avatar
BattleMode
Owner
 
Posts: 5274
Joined: June 2nd, 2007
Location: The Netherlands

Re: Working on: AllGameServers.com / TheCLQ.com

Postby OpT_fr on July 6th, 2008

multi-dimensionnal arrays with labels ? I love this in php.
this code looks like a xml file :)
User avatar
OpT_fr
*****
 
Posts: 366
Joined: January 28th, 2008
Location: Brussels, Belgium

Re: Working on: AllGameServers.com / TheCLQ.com

Postby BattleMode on July 6th, 2008

OpT_fr wrote:multi-dimensionnal arrays with labels ? I love this in php. this code looks like a xml file :)
Yes, multidimensional associative arrays rule.
I play as BattleMode. I also own and manage the BigBattleServers.com servers :alien:.

Image
User avatar
BattleMode
Owner
 
Posts: 5274
Joined: June 2nd, 2007
Location: The Netherlands

Re: Working on: AllGameServers.com / TheCLQ.com

Postby BattleMode on July 9th, 2008

The Internet is an amazing place.

Tried to remember how I used to do some things, but the Wayback Machine remembered it for me:

http://web.archive.org/web/200302101549 ... com/qa.asp

It seems I used 5 servers (I forgot about that) and the database server used a 450MHz, 256Mb server running MS SQL-Server 7.0.

It's also interesting to see that Counterstrike has been #1 for a long while now:

(2003) http://web.archive.org/web/200304060832 ... /games.asp

(2000) http://web.archive.org/web/200003020346 ... /games.asp

Image
Image

Some old news: http://web.archive.org/web/200005112207 ... m/news.asp (seems CNN once mentioned the site, forgot about that as well)
I play as BattleMode. I also own and manage the BigBattleServers.com servers :alien:.

Image
User avatar
BattleMode
Owner
 
Posts: 5274
Joined: June 2nd, 2007
Location: The Netherlands

Re: Working on: AllGameServers.com / TheCLQ.com

Postby BattleMode on July 12th, 2008

Design for the ranking systems and server statistics.

For now I intend to scan EACH active server (about 10.000-20.000 of those) once every 2 minutes (this idea might change once I start actually scanning on a large scale).

There will be several types of ranking (ranking is week based weeks running from monday to sunday):
* CLQ1 (point collection speed): based on how fast someone can collect points (old CLQ method)
* CLQ2 (relative game ranking): how good you are at reaching the top of the list
* ELO: a common statistical method used for chess, football, etc.
* Absolute number of points collected in a week
* Absolute number of seconds played in a week
CLQ1 and CLQ2 only look at your best games, ELO looks at all your games.

Key management
There will be a key for each player, each server, each map and each week. A key is a number. Each key is stored in a separate HYPERSTORE object and a separate MYSQL record to allow extreme rapid name -> key transformations. Key generation will be the only atomic (slow) operation.

For each player, each server: MYSQL
* top 3 best positions (all weeks but the current) based on CLQ1, CLQ2 and ELO (this means the highest someone can achieve here is to become #1 in 3 different weeks, this can be used to determine the all time best players on servers)

For each week, each map, each server: HYPERSTORE / MYSQL
* number of minutes played
* average number of players on map

For each server: HYPERSTORE (2 layers for long term stats and short term stats)
* current server rank (based on last weeks statistics)
* last seen (timestamp)
* current map
* missed scans (possible server is down, 1-2 missed scans is assumed to be a mistake, 3 a real problem)
* scanning speed class
CLASS 1: missed at most 2 scans, at least 3 players, once per 2 minutes
CLASS 2: missed at most 10 scans, once per 10 minutes
CLASS 3: missed at most 20 scans, once per hour
CLASS 4: missed at most 30 scans, once per day
CLASS 5: missed at most 40 scans, once per week
CLASS 6: status unknown (e.g. new address), scanned manually
CLASS 7: manual scan failed, scanned manually in exception mode
* last total points
* last complete list of player/point combination's
* last 3 number of player measurements (current, previous, one before that), the median of those 3 is the number of players that is assumed to be on this server for long term statistics, e.g. to ignore map changes somehow other stat sites do not seem to take this into account
* average number of players per 10 minutes for the last 25 hours (compressed into 250 bytes, compression is based on a logarithmic scale)
* average number of players per hour for the last 32 days (compressed into 768 bytes)
* average number of players per day for the last 365 days (compressed into 365 bytes)
* average number of players per week for ever and ever (compressed into 1 byte per week)
* server rank for the last 55 weeks (compressed into 110 bytes, max rank being 50.000)

For all weeks (including current), each player, each server: MYSQL
* estimate total minutes played
* estimate total points collected
* ELO, CLQ1 and CLQ2 position

For current week, each player, each server: HYPERSTORE
* total minutes measured
* total game starts (assume 60 seconds of unseen game play per start)
* total points collected
* current ELO rating (the average ELO rating of all players compared with your own ELO rating to determine where you should have ended, example if you end #10 with 10 players each having 1000 your rating will become 888, see also: http://www.kosteniuk.com/EloCalc/elo.php)
* CLQ1: top 10 segments of 720 seconds with a an estimate of points per second for that segment
* CLQ2: top 10 relative game rankings (You take the number of points of the worst player of the best 25% players, take the number of players who have at least 25% of the points this player has, this number is the amount of points the #1 player gets. The #2 player gets 1 points less, etc. Of these points the top 10 (best 10 games in this week) is kept. So the general idea is that the number of "serious" players you have beaten determines how well you played. Since this is complicated an example:
#1 - 120
#2 - 100
#3 - 90
#4 - 89
#5 - 70
#6 - 40
#7 - 30
#8 - 20
#9 - 12
#10 - 3
#11 - 1
#12 - 0

The worst player of the best 25% (top 3 in this case) has 90 points. 25% of 90 is 22.5 so we only look at the top 8 players and ignore the bottom 4 players. So player #1 gets 8 points for this game, player #2 gets 7 points for this game, etc.)

Remarks:
* since the entire server state can be compared players entering and leaving can be detected
* if a server is invisible for > 720 seconds, assume all players have left and entered
* if the total points on the server is reduced a lot (meaning a new round has started) collect the last complete list of player/point combination's to update the stats (ELO and CLQ2)
I play as BattleMode. I also own and manage the BigBattleServers.com servers :alien:.

Image
User avatar
BattleMode
Owner
 
Posts: 5274
Joined: June 2nd, 2007
Location: The Netherlands

Re: Working on: AllGameServers.com / TheCLQ.com

Postby BattleMode on July 12th, 2008

Got the first version of HYPERSTORE working (I like names like that).

For the first version of The CLQ I made a custom IMDB (in memory database) in C that was capable of 100.000 transactions per second.

HYPERSTORE is based on PHP, memcached and MySQL.

Some stats (single tread, single core):

SAVE / LOAD 1000 small objects
1000 SAVES: 77 ms
1000 LOADS: 49 ms
1000 SURE SAVES: 172 ms
1000 SLOW LOADS: 208 ms
SAVE / LOAD 1000 big objects
1000 SAVES: 214 ms
1000 LOADS: 155 ms
1000 SURE SAVES: 822 ms
1000 SLOW LOADS: 337 ms

It is hard to compare this to my old stuff (e.g. new stuff can handle complicated multidimensional associative arrays aka complex XML objects) but it is a lot faster than native MySQL on a idle machine. On a busy machine the difference will be even larger since HYPERSTORE is mostly aimed at minimizing disk I/O. Also I made it tunable, so if the server can no longer handle the load I can simply change the settings to increase performance (this also increases the chance of data loss in case of a crash BTW, there has to be a disadvantage to that).

BTW tomorrow the server I ordered for this will be placed in the hosting center. I ordered a Quad Core Q9450 with 3 GB RAM and 320 GB + 1000 GB storage.
I play as BattleMode. I also own and manage the BigBattleServers.com servers :alien:.

Image
User avatar
BattleMode
Owner
 
Posts: 5274
Joined: June 2nd, 2007
Location: The Netherlands

Re: Working on: AllGameServers.com / TheCLQ.com

Postby BattleMode on July 13th, 2008

Got a first version of a UT2004 server collector and checker working (something that finds potential servers and figures out if they work properly).

One server I found had some weird problems (took me a LONG while to figure those out, the garbage that server returns is so intense it made my scanner crash when I tried to detect the active players): 70.188.160.216:7777

Now made my checker so that this type of servers is not scanned at all (as they should).

I was curious how game-monitor handles this: http://www.game-monitor.com/ut2004_Game ... ables.html seems they show that server anyway. I will make a different choice here.
I play as BattleMode. I also own and manage the BigBattleServers.com servers :alien:.

Image
User avatar
BattleMode
Owner
 
Posts: 5274
Joined: June 2nd, 2007
Location: The Netherlands

Re: Working on: AllGameServers.com / TheCLQ.com

Postby ~SD~Sonicelo on July 13th, 2008

Is it only me or this server looks like hardcore moded lol? 255 players?
User avatar
~SD~Sonicelo
*****
 
Posts: 556
Joined: April 30th, 2008
Location: Maribor, Slovenia

Re: Working on: AllGameServers.com / TheCLQ.com

Postby BattleMode on July 13th, 2008

~SD~Sonicelo wrote:Is it only me or this server looks like hardcore moded lol? 255 players?
It's a weird server. It made me curious so I played on it. Incredible amount of downloads needed and it had a very special gametype.
I play as BattleMode. I also own and manage the BigBattleServers.com servers :alien:.

Image
User avatar
BattleMode
Owner
 
Posts: 5274
Joined: June 2nd, 2007
Location: The Netherlands

Re: Working on: AllGameServers.com / TheCLQ.com

Postby Slaughter on July 19th, 2008

All this looks very cool. Amazing how you come up with this so fast. Is there any particular reason on your server that you went with 3GB of RAM instead of an even 4? I would think for an IMDB that you would want as much as possible.
Slaughter
Community Forums | UT3 Servers
BattleRPG Invasion: 64.37.73.212
Slaughter
***
 
Posts: 38
Joined: December 13th, 2007
Location: Memphis, TN (USA)

Next

Return to TheCLQ.com / AllGameServers.com

Who is online

Users browsing this forum: No registered users and 1 guest

cron