

Overview
Machina Amelia (Machine with No Arms) is a short VR Unity prototype where the player takes on the role of a robot with no arms. Your VR controllers control your legs instead, meaning you must balance your movement with your actions in game. When the player starts the game, they are dropped into a court. Inspired by volleyball and football, an opposing enemy launches a ball at the player, and the player must kick it back at them using their "legs." The enemy will challenge the player by launching it around them to try and catch the player off guard, meaning that they must use their legs (controlled by their hands) to physically move around and kick the ball back at the enemy.
Each time the player kicks the ball, the score increases incrementally and builds up a combo multiplier. If they miss the ball they lose 1 life out of 3, and the combo multiplier resets. There is no real win condition as I wanted to make an arcade-style game, inspired by the survival mode in games such as Fruit Ninja. The player's high score is instead saved at the end of the game, viewable from a screen in-game.
Gameplay Video
Skills I developed during the project
Mechanic Design // VR Development // Innovative Design
This was the first VR prototype I have worked on, and as the assignment brief was to produce something using an unconventional and "innovative" control scheme or method of playing, I thought that VR would be perfect for that. I had already extensively studied VR interactions in my dissertation and had many years of playing (and enjoying) VR games, so I thought I might try and develop one.
While I could have just made a VR game with regular movement, I wanted to make one that is more interactive, forcing the player to move in an unconventional way making good use of the VR hardware. This fits in with the brief's requirement for a unique game with an unconventional method of input, though it was important to design this mechanic in a way that is still easily controllable by an experienced VR player.
Note: I used AI to help with either creating quick, small scripts or helping me to understand and add more complex features to my already existing scripts, due to time and scope limitations on this project.
Project Development
Initial scrapped idea
Before developing the game, my initial idea for it was that it would maintain the character as a robot without arms, with similar movement mechanics, but the player would need to navigate a level in order to reach a warehouse and repair themself, giving the player their arms back. This idea was a strong concept, but the technical implementation of this, especially in regards to navigating uneven terrain, was very challenging. Even in the final version of the game, on a flat area, the player can on occasion struggle with jumping or moving around sometimes.
As well as this, I wanted to use the unique mode of movement to build a more replayable experience and focus on a core gameplay loop - one that I could expand further if I wanted to. After some brainstorming, I landed onto the game I have now - a hybrid of VR volleyball and football with some arcade mechanics built in.
VR Physics Body
In order to achieve the mechanic of using your arms as legs, a rudimentary physics body had to be implemented for the player. This is so that the player can physically drag themselves, to represent walking, or be able to push downwards with their legs to jump. I studied information on existing VR unity prototypes as well as researched some tutorials on the internet and came across a solution - using configurable joint components on the hands, which have rigidbodies, that connect to a central body collider.
While this worked well and could effectively allow the player to use their hands to push themselves along, the player's arms were still not long enough to function as legs. Therefore, I had to elongate the distance between the controller and head position to give the feeling of longer 'arms'. The body collider and hitbox, as well as player height, was also decreased to the bare minimum, meaning that if the player doesn't prop themselves up on their in-game legs, they will fall low to the ground.
I wanted to expand on this by adding a full body for the player with inverse kinematics, however that proved to be outside of the scope of the project especially given time constraints.
Most VR games focus on replicating the player's body as close as their real-life body as possible, to reduce potential discomfort and disorientation while playing. This game is targeted towards VR enthusiasts and veterans who don't get discomforted at all while playing and want a more interactive experience, and essentially throws all that out the window, forcing the player to learn new muscle memory to get around with their new legs.

Body setup in hierarchy. The physics parts have configurable joints attached to the body, puppeted by a script that tracks the positions of the motion controllers and applies an offset/arm length multiplier
Interaction and Hitstop
When the player hits the ball, it didn't feel very punchy at all. It initially just felt like the ball changed its momentum as soon as it overlapped the hand - which is what it does, but it isn't what it should feel like. I was inspired by the satisfying hitstop in games like Elden Ring, where the player can feel the weight of their weapons impacting the enemies, and (as I will cover later) I wanted the theme of this game to be very gritty, dark and visceral, where the player can feel the impact of their hits, even if it is just against a sports ball.
To do this, I made a basic hitstop function where, each time the player hits the ball, the game's timescale gets reduced to 0.05 for a split second, then launched back up to 2, and gradually lerps it down to 1, which is normal timescale. I also added controller haptic feedback for a satisfying feeling as well. Most VR games try not to freeze or slow the player's limbs or body, as creating any separation between the player's real-life body and their virtual, perceived body can cause discomfort, especially for less experienced VR players - however, as discussed, the purpose of this game was to diverge from the status quo of the genre.
On top of this, I added sound effects, most of which are sourced from freesound.org, to provide punchy feedback for the player hitting the ball, as well as numerous other sounds in the game.

