--- tags: 'NCUGC' --- # 程式分線課程-遊戲引擎介紹 > 2019.10.15 > 講師:阿空的遊戲部屋 ## 引擎的概念 - 插件與編輯工具 - 例子: - unity-Bolt - unity Visual scripting > 引擎降低門檻但要做出自己想要的功能與系統仍須學習與撰寫 ### 引擎功用 - 底層設備的溝通 - 硬體設備間的轉換 - 素材格式的支援 - 圖檔、音檔處理方式不同 - 提供編輯與管理介面 - 方便管理、直接拖拉 ## 各種引擎介紹 ### 阿空流分類法 - 框架:程式的library,封裝了基本渲染、資產管理、音訊處理等等API - 引擎:封裝了大量的API、元件與編輯界面,邏輯功能仍須依賴撰寫程式來運行 - 編輯引擎:將API與程式撰寫的部分封裝成介面操作,可以專注在邏輯處理上,通常為制式化的製作流程 <----------------> 原生開發 Framework 遊戲引擎 兼容擴充的編輯引擎 編輯器 功能局限高 開發效率高 程式需求低  ## 如何挑選引擎與注意的事項 ### Unity迷思 - 相較好上手(架構容易理解),相關資料與學習資源豐富 - 泛用的開發框架 - 進可攻3D、退可守2D - 跨平台輸出 - 市佔率高 → 大部分遊戲公司都是用unity - 社群推動與更新頻率高 - 免費版足夠使用 - ==但有程式門檻== ## 引擎挑法 - 團隊能力與人力 - 引擎適不適合協作、引擎的上手門檻 - 開發時程 - 遊戲運行的平台 - 開發語言 - 2D或3D - 適合開發的遊戲種類 ### 原生開發 - 通常會使用基礎函式庫(library) - 渲染 - WebGL/OpenGL、DirectX - 音效 - OpenAL/Naudio - 其他 - 額外輸入元件的SDK ### 使用框架開發 - 包好大多數多媒體會用到的功能函式庫 - 包含渲染、音效、素材格式兼容、事件處理、輸入、碰撞、物理系統... - PyGame - LibGDX - PixiJS - Phaser - Cocos2d-x - MonoGame (Xna) --- #### Framework 框架 - 舉凡攝影機、座標轉換...都要自己來 - 通常沒有物理引擎,但可以使用第三方物理引擎 - P2.js - Box2d - 手動處理碰撞事件 - 沒編輯介面、要自己包裝或用程式來初始化物件位置 - Pygame - 使用python進行開發 - 考驗邏輯 - LibGDX - 使用JAVA - 適合用來快速打造自有引擎 (可以自己寫渲染管線) - PixiJS - 使用JavaScript進行開發 - 屬於輕量型的渲染引擎 - 適合做小型網頁廣告 - Phaser3 - 使用TypeScript/JavaScript - 相較於PixiJS功能更為橫幅,但相對厚重 - Cocos2d-x - 使用C++ - 老牌框架 - MonoGame - 使用C# - 基於Xna開發架構來重製的引擎 ### 使用引擎開發 將所有基礎元件與管理界面包裝好,可以更快搭建自己的系統邏輯。 - Unity - C# - 2D/3D兼容 - 跨平台輸出 - 可進行自定義的編輯器擴充 - 年營收$100,000以下免費 - Unreal Engine - C++/BluePrint - 2D/3D兼容 - 跨平台輸出 - 產品達到3000鎂營收,每季5% - GoDot - GodotScript/C++ - 2D/3D兼容 - 跨平台輸出 - OpenSource - GameMaker - GameMakerLanguage(GML) - 2D兼容,3D可以自己寫(貌似沒編輯器) - 跨平台輸出($$$) - 本體需要購買,輸出工具依照平台個別購買 - Cocos Creator - JavaScript/TypeScript - 2D/3D兼容 - 中文 - Egret Engine - TypeScript - 2D兼容,有Egret 3D可以使用 - 跨平台輸出 - 系列工具一條龍 - EgretWing (VSCode改的專用IDE) - Dragonbone (動畫製作工具) - 甚至Particle、效能偵測,都有出專門的工具 - 中文 ### 使用編輯器開發 - RPG Maker - 使用JavaScript,基於PixiJS框架 - 跨平台輸出 - 2D兼容 - 本體需要購買 - RenPy - 使用Python,基於PyGame框架 - 跨平台輸出 - 2D兼容 - 免費 - Construct 2 / 3 - 使用EventSheet / JavaScript - 跨平台輸出 - 2D兼容 - 免費(有內容數量限制) - NVL Maker - 基於Krkr的視覺化操作工具 - 只能輸出PC - 2D兼容 - 免費 ## 如何快速掌握遊戲引擎 ### 基本電子遊戲元素 - 畫面顯示 - 控制處理 - 音效播放 ### 事件觸發處理 - 碰撞處理 - UI處理 ### 優化體驗 - 動畫系統 - 物理系統 - 攝影機控制 - 粒子系統 ### 如何開始 - 找個小型專案,邊做邊學 - 建議不要是坑團 - 遇到卡關該怎麼辦 - stackoverflow <style> span.hidden-xs:after { content: ' X NCUGC 5th' !important; } span.hidden-xs{ font-size: 1.5vw; animation: color 2s infinite; font-family: Consolas, 微軟正黑體 } </style>
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.