游戏王怪兽之决斗【精品-doc】
DIS final project proposal
遊戲王—怪獸之決鬥
, Overview of project
Job Distribution
Server端程式開發: r92725015蘇頌凱
Client端程式開發: r92725043蕭銘宏
畫面及容錯處理: r91725057鍾玲玲
Motivation
1. 因為遊戲王漫畫的流行,帶動遊戲以及實體相關玩具的熱賣,目前的遊
戲大都以單機版的方式,或是Game Boy連線的方式對打,因此想開發
PC版的遊戲,玩家只要有一台PC並且安裝軟體就可以找到和另一個玩
家對戰,不用特地買一台遊樂器。
2. 規則簡單,所以適合作為期末專題。
Goal
建立一個分散式的遊戲平台,玩家可以隨時隨地利用不同的工具進行遊戲。 Timeline
1. Planning phase
, System requirement(done)
, Project management
, Create work plan(done)
, Staff the project(done)
, Control and direct the project 2. Analysis phase (2 weeks)
, Examine current system
, Process model, data model
, Identify improvement
, Ideas for improvement
, Develop concept for new system
, Use cases
3. Design phase (4 weeks)
, Develop physical models
, Design architecture
, Design infrastructure
, Design interface
, Design data storage
, Program design
4. Implement phase (6 weeks)(due to 1/20)
, Prototype implementation
, Construction
, Installation
, Testing (3 days)
Task Nov Dec Jan ID Start Finish Duration 2003 2003 2004
2 analysis 2003/11/17 2003/11/30 2W
3 Design 2003/11/17 2003/12/15 4W
4 Implementation 2003/12/01 2004/1/20 6W
, Technological infrastructure
Rules are shown below:
The games starts
1. Suppose you and I are the players and you serve first. Each of us is holding 5 cards
initially.
2. You draw a card from your card deck. 3. You may lay a card on the table either in attacking or defending status. Otherwise,
you can do nothing but end your turn. (In real game, you can cover magic or trap cards on the table. For simplicity, we may
omit these cards in our project. )
4. End your turn and I get the control.
It is my turn now:
1. I can perform exactly what you did in your turn and attack your monster on the
table or you if you have NO monster on the table. 2. If I attack your monster, the result would be Your monster’s status, Attacking status Defending status
I am superior Destroy your monster and Destroy your monster only
the difference of attacking
points will reduce your LP.
I am inferior My monster is destroyed The difference between
and the difference of MY attacking and your
attacking points will defending points will
reduce MY LP. reduce MY LP only.
Hold Nothing Nothing
e.g.
黑魔導, Attacking status, 2500 Defending status, 2100
青眼白龍 擊破黑魔導, 削減你的LP 擊破黑魔導, 不削減LP
(攻3000守2500) 500
黑魔導女孩 黑魔導女孩被擊破, 削減削減我的LP 100, 黑魔導
(攻2000) 我的LP 500 女孩還在
Conclusion: your LP will be reduced only if you put your monster in attacking status.
The game continues until one player’s LP is zeroed or he surrenders.
Data Flow REQ, card info, validity
Server ACK, card info
card card
Database
Two free tables:
1. Card: the information of all cards and whether it is selected by the
player and opponent.
2. Group: all the players’ IP addresses.
All the diagrams could be more complete in the final document. Justification
Fault Tolerance –Message lost
, Client , Server
, After timeout, server uses R-multicast to notify its client that it
did not receive its message.
Fault Tolerance –Message lost
, Server , Client
, Keep a sequence number field in message.
, Client checks sequence number to know which message that it
lost and requests the message from servers. (selective repeat)
Fault Tolerance –Server crash
, Synchronous a client sent REQ waits for a while (timeout)and
determine that the server crashed.
, Election
, Every client knows their new server.
Fault Tolerance –Client crash
, In specified time interval, the opponent or Server could determine
that his corresponding client crashed. Then it terminates the game or
cancels its request.
, The record of incomplete game would be discarded and the live
opponent sets its status idle.
Multithread
Each player(server or client) at least has 4 threads
, Matchmaker
, Election (bully algorithm)
, Check validity
, Multicast message
, Implementation phase:
, System Requirement
CPU:Pentium III 800 MHz以上
RAM:256M以上
PC : 至少四台
作業系統:Windows系統(win98/me/2000/xp)
開發工具:JBuilder 8.0、J2SE SDK v1.4
資料庫:Access
影像處理:Adobe PhotoShop 6.0
, Implementation
, 系統可行性分析
, 系統規格書訂定(ER-Model、Flow Chart…)
, 程式碼撰寫
, 系統測試:含除錯:
, 正式上線
, Testing
, Server是否能開啟
, Server是否能接受多個Client進行連線
, 遊戲雙方是否能收發牌組
, 生命值及點數計算是否正確
, 容錯處理