250 likes | 262 Views
xAPI (The Experience API, also known as TinCan) is picking up momentum in the industry for tracking progress and completion. The xAPI standard has a flexible vocabulary for describing learning events, including specific elements for Serious Games and related (Virtual Reality and Augmented Reality) experiences. In this session, we’ll look at the structure of xAPI statements and delve into the vocabulary, focusing on how it can best be used within Serious Games, and we’ll take a brief look at specific implementation within Unity3D projects through open-source code created by the speaker.
E N D
Tracking Player Behavior in Serious Games with xAPI PETER GUENTHER, TORRANCELEANING SERIOUS PLAY NY 2018
Who Am I? Who Are You? Peter Guenther Senior Software Developer, Software and Platforms Team, TorranceLearning Former teacher, bootcamp instructor Game and Serious Game enthusiast Role? Level of Unity experience/interest Familiarity with xAPI Familiarity with SCORM
What is xAPI? The eXperience API A way for programs to send or request information online A REST API Application Programming Interface Representational State Transfer (REST) is a specific architecture for APIs Uses web protocols (HTTP, HTTPS) to communicate data Uses JSON data to represent information Who’s using xAPI? https://xapi.com/adopters/
xAPI vs SCORM SCORM didn’t give us much info Time, score, location, status, answers xAPI encodes learning/performance data in a rich, flexible format and doesn’t require a web browser Activity Statements: actor verb object (context) (result) In Oct 2017, DoDI 1322.26 Distributed Learning (DL) advises SCORM or xAPI compliance See also: https://xapi.com/scorm-vs-the-experience-api-xapi/
Why xAPI? Interoperability: works with all kinds of systems Allows comparison of data between learning activities, courses, platforms Can connect learning activities to performance Can be a source of personalization/differentiation Works at scale
Learning Management System Learning Record Provider Course/ Game Learning Record Store(LRS) Activity xAPI Statement
Why xAPI continued… -Why not Unity Analytics? xAPI allows you to store data from every game, every other instructional interaction, and even performance data In the same format In the same place
xAPI Statements actor verb object (context) (result) The person engaged in the learning Name Email address (mbox)
xAPI Statements actor verb object (context) (result) The action in the activity Display verb (plain English) Identifier (shaped like a URL) Ideally a standard verb from a list
xAPI Statements actor verb object (context) (result) What’s being acted upon Could be a course, interaction, question, game, quest, item… Display name (plain English) Identifier (shaped like a URL)
xAPI Statements actor verb object (context) (result) Almost everything else Parent object Grouping object Extensions
xAPI Statements actor verb object (context) (result) How the learner/player did Response Completion (true/false) Success (true/false) Score (raw, scaled, min, max)
Under the Hood It’s really all JSON data…
SO HOW DOES THIS FIT IN WITH SERIOUS GAMES?
xAPI Analytics: Rocket League and Watershed https://www.watershedlrs.com/blog/products/xapi-data-privacy
Profiles xAPI Profiles allow for application-specific concepts, patterns, etc. Relevant xAPI profiles include Serious Games Virtual Patient Augmented Reality? (Community of Practice)
Serious Games xAPI Vocab Completable: “something a player can start, progress and complete in a game, maybe several times.” Initialized Progressed (progress) Completed (ending) John Doe completed with "Princess Rescued" in "Super Mario Bros." at "Jan 20, 2016 12:35:13 UTC" John Doe completed with "Game Over" in "Super Mario Bros." at "Jan 20, 2016 12:35:13 UTC"
Serious Games xAPI Vocab Continued Begin attempt Enter level Met sage Pick up scroll Return scrolls Find the exit Abandoned Won the game passed Lost the game initialized initialized initialized collected* completed completed abandoned xAPIQuest xAPIQuest Level 1 Find the Scrolls Quest Scroll# Find Scrolls Quest-success Level 1-success xAPIQuest xAPIQuest failed
Sending xAPI Statements from Unity3D Games Rustici has a C# library for xAPI Unity3D has limitations: Doesn’t have the full C# functionality--specialized web functions Doesn’t completely support serialization--problems turning objects into JSON Work to adapt the Rustici library or come up with an alternative?
Resources TorranceLearning xAPI Cohort & Party http://www.torrancelearning.com/xapi-cohort/ Serious Games xAPI Profile http://xapi.vocab.pub/describe/?url=https://w3id.org /xapi/seriousgames My Unity3D xAPI code https://github.com/pguenthe/xAPI_Labyrinth