V Hack Android Wiki


The final state of wePoker at the end of the Belgian hackathon on 7-oct-2012.


Current poker games are limited on two domains: tools and infrastructure. To start a poker game, a complete set of cards and chips are required. Additionally, it requires a stable room which is not feasible in a moving setting (e.g. inside of a car or train). Current virtual solutions on the other hand require a non-volatile connection to a poker-provider backend (e.g. dedicated website or database). We argue that local poker games can be established spontaneously without the need for a server backend (which requires a continuous internet connection). We also hope that by using the latest Android technologies such as WifiDirect and NFC can benefit the user experience, offering a more joyful gaming solution compared to traditional physical poker solutions.

- Mobility

- Spontaneous gaming

- Social interaction

- No infrastructure required and make the best use of the devices you have at the time

- Support continuous (non-volatile) internet connectivity

- Compatible with 'on-the-road' scenarios

Ambient Poker

- Spontaneous setup

Use state-of-the-art ad-hoc communication functionality

NFC, Wifi-Direct, Bluetooth, WIFI

- Multi-user FUN

Poker game up to 23 players (card limit)

- Cross-device

Phones, Tablets, Watches, TV's

The team[]

  • Dries Harnie
  • Lode Hoste
  • Elisa Gonzalez Boix (1d)
  • Andoni Lombide Carreton (1d)

The Ambient-Poker "hack"[]

1. Connectivity[]

- Ambient-Poker is preconfigured for TV's, Tablets and Phones. When run from a TV or tablet, the poker game displays the table with the currently joined players. When run on a phone, the application will configure itself as a poker user.

- Connectivity: when possible, the server (tablet) will broadcast its poker service every few seconds on the local wireless network. This allows new clients to automatically discover the poker service and join the game (in the next round)

- Additional connectivity (I): phones can also serve as a server. When no server was discovered after 10 seconds, the phone will ask you to start an Ambient-Poker game.

- Additional connectivity (II): when wifi broadcasting is disabled (many of the public wifi providers block broadcasts), phones can be connected using an NFC tag or NFC beaming.

- We support up to 23 players (card game limitation)

- If devices disconnect, the server will update the table view and automatically continue with the game. This implies fault tolerant design for a volatile scenarios.

2. Interaction[]

- Full visualisation of the poker game

- Curcling cards for private viewing

- Proximity sensor allowing hidden view of both cards (incognito). This is activate when two hands are covering the display form other players.

- "Throwing chips" by swiping up and down to add or reduce bet amount.

- Use your tablet or phone interactivity as a client

- Use your tablet, phone 'interactivity 'or TV as a server

What APIs, tools or kit did you use?[]

  • Proximity sensor
  • Light sensor
  • Ambient WIFI broadcasting
  • Multi-touch with gestures
  • Wifi-Direct
  • Morena NFC discovery
  • NFC writing
  • Poker rules for winning


  • SmartWatch is not supported at the moment. (Nearly finished, will be used to display a time-out for betting)
  • Currently betting is not verified by the server, allowing developers to 'cheat' their amount of chips;)


  • Works on Android versions: 9 - 15 (NFC) - 16



WePoker Play together, wherever you are.

This is the demo video for our Android VHack project, wePoker. wePoker allows you to play a game of poker with your friends, without the setup typically associated with wireless devices. All you need is a couple of android devices and optionally a tablet or TV. You and your friends can play while the results are displayed on the big screen in the center. Newcomer? No problem! Just touch the NFC tag and you can join in! You don't need to configure anything, just start the app and your phone will automatically detect poker sessions!



TBD (LGPL or Apache)

Source code and links[]