(GridWorld在Collegeboard的AP考試案例研究中)如何將網絡添加到我在GridWorld中製作的遊戲中?
所以,我在空閒時間裏一直在研究這個遊戲幾年,現在它已經相當不錯了。我有一個漂亮的小棍子角色,在網格中運行並拾取物品並與怪物和東西戰鬥。現在,我認爲我已經準備好將它提升到一個新的水平(因爲我需要爲我的網絡課程製作一個項目,哈哈......)有點難以取得進展。
我在過去使用ServerSocket創建了一些程序,在這裏我有一個服務器正在運行,有幾個客戶端可以連接到它並接收消息,但它們都是簡單的文本程序,它們不會交換超過很少的字符串。插座是我正在考慮使用這個,但我不知道如何設置它...
現在,當GridWorld運行時,它會自動彈出一個看起來像一個JFrame,它包含網格和所有演員。在主要的源文件中,包含uhh,「engine」的所有代碼,如果你願意,基本上有兩個巨大的方法:step(),它控制每個時間單位發生的事情,keyPressed(),它控制用戶按下按鍵時發生的情況。現在,我一直在想,step()肯定需要在服務器端,而keyPressed()應該在客戶端和窗口一起(當然,否則用戶怎麼能看到他們的「 )這個想法是讓主遊戲控制所有NPC的動作和遊戲計算只在服務器上運行一次,並且多個客戶端可以連接到它並且每個人都有自己的角色遊戲(基本上就像一個MMORPG)。
但是,像我一樣,我會分裂它? (或者,如果這是正確的方法?)我甚至不確定如何在服務器和客戶端之間來回傳遞數據 - 對於我剛纔提到的簡單文本程序,我總是使用PrintWriter和BufferedReader。我發現PrintWriter確實有一個接受任何Object的print()方法,但是BufferedReader會如何接收它?它沒有任何方法可以讀取對象。因此基本上,我想知道服務器應該做什麼,客戶端應該做什麼,應該使用哪些庫以及在哪裏放置某些功能的所有具體信息。
我認爲架構mmo是一個SO回答的頂部。 – nos