Server reporting and data mining
Static view on the database
Provided by webconsole with the following statistics:
- Hardware
- New Accounts
- New Accounts (with at least one login)
- New Characters
- New Characters (with time>0)
- Retention time
- Char Stats: Strength
- Char Stats: Endurance
- Char Stats: Agility
- Char Stats: Intelligence
- Char Stats: Will
- Char Stats: Charisma
- Skill: Sword
- Skill: Light Armor
- Skill: Medium Armor
- Skill: Heavy Armor
- Skill: Crystal Way
- Skill: Melee
- Char Money
- Completed Quests (* !!)
- Pending Quests(* !!)
To operate it needs apache running, with proper webdirectory example:
Alias /webconsole "F:\Luca\Crystal Space\planeshift\www\webconsole-new" <Directory "F:\Luca\Crystal Space\planeshift\www\webconsole-new"> AllowOverride All Options Indexes FollowSymLinks Require all granted </Directory>
The config is in ../secure/db_config.php
Dynamic view generated by the server at runtime
In the main server dir we have report.xml which contains the following data, generate by ServerStatus class in planeshift\trunk\src\server\serverstatus.h:
First section, global data:
<server_report time="Sun Feb 21 17:27:01 2021" now="1613928421" number="576358" client_count="13" mob_births="4810" mob_deaths="4810" player_deaths="49" sold_items="11400" sold_value="5994348" totalMoneyIn="6215083" totalMoneyOut="693285">
Second section, one line for each player connected:
<player name="Sedilo" characterID="9520875" guild="" title="" security="0" kills="3" deaths="0" suicides="0" pos_x="-586.10" pos_y="49.93" pos_z="-14.94" sector="bdgug02" />
Third section, with NPC data and realtime position:
<npc name="Aleena Arlavin" characterID="31" kills="0" deaths="0" suicides="0" pos_x="-131.30" pos_y="33.89" pos_z="-86.00" sector="hydlaa_plaza" />
Static view generated by rrdtool
rrdtool is a standard package, you can get it with apt-get rrdtool in Ubuntu
For accounts and characters created, rrdtool is executing every x minutes:
SELECT Count(*) from accounts; SELECT Count(*) from characters;
This populates pscharacters.rrd and psaccounts.rrd
Then is reading report.xml and extracting:
psonline.rrd (Player online) psmobs.rrd (NPC birth and deaths) psplayers.rrd (Player deaths) psecon.rrd (Economy)
My Plane dynamic view
Generated by /home/planeshift/myplane/cronjob.php , it takes report.xml present in the main server dir and reads characterid and sector and putting this info in the myplane database
INSERT INTO `active_characters` (`characterid`,`sector`) VALUES ( :id, :sector )');
This is then read by MyPlane when showing the online or offline status of the character
Main web site statistics
We have a guilds page which is listing the top guild, with creation date and number of members.
https://www.planeshift.it/guilds
Wish list
Described in the Analysis_package done for GSoC.
The majority was implemented we miss these ones:
- The races in % of all characters, and ones with >10 hours of gameplay.
- The average of diff between account creation and last login by quarter.
- Average damage done by a character to an NPC (server managed creature) within a day.
- Average damage done by an NPC (server managed creature) to a character within a day.
- Highest amount of tria (virtual money) owned by a user
- How many trias (virtual money) an average guild has after certain amount of hours of existence in bank
- Highest amount of tria (virtual money) owned by a guild in bank
- Details about the total wealth of a guild including or excluding money in bank (sum up money of each player in the guild)
Items
- How many users use crafting for creating new items
- Number of crafted items a day.
- Number of crafted items used vs looted items.
- Average value of crafted items.
- Average value of looted items.