Time Thief

Overview

As part of the Social Gaming course during my studies, I worked on the design and implementation of a location-based mobile game with social interaction at its core. Following an initial concept phase, our team developed Time Thief, a game inspired by the idea of time as a scarce resource. Each player has a limited amount of in-game time that continuously decreases while logged in. Once that time is exhausted, the account is disabled and the session ends.

The practical component was organized as a five-person team project with the following responsibilities:

Nassim BoukadidaClient Programming Lead & UI
Taieb HaddejClient Programming
James LiClient Programming
Alexander EppleServer Programming Lead
Mengdi WangServer Programming

Gameplay

The gameplay was designed around mobile interaction and both short-term and long-term social dynamics. Players can extend their survival in two ways: by visiting special locations called timeholes, which reverse time loss, or by stealing time from nearby players. As a result, the game encourages direct interaction between players in both cooperative and competitive situations.

To steal time, a player must be actively using the app while staying in close physical proximity to another player. The attacker can then select the target and initiate the interaction, which continues as long as the device is being shaken and the target remains within range. The target receives an attack notification and may attempt to defend themselves. The long-term goal of the game is to remain active for as long as possible and improve one’s standing on the global leaderboard.

Implementation

Client

The Android client was implemented in Java using Android Studio and used Google Maps as the main presentation layer. The user interface itself was implemented separately and tailored to the game’s mechanics. A background service was used to send and receive updates regularly, allowing players to remain connected to the game state even when not interacting continuously. The client focused on presentation and interaction, while the full game logic ran on the server.

Server

The server was deployed on a dedicated virtual machine with a public IP address, which allowed the game to be accessed outside the university network. The backend used the Play Framework for request handling and server-side logic, MongoDB for persistence, and Google Firebase for user authentication and push notifications. Integrating these components required some initial infrastructure work, but the final setup proved stable and practical for the intended use case.

The backend handled login and logout flows as well as ongoing game-state updates. Communication was implemented through HTTP GET endpoints with JSON responses, which was sufficient for the project scope and simplified client integration. User accounts were tied to Firebase IDs, and Firebase Cloud Messaging was used to deliver notifications such as friend requests and attack-related messages to the devices.

The code for the client and server is not hosted publicly, but the architecture and interaction model are illustrated in the image below. Some implementation details evolved during development and differ slightly from the original concept.

A whiteboard sketch of the system design

Conclusion

This project provided practical experience in client-server architecture, mobile game development, and the design of location-based social interactions. It was one of my earlier projects involving online multiplayer systems and required building a complete backend infrastructure without relying on real-time networking.

In particular, the project was a valuable introduction to backend development, service integration, and infrastructure design under the constraints of a university setting. Because the game depends on a live backend service, no public build is provided. The client and server source code can be downloaded below.

Leave a Reply

Data protection
I, Alexander Epple (Place of residence: Germany), process personal data to operate this website only to the extent technically necessary. All details in my privacy policy.
Data protection
I, Alexander Epple (Place of residence: Germany), process personal data to operate this website only to the extent technically necessary. All details in my privacy policy.