Technologies

Decked Out blends modern Android tooling, cloud services, and a low-latency backend into a cohesive architecture that keeps multiplayer matches responsive and reliable.

Android with Kotlin

Native client on modern Android

The Decked Out client is built in Kotlin, taking advantage of coroutines, null-safety, and modern Android APIs. This keeps the codebase concise and maintainable while delivering a smooth, responsive game experience on current Android devices.

Jetpack Compose

Reactive UI for cards and boards

Jetpack Compose powers the game interface—from hands of cards to spell effects. UI is described declaratively, so the view stays in sync with game state and can be iterated on quickly without fragile XML layouts.

AWS (Amazon Web Services)

Scalable infrastructure

AWS hosts the backend services that keep matches running. Managed compute, storage, and networking mean the system can scale with player demand while keeping latency low and uptime high.

Room Database

Offline-ready local state

Room provides a structured local database for cards, decks, and player metadata. It gives Decked Out a reliable cache so players can browse data instantly and keep progress even when their connection is unstable.

Python & WebSockets

Real-time multiplayer engine

A Python backend with WebSockets coordinates live matches. Players send and receive game events over persistent connections, keeping turns, card plays, and combat effects synchronized with minimal overhead.

GitHub

Source control & collaboration

GitHub hosts the Digital Deckbox codebase, providing version control, pull requests, and code reviews. Branch protection and issues keep changes organized and make it easy for the team to collaborate on features, fixes, and documentation without losing track of progress.

How the pieces fit together

The client, backend, and deployment stack form a single pipeline: developers work in Android Studio and Jetpack Compose, commit changes through GitHub, and deploy services to AWS. Players interact with a polished mobile client while the backend keeps campaign state synchronized in real time.

The system follows an MVVM architecture, where each technology supports a specific layer of the application. The View layer is built with Kotlin and Jetpack Compose, allowing the interface to update automatically as the app’s state changes. The ViewModel acts as the bridge between the interface and the data layer, managing user actions, card interactions, campaign state, and multiplayer updates. The Model layer is supported by Room, which stores local card, deck, and campaign data so the app can remain fast and partially offline-capable. Real-time communication is handled through a Python WebSocket backend, which sends gameplay updates between connected players. AWS provides the deployment infrastructure for that backend, with services such as EC2 supporting server executions. Together, these technologies allow the app to keep the user interface, local data, and multiplayer game state synchronized cleanly through the MVVM flow.

Poster architecture diagram showing the Digital Deckbox client, data model, server, WebSocket handler, and ViewModel flow.
Architecture Diagram pulled from UGRADS Poster.