Context
After taking some time away from the desk to allow my back to heal, I *forced* (pun, sorry) myself to take stock of where I am at and what I wanted to achieve this semester. Making touch screen phone games is what I want to do so without overthinking it I decided on making a simple touch game in which the player manoeuvres a ball through an obstacle course by controlling the platforms on which it sits. Without the player, the ball would land on the platform and stop, so it is the FORCE of the input that alters and disrupts the world.
The final result is extremely similar to a mini-game within Nintendo's Zelda: Breath of the Wild which was about equally as frustrating as this one.
There are probably several other phone games similar to this and so I suppose that is its context. Though I really enjoy making games, I actually don't play them very often, especially not phone games. Though I sense I am addicted to it, I try and spend as little time on my phone as possible. This is something I will obviously need to reconcile as I pursue this path!
Method
Fairly quickly I figured out that if I added a Rigidbody component to a sphere it would become affected by gravity and essentially act like a real ball. Then I created multiple platforms on top of each other and created buttons which would control the rotation of them. I thought that maybe if there was a timer counting down and a random value to the amount of rotation each time the button was pressed, then the player might have some difficulty flipping the ball from the platform above to the one below. Unfortunately once I finished this I encountered two issues: the player could easily flip the platform upside down to get the ball to fly off and over the edge, and this created too much variety in where the ball might end up. I tried to fix this by constraining the rotation of the platform so it couldn’t go above, say, 30 degrees, or below -30 degrees, and I’m embarrassed to say I couldn’t figure this out quickly and therefore decided to move on. The second issue was that I found that if the rotation of the platform was more than a couple of degrees with each click, then the ball was simply updating to be outside of the platform and was simply falling through the platform. I have encountered a similar issue to this along the way this semester and I really don’t know what to do about it. I need to figure out how to get things to move more fluidly rather than simply updating into new locations. I’ll come back to this.
Finally I decided on giving the platform invisible sides and a ceiling and a hole in the floor, and I made sure to keep the rotation of each platform quite low. So the hole is the only way the ball can only fall off the platform. On my first try of this new game I actually found it was extremely difficult! And then for fun I added an additional platform which is even harder. When the ball rolls through the holes, it is teleported to the next platform.
Some post-processing colour, creepy fonts and buttons, and a weird copyright-free emo song were all added at the end. Though I talked about wanting to avoid these sorts of elements in APD this semester, they are definitely where I have the most fun, and find I can add the most personality to my projects, and I’ve sort of decided that, if anything, I should be accentuating this side of my work.
Exporting the game to XCode and then exporting it to my phone was fairly straight forward. This is stuff I have been researching in my PPP class. I’m not yet an Apple Developer so I can’t easily share the game onto other people’s phones, but it is playable in a browser on itch- https://harry-hughes-rmit.itch.io/ball-roll
Response
A couple of friends played it on my phone and found it really difficult! Sometimes the buttons don’t seem to work the way you might want them to- the sensitivity points seem to vary- and occasionally the platform spasmed and shot the ball out at random.
Reflection
I experienced a lot of frustration in putting this game together. There were moments where I thought the game was nearly finished, only to encounter a roadblock that set me back an hour or so. This would get me to mentally struggle between wanting to learn a new ability (like constraining the rotation of the platform to certain bounds) and wanting to get a project finished quickly and in a way I already understand. Time and again I find my projects pivoting because I realise I don’t know how to do something. I solve problems by figuring out how the game can be changed so that it can be made with the skills I already have. And this sounds bad, right? Maybe I’m too hard on myself… To be honest, once I had the game up and running on my phone and was able to show a working game to other people, I felt pretty damn proud and I almost totally forgot about all the struggles I had faced. At the moment it seems like my biggest issue is dealing with myself.
By Harry Hughes
Email Harry Hughes
Published On: 06/04/2021