2012-08-11 167 views
3

我目前有一個主要的大腦屁:)。Java井字遊戲架構

我的計劃是建立一個簡單的Java基於Swing的井字應用程序。我已計劃爲應用程序允許一個玩家,兩個玩家本地和兩個玩家遠程選項。我有一個和兩個球員本地版本工作正常,但我正在努力讓我的頭在兩個球員遠程選項。

值得注意在NetBeans項目我在從邏輯一個單獨的包的GUI。

我炒了我的大腦思考所有的選項。

  1. 就像有一個客戶端服務器架構,但隨後如果客戶端在不同的電腦比這減慢了一個球員和兩名球員的本地版本沒有任何理由的邏輯運行。

  2. 我想整個應用程序(GUI +邏輯)應該躋身家庭Wirless的網絡上的不同PC的分發。這樣玩家就可以玩一個和兩個玩家本地遊戲,而不會有任何不必要的滯後時間,並查看是否有其他玩家可用於雙人遠程版本。如果我這樣做的問題是誰的邏輯作爲服務器 - 這是如何工作的?

是否選擇2是最好的/唯一的方式去做這件事,因爲這不僅僅是一個網絡遊戲?

有沒有其他方法可以解決這個問題?

我知道用一個遠程遊戲選項來做一個tic tac toe遊戲會是一個客戶端服務器架構的簡單例子,但是有一個玩家,然後在同一個應用程序中的聯網版本是棘手的。

謝謝,

保羅。

回答

1

從技術上講,您可以在沒有實際服務器的情況下執行此操作 - 您可以使其像客戶端/主機一樣。

當用戶想成爲主持人,他發送UDP廣播數據包,對什麼IP信息,並且他想要玩什麼遊戲。每個想加入的人都可以捕獲這個數據包。

當用戶希望加入,他聽廣播包,並加入到他收到了一個。

每個球員都可以做自己的邏輯,並送他轉會到其他球員 - 對方只應檢查是不是合法的舉動 - 因爲也許有人要砍你的遊戲:d

+0

如果我的妻子試圖破解我的遊戲,她就深陷困境:)。感謝幫助的人,有時幫助我們談論這些事情。 – Paul 2012-08-11 14:10:01

0

的應用應該是安裝在每個客戶端上。對於遠程2人遊戲模式,您應該實現自己的P2P協議,將動作從一個玩家發送到另一個玩家,並跟蹤遊戲的進展。

幾句話,每個客戶端都應該有自己的遊戲,只要在本地在本地播放器,可以「一招」,或遠程用戶發送(通過協議)「一招」,它更新的模式。

當然,如果你需要跟蹤統計數據,如分數,積分等,你需要一箇中央服務器來存儲這個數據。但實際的遊戲應該以P2P模式進行,而不需要服務器。