Satisfying hitstop when the player's leg connects with the ball
Core gameplay loop
At first, the game only recorded the time spent in the level as a high score. Given the dark theme of the game, I wanted to put more of a focus on the element of "survival". However, after much testing and feedback from my peers, I decided to make the game track each instance that the player hit the ball as the primary metric, while also attaching time survived as a secondary statistic on their high score.
After testing, this still felt lacking in terms of engagement, as to reach higher scores you would need to play for a very long amount of time. To combat this, I added a combo multiplier, where each time that the player hit the ball 5 times without missing, they would gain a 2x score boost, and each subsequent 5 balls hit would increase the score boost by another 1x. This significantly rewards mastery and flawless play of the game mechanics, but it also made it very easy to rack up high scores, as there was little to no difficulty increase to counteract the ease of getitng a very high score.
I decided to make the ball speed up by a miniscule amount each time the player hits - unnoticeable in the moment, but it builds up over time - which increased the pacing of the game and the difficulty over a gradual amount. The minimum travel time is clamped at 2 seconds, though, as otherwise the game will get nigh impossible past a certain point.
Game theme and aesthetic
While I wanted to focus mainly on the mechanics and interaction within the game, the theme and aesthetic were important too, as the design brief stated that aesthetic is also a large part of whether a game is considered innovative or not.
VR games, in their attempt to immerse people, usually try to replicate realistic-looking graphics (Half-Life Alyx, Pavlov VR, Into the Radius 2, to name a few examples). There are still many VR games that make use of more stylized graphics, but these are generally less common, as most games tend to focus on realism factors to immerse the player. This is usually effective for the general target audience of VR games. However, for this game, I wanted to subvert the expectation of realism completely and go for more stylized graphics.
I was inspired by games such as Buckshot Roulette and wanted to create a stylized, simplistic aesthetic based on that. However, most of development time went onto creating the mechanics and gameplay, so I didn't get much time to work with the aesthetics for the game.

Buckshot Roulette's aesthetic, with a desaturated gritty tone and a posterization shader/filter
I settled just using post processing and simple textures. I would have liked to experiment with posterization shaders to create a similar filter to Buckshot Roulette and other games, but due to time constraints I could not effectively do this, settling for harsh post processing instead. I went with a red colour theme for most of the game.
I also wanted to make the overall theme of the game quite gritty and visceral in the way it treats the player. For example, when you start the game, the doors instantly open beneath you without warning, making you fall straight into the area. When the player loses, a siren goes off before they get promptly incinerated by flames. VR games generally try to handhold the player and treat them easily, but for this game I wanted the player to feel like they were the robot, while making the character and overall design of the game completely different from any preconceived expectations.

Player gets incinerated when they lose all their lives
Retrospective
What I achieved
Over the course of the project, I learned how to produce VR games in Unity, albeit just a prototype. I developed my knowledge of Unity as well as deepened my understanding of interactions in VR games and how those can affect the player.
What went well
In terms of innovation and subversion of expectations, which was the core brief for the game, I think that Machina Amelia does that very well. Having the player control their legs as their arms offers an entirely unique mode of locomotion which hasn't been widely explored in VR yet, and forcing the player to multitask between using their arms to move towards the ball, and using those very same arms to launch it, is a fun and unique mechanic.
Overall, I am also very pleased with how satisfying the gameplay turned out, especially in terms of user feedback, like hitstop mechanics and sound effects. I am also happy with how uniquely interactive the game is once you develop the muscle memory to move around with your in-game legs. I am quite happy with the way the unique theme and aesthetic turned out as well, though it could have been developed further.
What could be improved
I think that I definitely could have added a tutorial section to instruct the player what to do, how to move, etc. A pause menu while in-game could have been added too - however, this would allow the player to cheat somewhat by pausing right as the ball is being thrown, allowing them more time to react. I also would have liked to finish the IK body that was scrapped due to time constraints.
If I had more time, or for future development, I would focus on building off from the core gameplay loop, like adding additional modes, ranging from basic difficulty changes (like increased ball speed) to new stages and maps that each offer something unique. One idea I wanted to implement was an extremely small court where the player doesn't need to move, but the ball moves very fast, meaning the player must rely on their reaction time to hit the ball without having to worry about moving their body to it. This game mode would make the game more accessible overall, but it would remain optional as it does detract from one of the main aspects of the game.
A multiplayer mode would also be a good addition, which would turn the game from a survival-based arcade game into a zero-sum game, making it more appealing to a wider audience as there would be a definite win condition. This would also encourage replayability.