Conception and Design
Inspired by the project Anti-Drawing Machine, I intend to a game which challenges playersâ sense of control. In my game, the player needs to control a spaceship by Arduino 101 (gyroscope) to reach the moving moon as fast as possible and avoid the moving black holes. My game has three levels, at each higher level, there would be more black holes with higher speed. In this way, playing my game should an interactive method which differs from peopleâs general cognition because it requires the player to shift spatial orientation into plane orientation in their mind for controlling, and the destinations and obstacles all change constantly. Through this project, I want to understand peopleâs reaction when they first encounter with such an unusual interactive project and how such interaction would be like.
At first, I planned to make a snake game which uses a joystick as the controller and uses Processing to make the game interface. In the game, the direction control would be all the opposite to the general way. This was how I considered at the very beginning making my players lose the sense of control while playing it. However, Professor Rudi told me that joystick was still a common game controller and when people once understood the operation was just all the opposite, the game would not be challenging anymore. He suggested me to consider some controllers which involve people’s physical movements. Therefore, at last, I chose Arduino 101 as my game controller. The process of how I decided to use Arduino 101 was also interesting. When I first thought about the physical controllers, I considered gyroscope plus Arduino Uno. Gyroscope is a sensor which can measure and maintain orientation in the spatial dimension and using it to be my game controller should be innovative and challenging because it requires the player to shift spatial orientation into plane orientation in their mind and explore how to operate better by themselves; in this way, it can challenge players’ sense of control while playing my games. Later, when I took “Arduino + gyroscope” as keyword doing research, I found there was Arduino 101 includes the function of gyroscope itself and directly using Arduino 101 would certainly decrease the complexity of my code and the hardware. This was how I decided to choose Arduino 101 at last.
Moreover, I used a spaceship toy to cover Arduino 101 being my controller because it was soft and much more acceptable for players to hold than a naked Arduino board, and the appearance of this toy also implies which content is controlled by players in my game.
Fabrication and Production
The first important step for me was to figure out how to collect data from Arduino 101. After research, I found samples from Arduino’s official website introducing Arduino 101 CurieIMU orientation visualiser: https://www.arduino.cc/en/Tutorial/Genuino101CurieIMUOrientationVisualiser. These samples helped me a lot in coding my game.
Moreover, my final version was quite different from the user testing version (the audios are at the bottom of this section). During the user testing session, I got several useful feedback: 1) The aspect of all the contents was too basic; players might not recognize which one they were controlling and where they needed to reach; 2) Because all the contents were influenced by the controller, some players got confused about in what ways they should control the central content; 3) the naked Arduino 101 didnât look like the controller (in the user testing session, I directly used the Arduino board as my game controller).
Also, before the user testing session, I still thought about making a snake game, but I found it was really difficult to program a snake with the body that could rotate 360 degrees controlled by Arduino 101, which means a content of rectangle shape was not suitable to be controlled by a gyroscope because it was hard to decide how to shift the orientation of the snake’s head. This was also why my project still looked like a demo in the user testing. During the session, both Professor Rudi and Tristen suggested that maybe I didn’t have to stick on the idea of making a snake game. Their words really talked some sense into me.
Therefore, based on the feedback I got from user testing, I made a lot of improvements in the final version: 1) I finally decided to make the game into a spaceship pass game, in which the player needs to control a spaceship reaching the moon as fast as possible and avoid the black holes; 2) Added UI for leading the players; 3) Optimized the shape of all contents; 4) Added three levels, giving players time to get used to the operation and making them have a progressively lost sense of control; 5) Modified the functions which Arduino controlled – from somehow controlling all the rotation on the screen to only controlling the ship, and other contents were modified to autorotation; 6) Added ship aspect for Arduino 101, giving players a direct inspiration of how to operate and making the controller could be held more comfortably. In this way, I remained the elements which were central to challenge players’ sense of control and optimized my game for better user experience.
Additionally, there was one step really challenging for me when I made my final version. It was how to get the position of each moving black holes. It took me a long time to do the mathematical calculations, but the effect of my final version shows the efforts were worth taking at last. đ
User Testing Version:
Final Version:
Interface of Final Version (HD):
https://drive.google.com/file/d/12OoS2flY02lL1CC-OrdVj2i7mY8QpGQC/view?usp=sharing
Conclusions:
During the user testing and IMA show, I found most people would like to play my game and had the desire to pass all three levels despite a lot of failures. The lack of sense of control might frustrate my players in the beginning, but most of them got more passion for conquering this game afterward. It could somehow make the relation between users and the interactive device closer, increasing usersâ participation in the project by touching their emotions, even though starting with frustration.
I learned that the sense of control is not necessary for users to interact with a device or game, only if the project gives them a clear sense of what role they should play in it as a minimum standard. They may try to win their sense of control back afterward or just allow the project to lead them, but either way, generally wouldnât decrease the interaction between users and the project. This could be a direction worth trying for other interactive projects and all the game designs.
For future improvements, I think I can add a record system, giving players a way to have goals which they want to transcend. Also, adding background music is also a good idea. The BGM can be produced by playersâ operation, for example, the players may trigger different tones if they tilt the game in different directions. Buzzer + Arduino or Processing Sound Library can achieve such functions. In this way, the game could be more exciting for players to play and could have more room for them to explore.
The final project was the first time that I enjoyed the fruit of designing a game independently. I learned plenty of valuable experiences in game designing. More importantly, I realized that the happiest moment for me in the whole process was when I saw my players liked to play my game. This would always be one of my goals in my future interactive project designs.