home | projects

Mobile game using chain physics

Grape Mace is a simple mobile game for Android. I wrote it in C# and built it for the Play Store, where it was published until it stopped meeting Play Store requirements. It has a particularly good soundtrack, that I am sad to not be able to claim as mine.


I accidentally developed the chain physics while trying to create a delayed cursor pointer for a different project.


The goal is to make it to the ‘top’ of a scrolling window as the grapes you pass try to stop your ascent. The player moves their finger to drag the handle of the mace which swings the end to pop the grapes. The game is 3D with a 2D viewport and restricted Z axis movement, this makes things like the explosion particles on grapes much easier to implement. Every time the player misses a grape and lets it hit the purple barrier at the bottom of the screen, the speed variable slightly increases. This speed variable controls the speed that the obstacles move down, as the player's camera is stationary.


    

I’ve added some photos and video captures from the game below.

This is a video of the main game loop running on my phone. You can see the swinging phyics, the grape targets, wall hazards and obstacles.


    
Plain UI of emulator

This is a photo of a test of the game with the object hierarchy on the left hand side.


    
Plain UI of emulator

The objects here are being used to test the particle physics that communicate a hit to the player. On contact with the weapon, a grape explodes with purple particles, logs its death as score, and deletes itself from the scene.


    
Plain UI of emulator

This is one of the obstacles that are instantiated to slow the player down. Each obstacle is premade out of blocks and saved as a prefab. These prefabs are spawned above the players view, and move down according to the speed variable which increases with every missed grape.


    

Here are some more photos of the obstacles used against the player.

Plain UI of emulator Plain UI of emulator

This project was written in C#.