My Iterative Custom Arcade Cabinet
The theme of this project was iteration. Iteration is when you take a current version of something and modify it and make it better. There is not one sure fire way to iterate on a project to make it better so the sky is the limit on this project. The only catch was. that we had to use at least two techniques in conjunction, with each other, when making the iteration.
For this assignment I decided to iterate on my arduino concept project. In that assignment I simply made an arudino print text to a LCD screen. The text that was printed was dependent on which button was push, left button, or right button.
Pictures 1 & 2: Picture 1 shows actively reading input. Picture 2 shows (printed on the LCD screen) what could happen if you pressed one of the buttons.
How I planned to make an iteration was in three ways: physicality, better back end, and finally content. Before the iteration, the product was a skeleton that barley did anything. It was a ton of fun to breath life into this project!
What I mean by “physicality” is, changing what the project looks like. To change the project physically I considered what I wanted to make over. Being me, I wanted to make a game. What is the most iconic physical manifestation of a video game then? An arcade cabinet. An arcade cabinet is the name of the console that 70’s arcade games were put into. Classics like: Mrs. Pacman, Galaga, and Street Fighter can be found inside arcade cabinets.
Picture 3 & 4: Dimension planning & reference photo.
Here we have my plan on paper and my inspiration. Once I saw this adorable little thing on the right I got to work jotting down dimensions. I modified the drawing a bit because I thought it would be easier without it. the dimensions on the left are relative to the arduino parts that I was using. Funny enough, the base of the cabinet ended up being a square (the picture is wrong). the length of the LCD is 3.25 in and the width of the arduino is 3.25. Besides the neat presentation, the case also allows for handheld game play. The player can play the game in the palm of their hands instead of being anchored to the table.
Pictures 5, 6 & 7: Arcade Shell (left) Dissection (center) Mess up (right).
On the left we have the assembled shell. ideally what it would look like when completed. This shell was created by putting together two halves (center) with some wood glue. The back half of the shell turned out to not work with my design. The wires for the LCD prevented the back half from being put on. The red marking on the right picture was a marking telling me where I needed to cut. I ended up remaking the entire back half with a big window for the wires.
Picture 8 & 9: Completed Front & Completed Back.
The front of the cabinet looked amazing. On the left side of the picture we can see the little window where the wires get to peak through. The six cords coming through the middle are for the two buttons I will use for input. In the back we have some awesome wiring that I very proud of despite it being simple. The LCD and arduino are held together in place my rubber cement. I used rubber cement because it is what works best for gluing plastic to wood. I have a full back panel that I did not put on, for ease of access reasons, that makes the back look even more clean while giving me access to the power supply. This was the most intensive change done to the original project.
Better Back End
A better back end simply means that the coding was improved. What I did differently was, instead of just simply printing text to the screen using a void loop function, I implemented switch case functions with global variables. Switch case is basically a better if statement. Switch case functions get to bounce around depending on the situation, very manipulable through the use of global variables. Once a situation occurs I can change the global variables so that the program can jump to the right situation instead of just going down the list.
Content is the game side of the project. Within the switch cases, I spun a simple dungeon crawler game. What the player picks, or doesn’t pick, will affect them as they travel through the dungeon. Also, a mechanic in the game will be the buttons changing purpose. In the original project, I made the buttons only print yes or no. Now, the buttons will change purpose per the situation. Before a battle, two lines of text will display what the buttons do. For example, I have text saying “left is defend, right is attack” before a battle. This text tells the user that the buttons now serve a different purpose. Overall, I will use this mechanic to force the player into situations where they have to ponder the consequences of their future actions. The mechanic gave the game its name, “True Dichotomy.” Because, there are literally only two options thus the true dichotomy.
In the link provided one can see the project in motion. The switch case allowed the “really, no” text to come out. Since the variable counting the number of times left was pressed was one, instead of presenting nothing it jump to the next option.
Overall, this project was a ton of fun! This is one of the few times where an end project actually turns out how you wanted it to turn out! One aspect of this project I would change was in the planning phase. instead of doing: construction -> coding -> turn in. I should have done: coding -> construction -> turn in. I felt that I needed to construct the physical object before I coded the game, but that was wrong. I just needed the skeleton to code the game, and debug it. This left the end product feeling rushed. Other projects got in the way last week, so I really only was able to go to the FabLab today (extra time really helped!) thus I was only able to code the game for a couple hours. Coding the game before all this would have saved me a ton of time and stress! One final change I could make to this product is a portable battery. While one isn’t too anchored when playing the game, the 1.5 foot USB B-type cable doesn’t allow the user to stray to far from a computer. have an external power supply would really increase the portability of this product. Again, this project was super fun, and now have some thing to put on my future office desk!