Java實訓:實訓一 ——長春職業技術學院 16級網路工程
阿新 • • 發佈:2018-12-13
Java實訓:實訓一
本文會解釋一些設計思路。
想看具體過程,請轉:https://www.cnblogs.com/lxwlxw/p/10114187.html
笑維的碼雲專案命名不太對,所以我來:https://gitee.com/SoridoD/java_shixun1
(括號裡的內容為寫文章時想到的,寫程式碼時沒有考慮到)
我的設計思路:
既然是個多人遊戲,必然是有伺服器和客戶端的
玩家過多的話,用TCP也許會導致伺服器記憶體滿了,所以我選擇用UDP來負責兩者的通訊
所有的計算由伺服器完成(也許這裡可以優化,讓客戶端分擔一部分?)
客戶端的所有顯示資訊皆由伺服器發出,客戶端接收並顯示(可能會有點多餘?)
所有玩家的資訊都存到伺服器的即時資料裡(我這裡把一個玩家對應一個物件。)
提供兩個簡單的程式碼:(複製即用)
功能:輸入特定的指令開始(只有輸入start才會跳出,否則一直迴圈)
1 while(true) { 2 if("start".equals(read.next())) 3 break; 4 }
功能:讓執行等一會再執行(括號裡2000為毫秒,,也就是2秒)
1 try { 2 Thread.currentThread(); 3 Thread.sleep(2000); 4 }catch(Exception e) {5 System.out.println(e); 6 }
新思路:
UDP不可靠,通訊過程可能會丟包,怎麼讓它變得可靠?
有種想法就是用利用程式碼實現確認機制,比如裁判給玩家發包,玩家要給裁判回包確認收到,如果裁判沒收到確認則要重新發包。