“First there is data, then there is no data, then there is.”
A Zen koan? No, it’s what happens when you overrun the 4096 character limitation in SCORM 1.2., and get the dreaded “cmi.suspend_data” error. 4096 characters: How many haiku is that? With diligent practice, we can wipe the mirror clean so the LMS reflects all the data it is sent.
The first thing to realize is that part of that limit is the variable name itself. Like haiku, brevity is the soul of Variable Zen: name variables with minimal tags. For a chess game I developed, the pieces were named “br” and “br2” for Black Rook, and Black Rook 2. It’s not really critical, but it’s nice to have the names at least be shorthand for their actual use.
Second, empty your mind, and your variables. “Container” variables can be used to temporarily hold data, and then emptied when not needed. In the chess example, I needed a way to determine the X and Y coordinates for each piece. This could be done with a separate X and Y variable (such as “br_x” and br_y”), but the Zen thing to do was to set the piece variable to a 2 digit grid (1-8 for Y, and A – H for X), so for example piece “br” could be set to A1. To determine the actual X/Y value for A1, I ran a loop of actions that would set the “container” variable “X” to the pixel value of 200 if “1” was present. “X” gets reused for each piece as needed, and never has to retain the variable text. This method of passing data through variables can be used for complex branching, building strings, and performing calculations without ever adding to the suspend data load.
With these simple steps, you can reach suspend data Nirvana, at least until every client uses SCORM 2004 with it’s 64,000 character limit! Now, go wash your rice bowl!