王銓彰 kevin.cwang@msa.hinet.net 3D Game Programming 王銓彰 kevin.cwang@msa.hinet.net
課程大綱 Introduction to Game Development (3hr) Game System Analysis (3hr) The Game Main Loop (3hr) 3D Game Engine Training (TheFly3D) (6hr) Game Mathematics (3hr) Geometry for Games (3hr) Advanced Scene Management System (6hr) Terrain (3hr) Game AI (6hr) Game Physics (3hr) Game FX (3hr) Network Gaming (3hr) Introduction to MMOG (3hr) The Non-3D Parts (3hr)
課程要求 One Term Project Two Examinations The Students will divide into several teams Use TheFly3D Game Engine to code a 3D Real-time Strategy Game The Teacher will Provide Graphics Materials Two Examinations Homework will be closely coupled with the term project
王銓彰 目前 學歷 資歷 昱泉國際股份有限公司 技術顧問 數位內容學院 專任講師 / 顧問 資策會多媒體研究所 專案顧問 台灣大學土木工程學系畢業 資歷 97-03 昱泉國際股份有限公司 技術長 96-96 虛擬實境電腦動畫股份有限公司 研發經理 93-96 西基電腦動畫股份有限公司 研發經理 90-93 國家高速電腦中心 助理研究員 89-90 台灣大學土木工程學系 CAE Lab 研究助理
王銓彰 Game作品 昱泉國際 西基電腦動畫 DragonFly 3D Game Engine Lizard 3D Game Engine M2神甲奇兵, VRLobby, 天劍記 Lizard 3D Game Engine 幻影特攻、笑傲江湖 I & II、神鵰俠侶 I & II、風雲、小李飛刀、笑傲江湖網路版、怪獸總動員、聖劍大陸、笑傲外傳 西基電腦動畫 Ultimate Fighter – 1st Realtime 3D fighting game in Taiwan
王銓彰 專長 (Expertise) 3D Computer Graphics Geometric Modeling Numerical Methods Character Animation Photo-realistic Rendering Real-time Shading Volume Rendering
王銓彰 應用領域 (Applications) 即時3D遊戲開發 (Real-time 3D Game Development) 電腦動畫 (Computer Animation) 虛擬實境 (Virtual Reality) 電腦輔助設計 (Computer-aided Design) 科學視算 (Scientific Visualization)
Introduction To Game Development
Introduction to Game Dev Game Platform Game Types Game Team Game Development Pipeline Game Software System Tools
Game Platform PC Console Arcade Mobile Single player Match Makings MMOG (Massive Multi-player Online Game) Web-based Games Console Sony PS2 MS Xbox Nintedo GameCube Arcade Mobile GBA Hand-held
Game Development on PC Designed for Office Application Not for Entertainment A Virtual Memory System Unlimited memory using But Video Memory is Limited PCI/AGP might be a Challenge Open Architecture Compatibility Test is Important Development is Easy to Setup
Game Development on Console Specific Hardware Designed for Games Single User / Single Process OS In General no Hard Disk Drive Closed System Very Native Coding Way Proprietary SDK Hardware related features Limited Resources Memory One Console runs, the others do!
Game Types RPG (Role playing games) AVG (Adventure games) RTS (Real-time strategy games) FPS (First-person shooting games) MMORPG( Massive Multi-player Online ) SLG (戰棋) Simulation Sports Puzzle games Table games
Game Team組成 開發團隊 製作人 執行製作人 企劃團隊 程式團隊 美術團隊 行銷業務團隊 測試團隊 遊戲審議委員會
Producer (遊戲製作人 ) Team Leader (always) Resource Management(資源管理) Administration (行政管理) Upward Management (向上負責 ) Project Management (專案管理 )
遊戲執行製作人 Project Management(專案管理執行) Daily 運作 House Keeping Not full-time job position
遊戲企劃 Story Telling(故事設計) Scripting (腳本設計 ) Game Play Design (玩法設計 ) Level Design (關卡設計 ) Game Tuning (遊戲調適 ) Numerical Setup (數值設定 ) Game AI (AI 設計 ) Sound FX Setup (音效設定 ) Scene Setup(場景設定)
遊戲美術 Terrain(場景) Character (人物) Models (建模) Textures(材質) Motion / Animation(動作) FX (特效) User Interface
遊戲程式 Game Program(遊戲程式 ) Game Tools (遊戲開發工具 ) Level Editor Scene Editor FX Editor Script Editor Game Data Exporters from 3D Software 3dsMax / Maya / Softimage Game Engine Development Online Game Server Development
遊戲開發流程 Idea(發想 ) Proposal (提案) Production(製作 ) Integration (整合) Basic Procedures for Game Development Idea Proposal Production Integration Testing Debug Tuning Concept Approval Prototype Pre-alpha Alpha Beta Final Idea(發想 ) Proposal (提案) Production(製作 ) Integration (整合) Testing(測試 ) Debug(除錯 ) Tuning(調適) > Concept Approval > 雛形 (Prototype) > Pre-alpha > Alpha > Beta
遊戲發想 (Concept Design) Game Types(遊戲類型) Game World (遊戲世界觀 ) Story (故事) Features (遊戲特色) Game Play(遊戲玩法 ) Game Product Positioning (遊戲定位 ) Target player Marketing segmentation / positioning Risk(風險評估 ) SWOT (Strength/Weakness/Opportunity/Threat)
遊戲提案 (Proposal) System Analysis(系統分析 ) Game Design Document(GDD 撰寫 ) Media Design Document(MDD 撰寫 ) Technical Design Document (TDD 撰寫 ) Game Project (遊戲專案建立 ) Schedule Milestones / Check points Risk management 測試計畫書 Team Building (團隊建立 )
量產 ! 遊戲開發 (Production) 美術量產製作 Modeling Textures Animation Motion FX 程式開發 (Coding) 企劃數值設定 … 量產 !
遊戲整合 (Integration) Level Integration(關卡串聯 ) Number Tuning (數值調整 ) Audio(音效置入 ) 完成所有美術 程式與美術結合 Focus Group (User Study) Release some playable levels for focus group
遊戲測試 (Testing) Alpha Test Debug (除錯 ) Beta Test 數值微調 Game play 微調 對線上遊戲而言 (MMOG) 封閉測試 (Closed Beta) 開放測試 (Open Beta) 極限測試 (Critical Testing) 線上遊戲才有
Bug Bug 分級 (Bug Classification) A Bug B Bug C Bug S Bug Principles Bug Dispatch Debug Verify Bug FAQ Y Bug 分級 (Bug Classification) A Bug B Bug C Bug S Bug Principles Bug 分級從嚴 Tester vs Debugger ? N
Game Software System Game Play Layer Engine Layer System Layer Game Fighting System FX System Game AI Script System NPC System Virtual Agent Trading System Story Game Play Layer Terrain Collision Character UI Dynamics Sound FX Engine Layer 3D Scene Mngmt 2D Sprite Gamepad Network Audio 3D Graphics API 2D API Input Device OS API System Layer Hardware
System Layer - APIs 3D Graphics API 2D API Input Device Audio DirectX 9.0 SDK – Direct3D OpenGL 2.0 2D API DirectX 9.0 SDK - DirectMedia Win32 GDI Input Device DirectX 9.0 SDK – DirectInput Audio DirectX 9.0 SDK – DirectSound / Direct3DSound / DirectMedia OpenAL
System Layer - APIs OS API Network Win32 SDK MFC DirectX 9.0 SDK – DirectPlay Socket library
Engine Layer 3D Scene Management System Shaders 2D Sprite System Scene Graph Shaders 2D Sprite System Audio System Gamepad Hotkey Mouse Timers Network DDK Interface
Engine Layer Terrain Advanced Scene Management – Space Partition BSP Tree Octree Character System Motion Blending Techniques Dynamics Collision Detection SoundFX User Interface
Game Play Modula NPC (Non-playable Characters) Game AI Avatar Path Finding Finite State Machine … Avatar Combat System FX System Script System Trading System Number System
Game Dev Tools java Visual C/C++ DirectX / OpenGL NuMega BoundsChecker .net 2003 Visual C/C++ 6.0+ SP5 DirectX / OpenGL DirectX Current 9.0c OpenGL Current 2.0 NuMega BoundsChecker Intel vTune 3D Tools 3dsMax/Maya/Softimage In-house Tools