[TagPro]

IMGD 2905 Project 3

TagPro Analytics

Due date: Saturday, April 8th, 11:59pm


The goal of this project is to use a complete game analytics pipeline on a simple, yet competitively played game with a level of your own design. This reinforces analyzing player behavior/performance in game at various depths. You design a level (map), get players to play your map (as well as play others' maps), analyze player data for your map and compare player performance for your map with other maps. Unlike in previous projects, rather than have forms of analysis (e.g., charts) described specifically, you are to use analytics knowledge you have acquired in doing your analysis. Results are presented in a report.


Top | P1 - Learn, Design, Play, Tools | P2 -WPI TagPro Maps | P3 - All TagPro Maps | P4 - TagPro Splats | Hints | Writeup | Submission | Grading

Part 1 - Learn to Play, Design Map, Play Maps, Install Tools

Learn to Play

Learn how to play TagPro, a free-to-play online multiplayer capture the flag game playable through a Web browser. The main TagPro page is at:

http://tagpro.gg/

Links that can help get started include:

When ready, visit:

http://tagpro-pi.koalabeast.com/
choose a server and click on "Play Now".

Play enough matches to get a good feel for the gameplay, including the different map features.

Design Map

Design a TagPro map. Visit:

http://unfortunate-maps.jukejuice.com/editor
and use the Web-based editor to design your own TagPro map (the interface allow you to save up to 3, but only need to use one for this project). While TagPro supports up to 8 players (4 per team), plan on 4 players for your map.

Give your map a name, prefixed with "2905-D17" so your classmates will be able to find your map when ready. You can test the map out by exporting it to:

http://unfortunate-maps.jukejuice.com/

In preparation for your report, take a screenshot of your map.

Play Maps

Userscript

In order to gather gameplay (and map) data for analysis, at least one person needs to install a Web browser userscript. The specific userscript needed is available at the top of the page:

https://tagpro.eu/

A separate Web browser plugin is the best way to install and manage userscripts. This is most easily done with the Add-on/Extension Tampermonkey:

http://tampermonkey.net/

Download and install Tampermonkey, then enable the userscript for TagPro.

Once installed, TagPro game data for completed games is saved locally. If a player account is registered, it is also uploaded at:

https://tagpro.eu/

Note! only matches that are completed generate saved data. Once a game completes, if the userscript is installed and working properly, a screen similar to:

[Userscript Save]

should show up. Note the option in green to "Save Tagpro Analytics file".

Playtest

Arrange a 1-2 hour time slot where everyone in your group can meet to play your maps. Preferably, you will be co-located (e.g., in a computer lab).

Play each map, one at a time, with all members of the group playing in the same game (i.e., 2v2).

To do this, export the map as mentioned above. Then, select it and click the "Test" button. You can join another player on the same map by making sure to use the same URL, including the port number. For example, the first player starts the test and gets the URL:

http://tagpro-maptest.koalabeast.com:8001/
The other 3 players enter the exact same URL into their browser to join the game. Again, make sure to include the port number ("8001" in the above example) to connect to the same map.

Play at least one game for each map.

Once a game is complete, the userscript saves the output into a .json file. Rename this based on the students' map (e.g., claypool.json). Use a -1, -2 if there is more than one per map (e.g., claypool-1.json, claypool-2.json).

Have one person in the group email one copy of each game file for each map added as an attachment, just like you would attach any other document when sending it to someone by email. Send them to professor Claypool, with the subject:

Subject: TagPro data

Install Tools

To analyze the TagPro output data, use PHP and a spreadsheet (e.g., Microsoft Excel). In order to use PHP, an interpreter needs to be installed on your computer.

  1. To install PHP on Linux:

    sudo apt-get install php

  2. To install PHP on Windows:

    1. Go to:
      http://windows.php.net/download/

      and download the appropriate zip file (probably VC14 x86 non thread safe). Extract it to the location where you want PHP to reside on your computer (e.g., C:\php).

    2. Change your user path to include the directory where PHP was extracted. There are a lot of online guides for how to change your path, including:

      http://php.net/manual/en/faq.installation.php#faq.installation.addtopath

For this project, professor Claypool has provided PHP Scripts that do the bulk of the data extraction required. Download and extract:

http://web.cs.wpi.edu/~imgd2905/d17/projects/proj3/proj3-php.zip

See the README.txt file enclosed for the zip file contents.

For details on the fields output by the provided match analysis script, see documentation at:

https://tagpro.eu/?science

Verify your PHP installation by running the examples indicated in the README.txt. For example:

php match-stats.php sample.json

should produce:

g_date, m_name, m_author, m_area, m_walls, m_flags, m_speeds, m_bttns, m_pwrups, m_spikes, m_bombs, m_gates, m_tlimit, g_duration, g_grabs_red, g_grabs_blue, g_captures_red, g_captures_blue, g_powerups_red, g_powerups_blue, g_pops_red, g_pops_blue, g_drops_red, g_drops_blue, g_tags_red, g_tags_blue, g_returns_red, g_returns_blue, g_player_degree_red, g_player_degree_blue, g_player_score_red, g_player_score_blue, g_team_score_red, g_team_score_blue,
1490443014, Tehuitzing, ThePlaymak, 1029, 162, 2, 6, 2, 3, 8, 2, 14, 12, 23035, 25, 29, 2, 3, 6, 12, 39, 35, 23, 26, 26, 39, 24, 27, 50, 286, 90, 149, 2, 3,

Important! The PHP scripts provided produce output to the screen, not to a file (e.g., not to a csv file). However, screen output can easily be written to file output by using re-direction (i.e., >). For example (underline for emphasis):

php match-stats.php sample.json > temp.csv
writes screen output to "temp.csv", which can then be opened in Excel.

In general, it is not expected for you to write nor modify the PHP code for this project. Instead, all analysis can be done using the provided scripts as-is. However, you are free to do so and/or write Python code for any additional extraction analysis you might need to do.


Part 2 - WPI TagPro Maps

Analyze data from the 2905-D17 TagPro games.

This should be done for the following components:

  1. Maps - analyze the different maps designed by the WPI 2905 class. This analysis should compare the static map features chosen by the map designers. For example, analysis of the map size or number of flags.

    Choose a visualization/chart that allows for comparison across maps. For example, you might draw a cumulative distribution of map sizes. Consider analyzing derived measures (e.g., "density", as some function of items/obstacles over size or "danger" as some combination of spikes and bombs).

  2. Gameplay - analyze gameplay for all WPI 2905 games. This analysis should compare the dynamic game data generated during play. For example, analyze match duration and/or number of pops.

  3. Maps and Gameplay - analyze the correlation between map characteristics and gameplay. For example, the relationship between map size and game duration. Scatter plots are excellent for this sort of analysis!

[Scatter Plot]

Important! In all the above analysis, be sure to analyze your matches (map and gameplay) compared to the other WPI 2905 matches.

For all the analysis above, be creative. Look to previous projects (Project 1 - League of Legends Player Analytics, Project 2 - Mazetool Analytics) for inspiration and class materials for the types of charts you might use in your exploration.


Part 3 - All TagPro Maps

Analyze data from all TagPro games.

This requires downloading data from using the "Download Matches" button from:

https://tagpro.eu/?science

The static "Download maps" are also needed, save in a file named "bulkmaps.json".

Note, the provided PHP script (see Part 1) convert-bulk-match.php is needed to embed the map json into the game json for further analysis. An example of how it can should be used:

  1. Download all the maps into "bulkmaps.json"
  2. Download some matches, say matches #110 to #1120 to "bulkmatches-110-120.json".
  3. Run:
    php convert-bulk-match.php bulkmatches-110-120.json
  4. Modify the above to re-direct (using >) the output into a file, say "converted-data.json".
  5. Run match stats (match-stats-multi.php) on the converted data.

Initially, choose a relatively small number of matches, perhaps 100, with indices chosen randomly. After that, expand to up to 1000 matches.

Promising analysis on maps and gameplay from Part 2 should be revised to include all TagPro data, both for maps and gameplay. Similarly, comparisons to your matches (map and gameplay) and WPI 2905 matches should be included, where appropriate.

[Scatter Plot]


Part 4 - TagPro Splats

Analyze splat data in your TagPro games.

The scripts provided in Part 1 include splats.php, that takes in match data and produces all the (x, y) map locations where players popped. The units seem to be in pixels, representing the center of the player sphere where it pops. For reference, one square is 20x20 pixels and the upper left of the map is (0,0).

For your map gameplay data, analyze the splats, visualizing where players popped. Possibilities include a 2d, overhead chart, or a chart showing distances between splats or between key map points and splats.

Comparisons of your map should be made to gameplay on other maps, considering the quantity and/or frequency of splats as well as location.

As for other aspects of the analysis in this project, there is not necessarily a "right" form of analysis for this part, but you should use your insights and skills learned so far.


Hints

Download Full WPI 2905 TagPro Dataset

The entire TagPro data set for the WPI 2905 class on all maps is available at:

http://www.cs.wpi.edu/~imgd2905/d17/projects/proj3/tagpro-data.zip

Note, this dataset is updated dynamically as people play maps and send them to the professor. Thus, for your analysis, the day and time the data set was downloaded should be noted since the content changes over time.

If you have trouble getting the convert-bulk-match.php and then match-stats.php scripts working with match data you download, there are two alternate options:

  1. This slightly modified version of match-stats.php:

    http://www.cs.wpi.edu/~imgd2905/d17/projects/proj3/match-stats-multi.php

    should work with any converted match data (i.e., converted with convert-bulk-match.php). However, it only works with match files that have more than 1 match in them (i.e., that's why it has a "multi" label). It will not work for data files with only 1 match (i.e., a single game saved with the userscript).

  2. Here are 3 sets of already converted maps + matches:

    http://www.cs.wpi.edu/~imgd2905/d17/projects/proj3/bulkmatch-data.zip

    Containing matches 1-100, 1-1000 and 1-10000. These have been converted already and should work with the original match-stats.php.

Beware of Data Overload

As is typical of many games, TagPro has a lot of data that can be analyzed. Do not try to analyze it all! Instead, focus on aspects of the data you think are interesting, that might yield insights into TagPro gameplay, in general, and TagPro level design, specifically.

Proper Static Map Analysis

For the static map analysis, you only want to consider each map once and not the number of times it was played. A recommended way of doing this is to first make a backup copy all your data, then remove duplicate entries produced by the match-stats.php script. In Excel, this can be done by:

Excel → "Data" → "Data Tools" group → "Remove Duplicates"

Good Charts

For each chart created, consider going over the "Chart Checklist" from the Presenting Data slide deck:


Writeup

Writeup a short report.

For Part 1, include details on your map, describing at a high level the intended player experience, and showing a screen shot of your map. Relevant details on your playtesting methodology should be provided.

For each other part of the project, provide a brief section on the analysis clearly labeled into appropriate sections. This may follow the parts in this writeup (e.g., Part 2), but other groupings of analysis are possible as are sub-groupings. The goal of the report organization should be clarity.

Make sure to include a brief description of methodology in selecting and analyzing data, particularly as it may relate to the results obtained.


Submission

The assignment is to be submitted electronically via the Instruct Assist Website by 11:59pm on the day due.

The submission is a report in PDF, named proj3-lastname.pdf

To submit your assignment, log into the Instruct Assist website:

https://ia.wpi.edu/imgd2905/

Use your WPI username and password for access. Visit:

Tools → File Submission

Select "Project 3" from the dropdown and then "Browse" and select the assignment file (i.e., proj3_lastname.pdf).

Make sure to hit "Upload File" after selecting it!

If successful, there should be a line similar to:

 Creator    Upload Time             File Name        Size    Status   Removal
 Claypool 2017-04-03 10:19:31  proj3_claypool.pdf  3208 KB   On Time  Delete


Grading

All accomplishments are shown through the report. The point break down does not necessarily reflect effort or time on task. Rather, the scale is graduated to provide for increasingly more effort required for the same reward (points).

Breakdown

Part 1 15% Learning how to play TagPro, installing analysis tools, building a map and playing everyone else's maps.
Part 2 40% Analyzing static map data and dynamic gameplay data for WPI 2905 matches.
Part 3 25% Analyzing static map data and dynamic gameplay data for public matches, comparing them to WPI 2905 matches.
Part 4 15% Analyzing splat data for your map matches, comparing results to other matches.
PuckHunt 5% Participating in the PuckHunt user study. See professor for details.

Rubric

100-90. The submission clearly exceeds requirements. All parts of the project have been completed or nearly completed. The report is clearly organized and well-written, charts and tables are clearly labeled and described and messages provided about each part of the analysis.

89-80. The submission meets requirements. Parts 1-3 of the project have been completed or nearly completed, but perhaps not part 4. The report is organized and well-written, charts and tables are labeled and described and messages provided about most of the analysis.

79-70. The submission barely meets requirements. Parts 1-2 of the project have been completed or nearly completed, and some of part 3, but not part 4. The report is semi-organized and semi-well-written, charts and tables are somewhat labeled and described, but parts may be missing. Messages are not always clearly provided for the analysis.

69-60. The project fails to meet requirements in some places. Parts 1-2 of the project has been completed or nearly completed, and some of Part 3, but not all parts 3 or 4. The report is not well-organized nor well-written, charts and tables are not labeled or may be missing. Messages are not always provided for the analysis.

59-0. The project does not meet requirements. Besides Part 1, no other part of the project has been completed. The report is not well-organized nor well-written, charts and tables are not labeled and/or are missing. Messages are not consistently provided for the analysis.

Postmortem Feedback on Graded Projects

Based on graded projects, see:

proj3-postmortem.pptx
for some examples and notes of caution related to project 3, specifically< and data analytics, in general. general.


Top | P1 - Learn, Design, Play, Tools | P2 -WPI TagPro Maps | P3 - All TagPro Maps | P4 - TagPro Splats | Hints | Writeup | Submission | Grading

Return to the IMGD 2905 home page

Questions: imgd2905 question-answer forum