Gear Learning is part of the Wisconsin Center for Education Research in the University of Wisconsin-Madison's School of Education

What is Sprocket?

Sprocket Data Systems, internally codenamed RData, is a set of modularized web apps that provide data back end services for all of our games and apps. Sprocket is built on Node.js/Express.js and uses industry standard middleware and software solutions to create a secure, highly customizable server to support our projects.

Data Dashboards

Collecting all of this data is useful in many ways, but is most meaningful when visualized. A secure dashboard provides live access to your users data, allowing you to see who’s playing when where in the game they are, both in progress and in game world space!

Authentication

Sprocket’s authentication module allows for custom user management and authentication, or connection to external authentication providers such as OAuth or LDAP systems. This core piece of technology allows our games to authenticate against existing user databases, handling all necessary information about a user that may be necessary for properly storing and querying game play information. Related, but separate, is a User Management module that allows special attributes to be given to a user that exist only in our system, and not written back to an external authentication system.

Data Collection

The core purpose of Sprocket is to provide data collection services to games created by Gear Learning. Through a unique method of hierarchical data tagging, we’re able to gather highly specific information about a player’s actions. Doing so allows us to gain insight into why a player clicking “Button A” in “Mission 1” and clicking the same button in “Mission 2” might be done for completely different reasons.

Data Querying

Sprocket also implements a secure, robust query API to allow external services access to the wealth of data collected on users and user group. Current customers have used this to implement their own Data Dashboards, letting them drill into user gameplay sessions to see how their players compare, where they succeed, and where they fail.

Remote Data Services

Sprocket implements two highly useful services for the constantly connected world, Remote Configuration and Remove Saving. Remote Configuration allows games to be deployed and quickly updated remotely without the need for a client install update. This can be very useful for changing content on-the-fly, or even doing experimental rollouts like A/B testing. Remote Saving then allows a user to save their game progress remotely, allowing continued play across multiple devices as well as preventing progress loss in the event of a hardware failure or other user data corruption event.

Why Make Sprocket?

Several years prior to the development of Sprocket, Games+Learning+Society alums, under the direction of Rich Halverson, developed our original data collection platform, ADAGE. This tool served us well but it missed some critical functionality at its core. Experimentation with other commercial data collection services led us to realize that no existing toolsets really gave us the granularity and control we needed for our games and research. After thoroughly exploring the market, we were determined to create a new, better system that embraced the following simple requirements:

  1. Non-structured Data Format
  2. Nested Data
  3. Customizable Authentication
  4. Modular Designs
  5. One-Click Deployment

The end result of this was a product we internally codenamed RData! This service was used for several internal and external projects and is now fully available for all future projects.

Where Does Sprocket Live?

Sprocket is designed to modern standards, and as such, is able to be hosted on any modern hosting platform. While Sprocket backed games are being developed, our development environment is hosted with Amazon Web Services. However, Sprocket can be quickly deployed on other cloud platforms such as Digital Ocean, or even a custom server!

Who Made Sprocket?

Sprocket was the brainchild of Leonid Umanskiy and was principally developed while he worked for Gear Learning at UW-Madison. Gear Learning continues development of the project which can be found here: https://github.com/rdata-systems.

How is Sprocket Used?

While Gear Learning develops for several platforms, our primary tool is the Unity3D game engine. Given this, our most developed client is made for Unity, employing many of the concepts we utilize during game development. Those client classes are designed to be dropped directly into a project and configured through standard inspector interfaces. The steps are simple!

  1. Install the Sprocket Server Modules with Authentication at a mimimum
  2. Drop the client DLLs into Unity
  3. Create prefabs for authentication ( or more ) and configure URLs

And you’re off and running! Specifics of these steps are all available through the GitHub pages here: https://github.com/rdata-systems.