The Maze Game
(Final Project Documentation)
Jeeho Kim
Professor Inmi Lee
CONCEPTION AND DESIGN
The concept of this project is a mini maze escape game using two analog sensors (rotating and slide potentiometers). This idea was inspired by my experience in the 10th recitation’s Etch-A-Sketch Task, where I found it awkward and challenging to draw by controlling the X and Y coordinates of a circle using two potentiometers. I realized that even a familiar activity could feel completely new with just a change in the controlling method. By combining this idea with entertainment, I anticipated it could approach users in an interesting and challenging way.
Additionally, the “Arduino Potentiometer Steering Wheel for Unity3D” by Gearspec demonstrated the potential for using a potentiometer to enhance the flexibility of an object’s movement. While exploring entertaining elements with the concept of controlling objects, I discovered that most maze games rely on keyboards or mice, which results in movements either overly intuitive or static. Therefore, I believe that by applying potentiometers as controllers to the concept of maze games, it would be possible to offer users a new gaming experience along with a higher level of freedom in movement.
This project was designed with a minimalistic aesthetic to maintain the concept of a mini-game. Several decisions were made to enhance interaction with the users. On the interface aspect, destinations are prominently marked in green, with arrows providing visual guidance along the path for users. In addition, upon the object reaching the destination, it automatically progresses to the next stage, allowing the user to naturally understand the mechanism of the game. On the exterior aspect, a steering wheel is provided, implying to users that they can control something in the game. The rotating and slide potentiometers are strategically positioned to facilitate the user’s intuitive understanding of how to manipulate the object.
The feedback received from the user testing session was as follows: Firstly, there were concerns about the instability of the sensors, especially the slide potentiometer. Secondly, participants felt that the game’s difficulty was high. Thirdly, there was a request for a timer at each stage. In response, complements were taken to increase the stability of the sensors by securing the wires connected to each sensor with tape and fixing them to the wall. Additionally, adjustments were made to decrease the game’s difficulty, allowing more users to easily enjoy it. However, regarding the request for timers, it was decided not to implement them to maintain the minimalistic design concept and considering a few tester’s feedback timers might induce haste. These adjustments made the stability of sensors and users feel less challenging than previous version.
FABRICATION AND PRODUCTION
The final product ended up being quite different from the initial plan. Up until the final proposal submission, the plan was to use two rotating potentiometers as controllers, similar to an Etch-A-Sketch. However, after starting the production process, friends advised against using the two same sensors, as they found it not interesting and potentially confusing to users. Consequently, one of them was replaced with a slider, which made it visually easier to distinguish. This change provided intuitiveness. yet without inferring the game’s difficulty level.
There was a significant change in the collision-detecting system between the walls and the ball. In the early stage, I developed code to calculate the distance between the wall and the ball, triggering a collision when the distance fell below a certain range. Daniel and I invested a lot of time and mathematical calculations into creating this code. However, various issues kept arising. Collision detection occurred too frequently or unexpectedly, leading to inconsistencies.
To address these issues, I asked Professor Gottfried. He introduced another method loadPixels( )
to display the background color (R, G, B) under the circle’s position on the processing monitor. Consequently, I changed the code to recognize collision when the G value was less than or equal to 254. With this new algorithm, I found a stable collision system, and the code became much more concise.
Despite implementing the collision system, there remained one more issue that needed to be addressed. Even after collisions occurred, leading to the appearance of the ‘Game Over’ page, users could still move the ball back into the maze, and the game would continue as if nothing had happened. To tackle this problem, I considered adding ‘int NUM_OF_VALUES_FROM_ARDUINO = 1
’ to the code so that only the restart button could receive values, while the potentiometers could not. However, I couldn’t find a way to apply that one Arduino value only to the restart button. Additionally, I attempted to use the frameRate(0)
or noLoop( )
to pause the game upon the collision, but this resulted in the entire screen freezing, preventing the game from refreshing even when buttons were pressed. And nothing changed even if I added frameRate(60)
or Loop( )
in the code.
Unable to resolve this issue, users ignored the collision and continued playing the game. Therefore, I modified the code to automatically return to the starting page when a collision was detected, deleting the need for the ‘Game Over’ page and restart button. This change had a significantly positive impact, allowing users to focus more on the game without having to press the restart button each time they hit the wall, and it also reduced the complexity of the code.
There were no challenges in the digital fabrication process, I measured the diameter of each sensor and created a diagram on the cuttle.xyz website for laser cutting holes to fit the sensors. However, when I decided to remove one button, the enclosure was already completed, resulting in the final product containing two buttons. And, for the steering wheel, I used a CAD file uploaded by LHB (@LHB_131438) on Printable, titled ‘Steering Wheel for CardBox Cars- TOY (Steering Wheel. stl)’. Using Tinkercad, I adjusted the size of this steering wheel to fit my enclosure and created a hole to fit the tip of the rotating potentiometer
CONCLUSIONS
The ultimate goal of this project was to provide users with a unique gaming experience through the use of a new controller. While this objective can generally be considered achieved a more objective evaluation from a diverse range of users is needed. I anticipate obtaining such evaluations in the IMA Show.
Through various observations of audience responses, including a user testing session, presentations, and beyond class, it was found that most users actively engaged in strategizing and seeking solutions to progress to the next stage as the level went up or as they attempted more time. This active participation and interaction align with the concept of interaction that I defined at the beginning of the semester. My definition of interaction was that “ interaction should provide users with meaningful experience and points of connection through responses, going beyond merely reacting to user input.” I consider this project to be a case that demonstrates how my definition of interaction can be realized in practice.
If I had more time, I would like to enhance the stability of the sensors and add more paths in each stage. An important lesson I learned from this project is not to fixate on just one solution during the problem-solving process but to consider various possibilities. When developing the collision system in the project, I focused only on the ‘distance ‘ and spent a lot of time on it, which caused me to miss opportunities to try developing other aspects of the project. However, the new approach using ‘color’ not only streamlined the code but also made me realize that sometimes the solution may be closer than I think. This experience will help me approach various problems with a broader perspective and consider multiple angles in the future.
Despite the slight instability of the sensors and the fact that it adds ideas to an existing game, this project holds significant value in that it enhances interaction as users progress through the game themselves. Furthermore, the project also shows the ability to evoke various emotions such as satisfaction, achievement, and even regret throughout the game playing. This project provides users with a new gaming experience and interaction, while also providing me valuable lessons for more developed approaches in future projects.
DISASSEMBLY
Capstone students covered the solder area with a tent and were working on their capstone, so I took photos first without unsoldering the buttons.
I unsoldered them the next day and returned them to the drawer.
APPENDIX
Codes: (Link)
Photos: (Link)
Video: (IMG_0829)
“Special thanks to those who helped me complete this project”