People of my generation grew up playing all kinds of video games. But most of the time the control and feel of the games are generally lacking in the ability to create a immersive experience. Controllers like the mouse and keyboard or joystick and buttons are convenient and accurate, but does not contribute to making the player feel engaged with the gameplay. This is why me and my partner Henry decided to create a retro arcade themed shooter game, along with our original controller that emulates the real life action of shooting.
early version of the game:
I mostly worked on the coding of the game, while Henry worked on creating the physical components to this project. I started by creating an object class called targets, which was used to create all the pacman ghosts for the players to shoot. OOP is a great way to organize my code since a game like this requires a lot of features to make it complete, and organizing it through creating objects really makes the code more approachable and easy to debug. Instead of using inheritance, I simply added an extra parameter to the target class indicating which kind of target it will be. During the game design process, I decided to create different kinds of target to add more variance to the game play. Different targets have different speed, size, points, and sprite assets. I also kept the color theme and overall graphics consistent with the video game theme, taking images and music from the original pacman and tetris to give the user a more complete retro arcade experience. After the implementation of all these game features, I spent most of my time asking others to help with user testing as well as playing the game myself to make sure the game play is comfortable. Aside from the original two player competitive gameplay, I also added a high score page to give the user a sense of achievement along with the feeling of playing arcade games.
All my gameplay design, visuals, and sound choices are specifically chosen for the coherence and consistency of the game theme. I used pixel game fonts to create a more 8 bit feel, and even used an oscillator synth to create video game sound effects. I also photoshopped all my visuals to make the color a recurring theme, making players able to distinguish the difference by giving them a clear blue and red difference, while everything neutral is purple.
The physical fabrication of the project was the hardest part of the project, to be able to design a controller with the resources we have and have it be natural to human interaction requires a lot of planning. We decided to use the potentiometer as the sensor for this purpose as it was a very simple sensor to work with, we then 3d printed shells for the potentiometers to live in. These shells acted as a medium for hot glueing the body of the controller with the potentiometer. The final result was really nice and sturdy and served its purpose for this interactive gameplay.
Testing potentiometers:
Prototype controller for user testing:
During user testing we received a lot of helpful feedback on how to improve this project, such as adding an intro to the game and adding protection to the controller. There was multiple users who interacted differently with the controller than we intended, they were trying to turn the controller sideways as if steering a wheel. To cope with this, we designed a extra attachment to the controller, it not only made the design of the controller clearer and made it more sturdier, but also acted as a physical stop for the controller when it is not being used.
Aside from user testing, we also ran into many problems when we are developing the project. For example the sound library within processing will be overloaded if a file is constantly being played, leaving the audio distorted and disturbing. We fixed this by setting statements within the code so that it the sound file does not play over the previous. Still wanting the sound of constant firing, I edited the original sound file so that it is cut short, but also have a fade effect to it.
editing sound:
improving crosshair:
The initial goal of the project was to create a game that has a natural interaction, which is what I believe is the best form of interaction for a immersive user experience. We achieved this natural interaction by creating controllers that operates like a cannon that tilts left and right, up and down. With the improvements we made after user testing, most users during final presentation and end of semester show seemed to be using our project the way we intended them to use it. I am personally very proud of this achievement as I grew up playing arcade games and always wanted to create my own. The value behind my project would be to bring joy to the user, just like the original classics did when I was young. Hopefully it can also bring a sense of nostalgia to people of my generation. There was a lot of young kids during the IMA show, and seeing them enjoying the game that I created is a priceless reward, and it gives me the motivation to create more projects that can benefit the world.
attribution:
music: Ghost & Kozmos – Tetris Theme
background image: Rafael Covo
Sprites: Pacman
Font: https://onextrapixel.com/25-free-pixel-perfect-fonts-for-8-bit-designs/