(Go back to the main GSoC 2015 page)
Our server and client are all coded in C++ and the database is MySql. For this project the idea is to add in C++ some functions to store the data, but the majority of the work will then be done with PHP on web pages to summarize and create reports. The data can will be exported in mysql tables and then read by the PHP pages. TO summarize there is need of C++ (not very advanced), good knowledge of PHP (medium to high) and some knowledge of mysql.
Analysis package for data mining
A mmorpg database contains millions data rows, at the present time we have thousands of accounts, entities, items, skills and every second a dozens of transactions are executed growing the database.
All this data is incredible valuable information to us, because we can extract from it player behaviours, economy trends, rate of item creation and destruction, money that gets consumed.
Today we use a series of XML files to generate some very basic statistics on usage, plus we have some log files for general error logging
This is a report created with rrdtool and our XML export to get some statistics of in game events.
The presentation of the data analyzed should be displayed in a dedicated web site. The data in not needed in game, and should NOT be displayed in game in the client. To create the charts an existing library can be used, for example : http://pchart.sourceforge.net
Here are some ideas on the data mining we may need.
Accounts and retention
- Accounts registered by quarter and accounts logged at least one time by quarter.
- Hours connected by characters.
- 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.
Abilities to interact with the virtual world
- Average of all stats for users with certain amount of hours they have been connected to the virtual world.
- Average of most relevant skills for users with certain amount of hours connected.
- 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.
- Number of killed users each day
- Number of killed creatures each day
Wealth possessed or generated
- How many trias (virtual money) an average user has after certain amount of hours connected
- How many items an average user has after certain amount of hours connected
- 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 complexive wealth of a guild including or excluding money in bank
- 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.
The need is to create a server side component which is able to better handle export to XML format or to some db tables, and is able to access at least the following information:
- Users accounts
- Users groups
- Usage and connection information
- Developers activities while on the server
(To be detailed better) ......