Feature Specification: 1984 Logging
Posted: Fri Feb 09, 2007 1:12 am
1984L Project Specifications
Background:
In order to prepare the following proposal, I read all the available threads concerning the proposed use of a logging system in ALFA2. I have tried to incorporate as many suggestions and ideas concerning this as possible. When opinions differed, I have necessarily made some decisions in order to forward a complete project proposal. Nonetheless, if members of the community feel strongly that elements of this proposal will not meet their needs, please inform me ASAP so we can quickly resolve a satisfactory plan.
Structural Design:
I. In-game hooks to capture data
a. Description: A process, consistent with the existing NWN2 scripting environment, to extract data from within the game environment.
b. Responsibilities
i. It is the responsibility of the 1984L team to provide a standardized format for data output.
ii. It is the responsibility of individual team leaders to implement that format into their builds and update the necessary resources.
II. Centralization
a. Presumably, the different N2 servers will be running on different machines at different locations. Extracted information will come off the servers locally and be passed to a central location for data parsing and storage.
b. Responsibilities
i. It is the responsibility of the 1984L team to provide the tool, installation and maintenance instructions for each team to run the tool with their server.
ii. It is the responsibility of individual team leaders to ensure the tool is implemented with their server.
III. mySQL driven database
a. A database structure containing the log data for the ALFA2 world-base.
b. Responsibilities
i. It is the responsibility of the 1984L team to define and maintain this resource.
IV. PHP driven web-based access
a. A web-based interaction that allows direct connectivity to the central database.
b. Responsibilities
i. It is the responsibility of the 1984L team to maintain this resource and to interact with the community to provide services through this resource.
V. In-game hooks to retrieve data
a. A process, consistent with the existing NWN2 scripting environment, to retrieve data from the central database.
b. Responsibilities
i. It is the responsibility of the 1984L team to provide a standardized format.
ii. It is the responsibility of individual team leaders to implement that format into their builds and update the necessary resources.
Data Structure: (Draft)
Goal – develop a core data structure and data handling mechanism that allows a minimum data logging system to be deployed and easily scaled up to contain additional logging information. The key things to define here are the differences in when and how we extract various data types from server. For example, if we want to capture things like player transitions in the game, that data is very dynamic and has to be captured during actual play compared with getting a dump from stored items or parsing the character vault.
I. Network information
a. IPs
b. Login
c. Activity
II. Player Character Information
a. Stats
b. equipment
c. gold
III. Persistent Storage
a. chests
b. bank
c. houses
IV. Gameplay
a. Combat
b. Transitions
c. Zones
V. Transients
a. Trade transactions
b. Drops
c. pick-ups
Proposed 1984L Services:
I. Security Access and Backup
a. Access to the DB will be limited to 1984L and designated ALFA2 administration.
b. Routine backup and DB cleanup will be performed
II. Automated alarms
a. Certain conditionals will be set to generate automatic server-wide DM alarms
III. Standard reporting
a. A standardized reporting format will be available to each server team leader.
b. The report will be available on the web and have certain services to facilitate information review.
IV. Petition for information system
a. A means for requesting log information will be provided to all DM’s to support investigations of player abuse.
Development Plan:
I. Alpha
a. Goals
i. Define the smallest test data set consistent with expansion.
ii. Select a single server team to test 1984L systems.
iii. Develop prototype resources and basic implementation for In-game hooks to capture data, Centralization/Parsing, and mySQL database.
II. Beta
a. Goals
i. Work with other server team leads to get minimum 1984L embedded into their builds.
ii. Develop and test complete network resources.
III. Core System (Live)
a. Goals
i. Deploy beta 1984L system to live servers
ii. Enable basic web-based DB access with Petition for Information Service.
iii. Develop and test In-game hooks to retrieve data
IV. Expansion Plan (Post-Live)
a. Goals
i. Develop and test advanced reporting services
ii. Develop and test automated alarm service
iii. Deploy services as they come online
So, there it is… my first pass at this. In summary, my first goal would be to categorize all possible log data into four categories:
Test
The absolute smallest set of log data that represents the different ways we will extract data from the servers. This should be way fewer elements than what people think is the least amount of log data necessary to do basic play-server surveillance. The most important element of this data set is its technical diversity (i.e. when/how is this data extracted from the server?). If we are going to extract login attempts, that is different than extracting data that streams out live from the game (such as items PC’s trade, drop or place in containers), and different than doing a data dump on logout or parsing the character vault. We need to come up with a single prototype for each of these data types and use them to test the overall build.
Core
This is the minimum data set that people think is necessary for the servers to go ‘live’. This should not encompass all exploit or data-mining possibilities, but instead impart some security for the obvious things while providing server leads with important aggregate statistics of their game.
Expansion
All data types that can be easily expanded into the existing data structure and are considered desirable and useful to the community. We will prioritize this list by desire and ease of incorporation.
Development
Data types that pose technical problems to the existing structural design and require significant R&D to get them working.
Ok, so that is it. *Braces himself for criticism*
Background:
In order to prepare the following proposal, I read all the available threads concerning the proposed use of a logging system in ALFA2. I have tried to incorporate as many suggestions and ideas concerning this as possible. When opinions differed, I have necessarily made some decisions in order to forward a complete project proposal. Nonetheless, if members of the community feel strongly that elements of this proposal will not meet their needs, please inform me ASAP so we can quickly resolve a satisfactory plan.
Structural Design:
I. In-game hooks to capture data
a. Description: A process, consistent with the existing NWN2 scripting environment, to extract data from within the game environment.
b. Responsibilities
i. It is the responsibility of the 1984L team to provide a standardized format for data output.
ii. It is the responsibility of individual team leaders to implement that format into their builds and update the necessary resources.
II. Centralization
a. Presumably, the different N2 servers will be running on different machines at different locations. Extracted information will come off the servers locally and be passed to a central location for data parsing and storage.
b. Responsibilities
i. It is the responsibility of the 1984L team to provide the tool, installation and maintenance instructions for each team to run the tool with their server.
ii. It is the responsibility of individual team leaders to ensure the tool is implemented with their server.
III. mySQL driven database
a. A database structure containing the log data for the ALFA2 world-base.
b. Responsibilities
i. It is the responsibility of the 1984L team to define and maintain this resource.
IV. PHP driven web-based access
a. A web-based interaction that allows direct connectivity to the central database.
b. Responsibilities
i. It is the responsibility of the 1984L team to maintain this resource and to interact with the community to provide services through this resource.
V. In-game hooks to retrieve data
a. A process, consistent with the existing NWN2 scripting environment, to retrieve data from the central database.
b. Responsibilities
i. It is the responsibility of the 1984L team to provide a standardized format.
ii. It is the responsibility of individual team leaders to implement that format into their builds and update the necessary resources.
Data Structure: (Draft)
Goal – develop a core data structure and data handling mechanism that allows a minimum data logging system to be deployed and easily scaled up to contain additional logging information. The key things to define here are the differences in when and how we extract various data types from server. For example, if we want to capture things like player transitions in the game, that data is very dynamic and has to be captured during actual play compared with getting a dump from stored items or parsing the character vault.
I. Network information
a. IPs
b. Login
c. Activity
II. Player Character Information
a. Stats
b. equipment
c. gold
III. Persistent Storage
a. chests
b. bank
c. houses
IV. Gameplay
a. Combat
b. Transitions
c. Zones
V. Transients
a. Trade transactions
b. Drops
c. pick-ups
Proposed 1984L Services:
I. Security Access and Backup
a. Access to the DB will be limited to 1984L and designated ALFA2 administration.
b. Routine backup and DB cleanup will be performed
II. Automated alarms
a. Certain conditionals will be set to generate automatic server-wide DM alarms
III. Standard reporting
a. A standardized reporting format will be available to each server team leader.
b. The report will be available on the web and have certain services to facilitate information review.
IV. Petition for information system
a. A means for requesting log information will be provided to all DM’s to support investigations of player abuse.
Development Plan:
I. Alpha
a. Goals
i. Define the smallest test data set consistent with expansion.
ii. Select a single server team to test 1984L systems.
iii. Develop prototype resources and basic implementation for In-game hooks to capture data, Centralization/Parsing, and mySQL database.
II. Beta
a. Goals
i. Work with other server team leads to get minimum 1984L embedded into their builds.
ii. Develop and test complete network resources.
III. Core System (Live)
a. Goals
i. Deploy beta 1984L system to live servers
ii. Enable basic web-based DB access with Petition for Information Service.
iii. Develop and test In-game hooks to retrieve data
IV. Expansion Plan (Post-Live)
a. Goals
i. Develop and test advanced reporting services
ii. Develop and test automated alarm service
iii. Deploy services as they come online
So, there it is… my first pass at this. In summary, my first goal would be to categorize all possible log data into four categories:
Test
The absolute smallest set of log data that represents the different ways we will extract data from the servers. This should be way fewer elements than what people think is the least amount of log data necessary to do basic play-server surveillance. The most important element of this data set is its technical diversity (i.e. when/how is this data extracted from the server?). If we are going to extract login attempts, that is different than extracting data that streams out live from the game (such as items PC’s trade, drop or place in containers), and different than doing a data dump on logout or parsing the character vault. We need to come up with a single prototype for each of these data types and use them to test the overall build.
Core
This is the minimum data set that people think is necessary for the servers to go ‘live’. This should not encompass all exploit or data-mining possibilities, but instead impart some security for the obvious things while providing server leads with important aggregate statistics of their game.
Expansion
All data types that can be easily expanded into the existing data structure and are considered desirable and useful to the community. We will prioritize this list by desire and ease of incorporation.
Development
Data types that pose technical problems to the existing structural design and require significant R&D to get them working.
Ok, so that is it. *Braces himself for criticism*