JAVA如何寫出RPG的基礎

2014-04-15 5:12 am
我學JAVA有半年了
在學校學的


想問 職業 能力 該如何寫

怪物 怪物能力種族 怪物掉寶率

該如何隨機的獲得道具

希望有人能解開我的疑惑
更新1:

還有像 假如升級了 能力值的增加 假如我不想用等級來當強弱 而是以 ABCD這樣的等級來分 能力是一個範圍的 比如 D=1~5 C=6~10 之類的 不知道我這樣問會不會很籠統 如果回答者有任何問題 我會再補充

更新2:

還有像 怪物的AI要是怎麼設計出來的 另外有沒有可能可以讓NPC加入隊伍一起戰鬥

回答 (5)

2014-04-19 6:26 pm
✔ 最佳答案

Java 當然可以用來寫RPG遊戲. (想做出魔獸世界都有可能)



基本上, 圖形的部分就由 Java 2D 來做. 建議你先做個地圖編輯器在說.

我的印象中好像是45度角由上往下看, 那種叫做 Isometrical view. 基本上所有地圖都是切成一塊塊的菱形, 再用地圖編輯器湊起來. 儲存的時候, 就有可能是 1 代表土 2 代表 草地這一類的. 動畫的處理就是把圖先畫好, 再一張張的畫出來. 再來是地形有分圖層, 地面是第一層, 人物可能是第二層, 再來是樹. 再畫的時候現畫第一層, 再來是 2, 3, 4...層, 這樣才可以有人物走到物品後面的效果.



音樂方面就有Java來播放就好了, 但是只能保證 wav檔案可以播. ( 還有幾種, MIDI, AU... 但是不支援mp3)



再來是人物, 怪獸, 物品的設定. 這是最麻煩的一個地方. 你可以用像 Excel 來做, 比如說怪獸的欄位就可能有 名子 圖形 攻擊力 生命力 有多少錢 攻擊成功的機率 等等. 出存的時候存成文字檔, 這樣在跑遊戲的時候, 要改很好改. (因為 excel 可以修改, 程式也不需重新 compile )



對話跟故事情節是用有限狀態機( Finite State Machine, 簡稱 FSM)來控制的. 基本上, 每一個狀態都有一些控制值, 像是要取得某個寶物才能過關. 這樣子的話, 就能利用很多的有限狀態機來控制某一些事情的發生. 對話也是一樣. 如果故事是線性的話, 最好是把每一關都當作是不同的狀態, 這樣子要跳關到後面去測試的時候很有幫助. 若是非線性的話, 那就必須用比較複雜的程式來控制. (像是 DAG+ FSM, console commands...)



怪獸的AI也是使用FSM. 比如說血很多就攻擊, 血很少就逃走, 這一類的. 這樣子比用 IF...ELSE 好多了.



要做開頭, 遊戲玩到一半要暫停來看選單, 這一類的功能也是用FSM的理論來做的. 基本上 FSM在遊戲中有很多用途.雖然都是FSM2但是各有所不同, 我無法在這裡解釋的很詳細, 請自己找資料.



最後是, 程式跟資料能分的越開越好. 這樣子才好偵錯, 以及讓其他不懂程式設計的人來加入新的怪獸, 對話, 裝備等等. 這樣也可以讓你的遊戲可以從很小變到很大. 像 RPG MAKER就是這樣子做的.



Java 是一個 network friendly的程式語言. 如果有興趣的話, 可以做成多人上線的 RPG ( 但不是 MMORPG, 要做 20-30個人來玩的並不難. 我做過測試, 基本上 RPG一類的遊戲用簡單的 TCP/IP 來跑, Java 可以很簡單的到達 100 以上的連線) 不過因為網路會有延遲的現象, 最好改成由滑鼠來控制, 這樣子比較簡單. 當然如果要組成 team的話, 這個就比較複雜了. 這種時候就可以以不同的遊戲設計來解決. 比如說妖怪是在地圖上就看的見的, 打架不到另一個畫面, 這樣子想圍毆的就可以一起去打妖, 想圍觀的也可以. 這樣子不需要 team 也可以. 不過經驗值, 錢, 以及寶物的分配就要想一下了.
2014-04-29 2:29 pm
下面的網址應該對你有幫助

http://phi008780426.pixnet.net/blog
2014-04-28 2:02 pm
下面的網址應該對你有幫助

http://phi008780426.pixnet.net/blog
2014-04-24 11:41 am
下面的網址應該對你有幫助

http://phi008780424.pixnet.net/blog
2014-04-16 7:04 pm
發問者你好:

幫你整理好了,詳細資料在這邊

http://adf.ly/jXLsv

希望其他回答者也認同我意見^^


收錄日期: 2021-04-30 18:42:13
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20140414000015KK07057

檢視 Wayback Machine 備份