
Duration
Platform
Tech Stack
Project Type
My Roles
Tarneeb
Inspired by Jawaker’s engaging card game platform, I developed a versatile deck system in Unity to serve as a foundation for any card game. This project, a digital card game built in Unity, focused on creating a modular and scalable system to handle diverse mechanics like shuffling, dealing, and card interactions.
The deck system was designed for flexibility, allowing easy integration into various game projects. After completing it, I applied it to develop a digital version of Tarneeb, a popular Middle Eastern trick-taking card game. This involved implementing game logic, player interactions, and a polished interface, showcasing the system’s adaptability.
Gameplay
Multiplayer (Old UI)
Singleplayer (New UI)
Key Features
- Realtime Multiplayer: Utilizes SignalR for seamless turn-based multiplayer, syncing game states across devices with low latency for Tarneeb
- Intelligent AI Opponents: Sophisticated AI with a memory system tracks game history and teammate actions for strategic decisions, supporting offline play and online seat-filling
- Online Game Browser (Legacy): Facilitates matchmaking by listing active games via SignalR
- Online and Offline Modes: Supports mobile-optimized offline mode and online mode using SignalR’s messaging
Online Mode
The online mode was developed using SignalR and deployed on a Google Cloud Linux VM. It uses a messaging system to communicate between the client and the server. This framework made sense because the game is turn-based and does not require constant communication between the client and the server.:brThe message system allowed for the same event-based communication method to be used to update the view on each client.:brThe online mode was excluded from the latest build because the server cannot be kept online.
Offline Mode
The offline mode went through multiple iterations. Initially, an enum based state machine was used, and later versions used a combination of functional programming and the event channel pattern using Unity's ScriptableObjects.:brEventually the offline mode was rebuilt from the ground up using a class-based state machine and a global event system to communicate with the game view manager.:brThe PC version of the project has been discontinued because most play-testers preferred to play on mobile. This allowed me to focus on the mobile version and redesign the entire UI.