DIS Project Proposal Online Poker Game R90725019 劉東振 R90725035 陳健龍
Outline Project Motivation & Goals Project Description & Diagram Project Justification Project Implementation Project Timeline
Project Motivation 網路遊戲的興起 牌類遊戲可以避免複雜的介面設計 專注在Object間的互動以及Interface的設計 成品的功能易於展示
Project Goals 提供多人連線娛樂的伺服器 清楚易用的使用者介面 容許伺服器或是玩家發生錯誤
Project Description 遊戲方式: User可以線上申請帳號,具有帳號者可連上任意一台Server進行不同的(大老二、捉鬼牌)樸克牌遊戲。 可選擇開新的牌局或是加入別人已經開啟的牌局。 系統會根據User參與比賽之戰績給予排名。
Project Description (cont.) 系統特性: Server端會以互相備份的方式來處理Server端異常狀況(包括crash、disconnect等)之後的Recover功能。會將原本在出狀況的Server上進行的牌局在不中斷的前提下轉移到另一台Server上繼續進行。 另外若某Client端若發生異常狀況,也不會因此就中斷牌局。 Client端只需安裝簡單的程式,未來若有新的樸克牌遊戲加入,只需要下載該牌局相關套件即可進行遊戲,不需要重新安裝新程式。
Project Diagram
Project Diagram (cont.) Backup Server
Project Justification 容錯考量 在牌局進行當中同時在另外一台Server上進行備份的動作,當Client端發現所連結的Server無法繼續連線時,則會設法連結到另外一台Server,當此牌局的所有玩家都連結到之前另一Server上備份的牌局時,遊戲則可以繼續進行下去。最多只會回復到之前一次出牌動作(一張牌),應該在使用者可接受的範圍。
Project Justification (cont.) Client端若發生異常狀況,當Server端偵測到它無法連線時,則會根據牌局類型的不同採取接手或是取消遊戲資格的方式讓牌局繼續進行。 對於處理packet loss的方式,是採取sequence number以及token passing的方式來控制出牌順序以及每個玩家所接收到的game view是相同的。
Project Implementation Platform Middleware : JAVA RMI Programming Language : JAVA 2 Operation System : Windows 2000 or Linux Database : MySQL Multithread programming 每開一個牌局,Server即會新增一個thread來處理牌局相關資訊;而對於每個Client,亦會新增一thread來處理彼此之間之溝通。
Project Implementation (cont.) Testing Server Crash or Disconnect Client Crash or Disconnect Packet Loss
Project Timeline