250 likes | 269 Views
Pictionary Game Application for Ad-Hoc Networks. EEE436 / CS422 Preliminary Presentation Group 2 21.04.2010. Outline. Team Members Project Overview Rules for Pictionary Game Architecture Server Side Client Side Flow Chart/Operational Summary Developmental Stage of the Prototype
E N D
Pictionary Game Application for Ad-Hoc Networks EEE436 / CS422 Preliminary Presentation Group 2 21.04.2010
Outline • Team Members • Project Overview • Rules for Pictionary • Game Architecture • Server Side • Client Side • Flow Chart/Operational Summary • Developmental Stage of the Prototype • Future Work Coşkun, Dağ, Gürses, Mıdoğlu 1
Outline • Team Members • Project Overview • Rules for Pictionary • Game Architecture • Server Side • Client Side • Flow Chart/Operational Summary • Developmental Stage of the Prototype • Future Work Coşkun, Dağ, Gürses, Mıdoğlu 2
Team Members Network setup • Cemil Can CoşkunElectrical and Electronics EngineeringSenior Student • Selin DağElectrical and Electronics EngineeringSenior Student • İbrahim GürsesComputer EngineeringSenior Student • Çise MıdoğluElectrical and Electronics EngineeringSenior Student GUI design Image streaming Socket programming Coşkun, Dağ, Gürses, Mıdoğlu 3
Outline • Team Members • Project Overview • Rules for Pictionary • Game Architecture • Server Side • Client Side • Flow Chart/Operational Summary • Developmental Stage of the Prototype • Future Work Coşkun, Dağ, Gürses, Mıdoğlu 4
Project Overview • Undertaken as a requirement of the EEE436/CS422 course • Multiplayer game for the users of a wireless network. Each player takes turns in drawing a picture on the shared interface: • Person who is drawing is called the artist. Other players (guessers) try to guess what the picture is • Guessers submit their guesses in written form to the artist. If a guess is correct, the guesser who has submitted the guess wins the tour, also earning the artist some points • Intended to serve for recreation / entertainment purposes. Useful tool for increasing visual creativity Coşkun, Dağ, Gürses, Mıdoğlu 5
Project Overview – Cont. • Uses the underlying ad-hoc network to which all players are connected. The wireless connection is established using the IEEE 802.11 protocol • Takes the internet-based games “iSketch” and “Yahoo Pictionary” as examples • The game requires a minimum of 2 players connecting via their mobile devices • GUI: Multicolor sketch screen, text sending and receiving screen, score screen, timer running backward from 60 seconds Coşkun, Dağ, Gürses, Mıdoğlu 6
Outline • Team Members • Project Overview • Rules for Pictionary • Game Architecture • Server Side • Client Side • Flow Chart/Operational Summary • Developmental Stage of the Prototype • Future Work Coşkun, Dağ, Gürses, Mıdoğlu 7
Rules • The game consists of 8 rounds where the artistis given a word to draw, and the other players try to guess it within 1 minute • Artist receives5 pointsif any of the guessers submit a correct guess, and 0 points if no correct guesses are made within 1 minute • The first playerto guess the target word correctly receives5 points • Wrong guesses do not result in any point loss: a guesser can submit as many guesses as he/she wishes Coşkun, Dağ, Gürses, Mıdoğlu 8
Outline • Team Members • Project Overview • Rules for Pictionary • Game Architecture • Server Side • Client Side • Flow Chart/Operational Summary • Developmental Stage of the Prototype • Future Work Coşkun, Dağ, Gürses, Mıdoğlu 9
Game Architecture wireless ad-hoc network (7 peers) network host game host game host Coşkun, Dağ, Gürses, Mıdoğlu 10
Game Architecture • Peer-to-peer (P2P) type architecture where each player takes turns in becoming the server • Simultaneous multimedia transfer is handled via serialization of the bitmap image (bitmap object) • 4 sockets are used in the overall process: • 1 for establishing the game [port: 11000] • 1 for sending and receiving the serialized bitmap image [port: 12000] • 1 for sending and receiving the guesses: address [port: 13000] guess (string) + time stamp (integer) + IP • 1 for ending the game [port: 14000] Coşkun, Dağ, Gürses, Mıdoğlu 11
Game Architecture – Cont. Server Side • A normal member of the ad-hoc network becomes the server if: • He/she starts the program (Pictionary.exe) and then chooses “Create New Game” [game host] • Enters an already existing game, plays for a while and then it becomes his turn to draw [artist] • Server determines the start of the game and tells it to clients: • Send the IP addresses of all players to all of the players • This is also signal for them to reset their counters • Randomly selects a word from a text database (“target word”) • Compares the received guesses against the target word (time stamps!) Coşkun, Dağ, Gürses, Mıdoğlu 12
Game Architecture – Cont. Server Side • Determines the end of the round: • Keeps track of time (countdown) • Keeps track of the scores • At the end of the round: • Determines if it is the last round (end of the game) • Sends the score information to the next server • Sends the summary of the round as a message to all players (winner, time remaining, updated scores) • Closes all sockets • Becomes a client Coşkun, Dağ, Gürses, Mıdoğlu 13
Game Architecture – Cont. Client Side • A normal member of the ad-hoc network becomes a client if: • He/she starts the program (Pictionary.exe) and then chooses “Connect to a Game” [default client] • Establishes a game, plays for a round as the artist and then gives the turn to another player [guesser] • Client receives an indicator at the start of the game and resets its counter • In the course of the game, simultaneously receives the bitmap image from the server (counter is running down from 60 in the meantime) • Submits guesses in the form: guess (from user interface) + timestamp (from system clock) + IP address • Receives a message from the server at the end of the round Coşkun, Dağ, Gürses, Mıdoğlu 14
Outline • Team Members • Project Overview • Rules for Pictionary • Game Architecture • Server Side • Client Side • Flow Chart/Operational Summary • Developmental Stage of the Prototype • Future Work Coşkun, Dağ, Gürses, Mıdoğlu 15
Operational Summary • A person establishes an ad-hoc network (does not need to be a player) • People connect to this wireless ad-hoc network • Those who wish to play Pictionary run the program • Among the people who run the program, those who wish to start a new game click “Create New Game” and those who wish to join an already existing game (if any) click “Connect to a Game” • [Server] Broadcast a message with one’s own IP address and wait for incomers • [Client] Use a dedicated listener to see if anyone is broadcasting, list servers in the user interface Coşkun, Dağ, Gürses, Mıdoğlu 16
Operational Summary • [Server] Start the round (user interface) • [Client] Wait until the server starts the game • [Server] Send all IP addresses to all players and indicate start of the round • [Client] Reset timer when start of the game message is received • [Server] Send bitmap image (update every 1 second) • [Client] Deserialize information to receive the bitmap image • [Client] Send the guesser’s guess in string form with time stamp • [Server] Compare all guesses against the target word:- determine the end of the round- determine the winner’s IP and broadcast it in the network Coşkun, Dağ, Gürses, Mıdoğlu 17
Outline • Team Members • Project Overview • Rules for Pictionary • Game Architecture • Server Side • Client Side • Flow Chart/Operational Summary • Developmental Stage of the Prototype • Future Work Coşkun, Dağ, Gürses, Mıdoğlu 18
Prototype • Setting up a wireless ad-hoc network completed • Establishing a new gamecompleted • Joining an already establishedgame completed • IP address broadcasting through the network completed • Bitmap object serializing-deserializing completed • Text sending-receiving between 2 peers completed • Role changing (server to client) in progress • Role changing (client to server) in progress • Exception handling in the runtime not comp. Coşkun, Dağ, Gürses, Mıdoğlu 19
Outline • Team Members • Project Overview • Rules for Pictionary • Game Architecture • Server Side • Client Side • Flow Chart/Operational Summary • Developmental Stage of the Prototype • Future Work Coşkun, Dağ, Gürses, Mıdoğlu 20
Future Work • Database: • Enhanced database (number of words) • Random selection of the target word more sophisticated so that the same word does not appear twice in a game • Server-side programming: • Round count (to determine the end of game) • User interface development: • Server interface (text display panel to display guesses, more drawing tools) • Client interface (wait –game loading- screen) Coşkun, Dağ, Gürses, Mıdoğlu 21
The End Thank you for listening. Questions?