Mystic Arts 101

by Stephen Sladek in association with Kyle Meystedt, and Richard Justice

November 28, 2018
540 words, 2 min read

Introduction

This is the second project for the CS375: Computer Graphics course at SEMO that my group worked on. If you wish to read about the first project, follow this link: Zombie Defender This project was the shortest of the three, and was made simply to test using our EEG headband. The game allows a player to levitate a ball by concentrating. If the player manages to hover the ball up and drop it into the basket, they'll move on to the next level.

We used a Neurosky Mindwave Mobile headband that communicates via bluetooth to the PC, and an Oculus Rift. As with the previous project, we used Unity 2018.2 and the SteamVR plugin. The EEG implementation was my responsibility since I was the one who had the headband. Kyle and Richard each contributed a level to play.

Get Your Head in the Game

Neurosky actually provides support for Unity development using their products. Thanks to them, we were able to simply import their ThinkGear Unity package to handle fetching the data from the EEG sensor. I then created a levitate script that would control the y-axis depending on the attention levels fetched from the EEG. If the attention rate drops too low, or the ball rolls out of bounds, then the ball's position is reset.

I created the first level as a means of testing the mechanics of the game. It's a simple village scenery created with a custom skybox and Unity's terrain feature. The EEG controls the y-axis, while the right-handed VR motion controller's trigger and grip buttons control the x and z-axis. None of the controls respond unless the concentration level is at least 25% or higher. The trigger button can be used to pull the ball towards you, while the grip button will push it away. The trigger on the left controller is used for teleporting around the level.

The next levels weren't as simple. Kyle and Richard had decided to design their levels to introduce distractions to experiment with breaking the user's concentration. Kyle's level came second, it was also a bright green scene, but it featured three little fox sprites that would randomly change their animations. The third and final level was made by Richard and was set in a darkly lit scene with colorful neon geometrical primitives. The primitives would move around, with some even moving over the basket to prevent the ball from being dropped in. Both levels would play random (and sometimes annoying) sounds at varying intervals.

Conclusion

Honestly, the game wasn't very smooth, but the mechanics worked. We used the same VR setup from the last project, so that portion worked as normal, and the EEG readings came in normal as well. The ball levitates, but is a bit sporadic. Perhaps using the Tweening library would've helped improve its transitions...

Overall the project took us a little over a week to accomplish. We forgo any user testing this time since we're short on time and only have three weeks left to complete our final project. It's probably for the best... For in our attempt to develop a game that breaks concentration we instead ended up with a game that attempts to break one's sanity.

Continue to the final project.