我的朋友們用java開發了這款遊戲,他們讓我爲它做多層遊戲。它像小行星一樣是側面滾動的射手。我知道它將不得不處理套接字,並且id更喜歡使用tcp over udp來建立一個連續的連接,並且不會有來回的數據集羣。我有一個從客戶端到服務器來回發送字符串的原型類型。但是我將如何實現這個遊戲?我會將船的x和y座標發送給主辦遊戲的遊戲,然後發回其他遊戲座標?任何幫助將不勝感激先進的謝謝你。用於側面滾動空間射擊遊戲的Java遊戲服務器
回答
我會爲你的遊戲建議這個結構:
- 創建一個託管遊戲並進行計算的服務器。
- 讓服務器創建並處理在屏幕中移動的對象(內部對象)。這樣你只需要發送數據服務器 - >客戶端來更新用戶界面。
- 對於太空船來說,服務器必須同時更新所有的客戶端,所以在客戶端,每次有移動時都會將x,y座標發送到服務器,然後向每個玩家播放新的位置。拍攝或客戶端生成的任何其他事件也是如此。
- 當兩個物體發生碰撞時(例如激光和敵人),應該由服務器處理,具有物體和船位。
客戶將只需要閱讀的對象座標,畫出他們派軍艦/激光位置服務器。
服務器將生成對象並將其位置發送給所有客戶端。同時閱讀船舶位置和更新用戶界面。
發送/讀取數據可能很難。有幾種方法可以做到這一點,並取決於您現在更容易理解的內容。稍後可以改進。
- 在整個遊戲過程中服務器不斷髮送對象的位置。
如果屏幕上的對象數量不總是相同,請發送一個字符串,其中包含此刻對象的數量+其座標。客戶端使用您之前指定的編號循環通過這些座標。 - 同樣適用於船舶。我想這些將是一個固定的數字,所以你可以發送他們的座標。
- 在字符串內部,座標應該被一些東西隔開,這樣您在接收時就可以讀取它們。
一個辦法這樣做是將它們與特定的字符"x1,y1;x2,y2;x3,y3;x4,y4; ..."
分開,或者因爲您要發送
("," between x-y and ";" between sets of coordinates)String
,他們用相同的字符ammount的總是寫(比如4)"0012054201620104" (x1: 12 , y1: 542 ; x2: 162 , y2: 104)
- Finaly我建議一個頭添加到每個你發送的數據包,知道它是對象列表的座標還是船舶座標列表。
那麼,這能以幾種方式來完成, 讓我們說我們有對象: - Space_1,Space_2,.... Space_n作爲航天物體
隨着比賽的進行,屏幕將被填充與宇宙飛船對象 每次你將得到的x,y在遊戲 所有space_x要素的協調,你也把你的協調
所以遊戲在客戶端機器將有 - 點1(X, y)你的座標 - point_2 .... point_n(x,y)其他太空工藝品(你) [R對手) - 每次刷新×時間,Y對手改變
你會處理空間飛行器的拍在你的本地應用程序 比方說,你開槍打space_3 您將發送到服務器space_3因此將該船標記爲已在服務器中死亡 當其他客戶端(其他用戶/玩家)從服務器獲取刷新呼叫時,所有人都將看到space_3已被擊中
希望這有助於如果它太抽象了
所以在我建立了我的printwriter和bufferread之後,我寫下了船1的位置並同時讀取了船2的位置?然後在下一幀畫船隻並再次讀寫?會這樣嗎? – UnbrandedTech
我必須從代碼中獲得更多信息才能做出更加自信的假設,但基本上可以,這將是一個很好的解決方案 您可能必須對與服務器的通信進行一些性能調整 –
- 1. Java側面滾動遊戲
- 2. 2D側滾動HTML5遊戲
- 3. 用於2D滾動遊戲的Java nullpointerexception
- 4. 在Java中爲2D空間射擊遊戲創建遊戲循環
- 5. 基於在線多人遊戲的遊戲服務器技術?
- 6. 在Java簡單的側面滾動遊戲中的滯後
- 7. 自由運行/側滾動型遊戲
- 8. 側滾動遊戲,類和流
- 9. 紅寶石側滾動遊戲
- 10. Flash側滾動遊戲理論
- 11. MMORPG遊戲服務器的Java SSLSocket
- 12. REST基於WebAPI的遊戲服務器
- 13. 服務器遊戲像blobby凌空
- 14. .NET遊戲服務器
- 15. 服務器爲Android遊戲
- 16. 創建遊戲服務器
- 17. 多人遊戲服務器
- 18. Cocos2d泡泡射擊遊戲
- 19. AS3向下射擊遊戲
- 20. 賓果遊戲Java服務器架構
- 21. 針對射擊遊戲的計數器
- 22. 在射擊遊戲中進行遊戲AI研究的API
- 23. 對非遊戲應用使用已保存的遊戲服務
- 24. 基於圖塊的側滾動玩遊戲的教程?
- 25. 舊遊戲的「側面滾動黑客」是什麼?
- 26. 在Java中玩Flash遊戲(遊戲)
- 27. Java - 井字遊戲Swing遊戲 - 錯誤
- 28. Android遊戲滾動背景
- 29. 在2D遊戲中滾動?
- 30. 模具滾動遊戲
對於像你這樣的小項目,讓客戶做大量的計算可能是好的,但一個好的建議是:永遠不要相信客戶!您可以從客戶端收到的所有數據都可以僞造。 –