Skip to content

Flow to use the default developer dashboard

Cristina Alonso edited this page Jun 7, 2018 · 8 revisions

Contents

Visualizations we want to see

The complete description of the visualizations included in the default dashboard available for developers can be seen on the developer dashboard wiki page. As a recap, the visualizations are the following:

  1. Number of times each cutscene has been accessed
  2. Number of times each completable has been completed
  3. Correct/Incorrect alternatives selected in questions
  4. Number of players
  5. Number of times each accessible has been accessed
  6. xAPI verbs use over time
  7. Total number of times each xAPI verb has been used
  8. Times each video has been seen or skipped
  9. Times in completables
  10. Traces received over time

The following sections summarize the process to obtain these visualizations from the end backwards, that is, from the visualizations we want to achieved, we go back to the analysis that need to be performed to obtain those visualizations, then to the Experience API (xAPI) traces that are required for those analysis and finally, the calls that developers need to make to the tracker and the specific parameters required in those calls to successfully obtain those xAPI traces.

Analysis performed to obtain the visualizations

From the xAPI traces collected, information about the version of the game and the game-play of the student is added (a student can have multiple game-plays). Also, information from the xapi-seriousgames JSON structure is extracted. This information is transformed to a simple JSON document that is then analyzed by the RAGE Analytics Real-time.

The real-time analysis uses two indices: sessionId containing the traces for the Kibana visualizations (each trace will contain a timestamp field with a correct formatted trace) and results-sessionId containing the gameplay state per player. The previous JSON is sanitized to obtain the the document used by Kibana to create the visualizations.

  1. Number of times each cutscene has been accessed:
    The results-sessionId index stores how many times an accessible (e.g. cutscene) has been accessed by the player. For each accessed (Accessible) trace, we count the amount of different targets have been made (group by target).
  2. Number of times each completable has been completed:
    The results-sessionId index stores how many times a completable has been initialized or completed by the player. For each completed (Completable) trace, we count the amount of different targets have been made (group by target).
  3. Correct/Incorrect alternatives selected in questions:
    The results-sessionId index stores how many times an alternative has been selected by the player. For each selected (Alternative) trace, we count the different responses made (group by response).
  4. Number of players:
    The results-sessionId index stores how many times a completable (e.g. the game) has been initialized by the player. For each trace, the name of the player is extracted from the name field and add if to the document gameplayId.
  5. Number of times each accessible has been accessed:
    The results-sessionId index stores how many times an accessible has been accessed by the player. For each accessed (Accessible) trace, we count the amount of different targets have been made (group by target).
  6. xAPI verbs use over time:
    For each trace received, we extract the fields gameplayId and event (xAPI verb). Then, we extract the field timestamp and add it to the document per 'gameplayId' (player).
  7. Total number of times each xAPI verb has been used:
    For each trace received, we extract the fields gameplayId and event (xAPI verb).
  8. Times each video has been seen or skipped:
    The results-sessionId index stores how many times an accessible has been accessed or skipped by the player. For each accessed or skipped (Accessible) trace, we count the amount of different targets have been made (group by target).
  9. Times in completables:
    The results-sessionId index stores the completables completed by the player and the time taken to complete them.
  10. Traces received over time:
    For each trace received, we extract the fields gameplayId and event. Then, we extract the field timestamp and add it to the document per 'gameplayId' (player).

xAPI traces required for the analysis

The previous analysis required some statements in xAPI, detailed below. All traces sent by a player will have two fields: actor with a subfield name containing the player unique id; and another field timestamp containing the date of the trace in a date format.

  1. Number of times each cutscene has been accessed:
    • verb: accessed
    • object: name of the cutscene
      • definition:
        • type: cutscene
  2. Number of times each completable has been completed:
    • verb: completed
    • object: name of the completable
  3. Correct/Incorrect alternatives selected in questions:
    • verb: selected
    • object: name of the alternative (question)
    • result:
      • success: true if correct; false if incorrect
  4. Number of players:
    • verb: initialized
    • object: name of the full game
      • definition:
        • type: game
  5. Number of times each accessible has been accessed:
    • verb: accessed
    • object: name of the accessible
  6. xAPI verbs use over time:
    • verb: any xAPI verb
  7. Total number of times each xAPI verb has been used:
    • verb: any xAPI verb
  8. Times each video has been seen or skipped:
    • verb: accessed or skipped
    • object: name of the accessible (video)
      • definition:
        • type: cutscene
  9. Times in completables:
    • verb: completed
    • object: name of the completable
    • result:
      • extensions:
        • time: time spent in the completable
  10. Traces received over time:
    • Any valid trace received.

Tracker calls

To track the previous xAPI statements, the adequate calls need to be made to the tracker. For instance, for the tracker implementation in Unity, the following tracker calls are required:

  1. Number of times each cutscene has been accessed:
    Tracker.T.Accessible.Accessed(cutsceneId, Accessible.Cutscene);
  2. Number of times each completable has been completed: Tracker.T.Completable.Completed(CompletableId, Completable.Completable);
    The general type is Completable.Completable; this can be particularized for other types of completables (e.g. Completable.Level or Completable.Quest).
  3. Correct/Incorrect alternatives selected in questions:
    Tracker.T.Alternative.Selected(questionId, response, Alternative.Question); and Tracker.T.setSuccess(success); where success is a boolean value.
  4. Number of players:
    Tracker.T.Completable.Initialized(GameId, Completable.Game);
  5. Number of times each accessible has been accessed:
    Tracker.T.Accessible.Accessed(cutsceneId, Accessible.Accessible);
    The general type is Accessible.Accessible; this can be particularized for other types of accessibles (e.g. Accessible.Screen or Accessible.Cutscene).
  6. xAPI verbs use over time:
    Any valid call made to the tracker with a valid xAPI verb.
  7. Total number of times each xAPI verb has been used:
    Any valid call made to the tracker with a valid xAPI verb.
  8. Times each video has been seen or skipped:
    Tracker.T.Accessible.Accessed(videoId, Accessible.Cutscene); and
    Tracker.T.Accessible.Skipped(videoId, Accessible.Cutscene);
    As videos can be skipped, they are of type Accessible.Cutscene.
  9. Times in completables:
    Tracker.T.Completable.Completed(CompletableId, Completable.Completable); and Tracker.T.setVar(time, timeValue) where timeValue is the time spent in the completable. The general type is Completable.Completable; this can be particularized for other types of completables (e.g. Completable.Level or Completable.Quest).
  10. Traces received over time:
    Any valid call made to the tracker.
Clone this wiki locally