✔ 最佳答案
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 也可以. 不過經驗值, 錢, 以及寶物的分配就要想一下了.