[分享] 新手遊戲製作過程分享

看板GameDesign (遊戲設計)作者 (徹)時間8年前 (2017/06/26 05:11), 8年前編輯推噓7(709)
留言16則, 8人參與, 最新討論串1/1
前言: 人在英國進修程式,其中一門課是要求自製一款遊戲 兩個月時間限制。我在這作業中負責底層架構建立和模組化功能 遊戲製作: 當初想法是,既然是來學習程式的,那就不用現有遊戲引擎 而是用C++和SDL2,並以Entity-Component-System為主架構來實作 因為目標是做一款RPG闖關遊戲,所以想法是先做一個簡易遊戲引擎 然後再利用引擎來編寫遊戲劇本,這樣比較好擴充後續關卡 遊戲簡易流程圖:http://imgur.com/bYokLS3
通用Component包含:圖像(圖片/文字)、事件、位置、物品屬性 內部系統(負責單一Entity內的Component更新):移動 中層系統(內含Entity List,系統只負責邏輯處理):背包、選單、關卡、任務 環境系統:事件偵測、碰撞偵測(從EntityManager中觀察含有特定component的Entity) InputManager(收集玩家按鍵的Queue)、EntityManager(所有Entity) 遊戲成果圖(注意!背景和人物圖像是由圖片網站購買再加工) http://imgur.com/nWOH98K
因為只有兩個月時間,所以遺留幾個待處理問題: 1. smart pointer不夠熟悉,導致memory leak 2. 如果後續增加關卡的話,EntityManager勢必會太長,這部份沒有效控管 3. 圖像沒有進行分批讀取處理 4. 碰撞僅以四邊體偵測,相對粗糙 5. 圖片僅有顯示,無任何特效 雖然整個陽春又有很多錯誤地方,但我覺得這個作業是個好的開始 多虧這個作業的磨練,我在使用cocos2dx可以上手快些,即使架構不同 而且讓我對遊戲整個流程有初步了解,還會仔細研究現有引擎是如何處理問題 雖然因此而常常只能睡4-5小時,但是過程很值得:) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 137.222.114.244 ※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1498425108.A.F8A.html ※ 編輯: cjamhe01385 (137.222.114.244), 06/26/2017 05:12:09 ※ 編輯: cjamhe01385 (137.222.114.244), 06/26/2017 05:13:26

06/26 20:41, , 1F
有點猛 推一個
06/26 20:41, 1F
※ 編輯: cjamhe01385 (137.222.114.240), 06/27/2017 01:03:20

06/27 01:13, , 2F
06/27 01:13, 2F

06/27 01:29, , 3F
太強了@@果然還是要被逼才會進度快
06/27 01:29, 3F

06/27 03:38, , 4F
entity manager可從list改用BST或hashtable(name當key)
06/27 03:38, 4F

06/27 03:39, , 5F
hashtable優點是entity lookup費時O(1),缺點是有洞
06/27 03:39, 5F

06/27 03:40, , 6F
iterate會浪費時間,BST沒這問題,但存取費時O(log n)
06/27 03:40, 6F

06/27 03:41, , 7F
要依照遊戲需求做抉擇,我會選BST,如果lookup造成效能
06/27 03:41, 7F

06/27 03:41, , 8F
瓶頸,那就要重新審視有沒有必要這麼多entity了
06/27 03:41, 8F

06/27 03:42, , 9F
^ 針對你的代處理事項提出的一點小建議 :)
06/27 03:42, 9F

06/27 03:43, , 10F
06/27 03:43, 10F

06/27 03:47, , 11F
天啊cj大,你是我默默關注的偶像,太開心了
06/27 03:47, 11F

06/27 03:56, , 12F
謝謝建議,我是有改用hashtable,但我會改BST試試
06/27 03:56, 12F

06/28 15:59, , 13F
其實只要知道大概的東西就能做,但是實際上看著企劃再
06/28 15:59, 13F

06/28 15:59, , 14F
思考遊戲內容.. 引擎只是一種工具而已呢
06/28 15:59, 14F

06/29 00:39, , 15F
06/29 00:39, 15F

07/01 09:13, , 16F
太強了!最近也從app轉寫程式 有點想去進修
07/01 09:13, 16F
文章代碼(AID): #1PK2SK-A (GameDesign)
文章代碼(AID): #1PK2SK-A (GameDesign)