--- 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
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up