2 minute read


This project showcases a comprehensive Android application that integrates gravity sensor functionality for a dynamic gaming experience. It features multiple sophisticated and entertaining gameplay modes. It utilizes Java Socket to support LAN-based online competitions. A robust game community platform is also designed for better user experience.

Selected Features and Implementations

Real-Time Online Competition

Users are able to create gaming rooms and join rooms created by other users via LAN. After confirming by the both sides, users can enter the synchronized real-time competition. The whole feature is implemented with Java Socket through the UDP protocol.


In the game, the users can see each other if there are in the same level.


Once a user win the game, the game will be over, and the other user will be notified.


Different Game Modes with Complex Entry Animations

There are three different game modes other than the default mode, each of which is an individual game view and is started by an animation.

Holes Hidden Mode

In this mode, all the holes are hidden from the players. Players have three seconds to remember all the holes at the beginning of the game.


The trap holes still exist, and will show up if players drop into them.


Loose Base Mode

In this mode. the base of the game is loose, which means that the game base would also move as players tilted their devices.


Anti-Gravity Mode

In this mode, the gravity is reversed, and players have to always do the opposite operations.


Customized Dialog Interfaces

There are several customized dialog interfaces for game navigation (exit, continue, restart), and for displaying top player ranks, complete with custom enter and exit animations and dialog transformation animations.

Success Dialog

After a player pass a level, there will be a success dialog displayed as the interface for exiting, continuing or restarting. From the dialog, players are also able to see their person rank and the world rank for the current level. The layout of the dialog is defined in XML files with nested LinearLayout, and the transformation between game navigation and ranks is implemented using ValueAnimator.



Back Dialog

After a player press back, there will be a back dialog displayed showing the current time used, as well as the information and functionalities of the success dialog.



Game Forum

There is a forum in the community for users to share their game experiences in their posts.


Chatting Room

There is a chatting room for users to communication with each other instantly.

Chatting Room