We first put together a database backend to store the information and have a running history. The client portion of the game was developed in Adobe Flash as it was the most practical way to embed the instructional and promotional videos into it. The multimedia artists already had the skill and experience to produce the content from previous Flash work. Due to the tight project time constraints for a trade show event we decided to use what the GE team knew best. If we had needed the game to play on mobile without these limitations, we could have developed the game in another framework, such as HTLM5 and JS.
GE actually liked the simulation so much that they had us build two separate instances to take on the road in the US and Europe.
The game uses a semi-random process for choosing the target results and starting image. When the player believes they have arrived at the correct result, they submit their work for scoring, and receive the next task until the game clock time elapses. The scoring algorithm was chosen and refined to reward skill and effort over random inputs. This also includes collected statistics on the accuracy of input of the three parameters across all tasks.
The game uses a client-server architecture to coordinate game events and player input with integrated peripheral multimedia devices (sound, light, video) in real-time. Player actions on the four client PCs includes submitting work, adjusting controls, receiving high or low scores, and other events that result in messages communicated to the server. The light and audio system controllers respond instantly with multimedia effects and update the external score board. This is accomplished through TCP/IP and HTTP connections made by custom software written with PHP and the Javascript dialect ActionScript used by Adobe Flash, as well as Microsoft C# .NET.
At first we thought about and performed initial testing by implementing a real MRI system in the game. We shifted from this approach because it was too resource intensive to fit inside a Flash app. We worked with an engineer at GE and he used some of their tools to perform mathematical transformations and approximate a large number of different possible results from a real MRI. We then created discrete controls that map to the thousands of different 2D images to produce a simulation that is similar to a statistical approximation of the real MRI product.
As lead development team on this project, we selected the platform and technologies to use for implementation, wrote the bulk of the actual source code, coordinated with an additional developer, graphic artist, and media artist to integrate their work, and assisted the project manager with testing and revisions. The result was technology that was beautiful, advanced and simply fun!