Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 3D Game Programming 王銓彰 2005.

Similar presentations


Presentation on theme: "1 3D Game Programming 王銓彰 2005."— Presentation transcript:

1 1 3D Game Programming 王銓彰 kevin.cwang@msa.hinet.net 2005

2 2 Introduction to Game Development (3hr) Introduction to Game Development (3hr) Game System Analysis (3hr) Game System Analysis (3hr) The Game Main Loop (3hr) The Game Main Loop (3hr) 3D Game Engine Training (Using TheFly3D) (6hr) 3D Game Engine Training (Using TheFly3D) (6hr) Game Mathematics & Geometry (3hr) Game Mathematics & Geometry (3hr) Terrain (3hr) Terrain (3hr) Characters (3hr) Characters (3hr) Game Control System (3hr) Game Control System (3hr) Advanced Scene Management System (3hr) Advanced Scene Management System (3hr) Game AI (6hr) Game AI (6hr) Game Physics (3hr) Game Physics (3hr) Game FX (3hr) Game FX (3hr) Network Gaming (3hr) Network Gaming (3hr) MMOG (3hr) MMOG (3hr) Summary Summary Wang’s Method for Real-time 3D Game Development Wang’s Method for Real-time 3D Game Development課程大綱

3 3 One term project One term project The students are in teams. The students are in teams. Use TheFly3D 3D engine to code a Real-time 3D Game. Use TheFly3D 3D engine to code a Real-time 3D Game. Action RPG Action RPG The teacher will provide graphics materials and setup the game design. The teacher will provide graphics materials and setup the game design. Final examination Final examination Homework will be closely coupled with the term project. Homework will be closely coupled with the term project. 課程要求

4 4 目前 目前 數位內容學院 專任講師 / 顧問 數位內容學院 專任講師 / 顧問 宇峻奧汀 顧問 宇峻奧汀 顧問 鈊象電子 3D 技術顧問 鈊象電子 3D 技術顧問 學歷 學歷 台灣大學土木工程學系畢業 台灣大學土木工程學系畢業 資歷 資歷 04-04 資策會網路多媒體研究所 專案顧問 04-04 資策會網路多媒體研究所 專案顧問 97-04 昱泉國際股份有限公司 技術長 97-04 昱泉國際股份有限公司 技術長 96-96 虛擬實境電腦動畫股份有限公司 研發經理 96-96 虛擬實境電腦動畫股份有限公司 研發經理 93-96 西基電腦動畫股份有限公司 研發經理 93-96 西基電腦動畫股份有限公司 研發經理 90-93 國家高速電腦中心 助理研究員 90-93 國家高速電腦中心 助理研究員 89-90 台灣大學土木工程學系 CAE Lab 研究助理 89-90 台灣大學土木工程學系 CAE Lab 研究助理 王銓彰 (1/3)

5 5 Game 作品 Game 作品 Current Current TheFly3D 3D Engine TheFly3D 3D Engine 昱泉國際 昱泉國際 DragonFly 3D Game Engine DragonFly 3D Game Engine M2 神甲奇兵, VRLobby, 天劍記 M2 神甲奇兵, VRLobby, 天劍記 Lizard 3D Game Engine Lizard 3D Game Engine 幻影特攻、笑傲江湖 I & II 、神鵰俠侶 I & II 、風雲、小李飛刀、 笑傲江湖網路版、怪獸總動員、聖劍大陸、笑傲外傳 幻影特攻、笑傲江湖 I & II 、神鵰俠侶 I & II 、風雲、小李飛刀、 笑傲江湖網路版、怪獸總動員、聖劍大陸、笑傲外傳 西基電腦動畫 西基電腦動畫 Ultimate Fighter Ultimate Fighter 1 st real-time 3D fighting game in Taiwan 1 st real-time 3D fighting game in Taiwan 王銓彰 (2/3)

6 6 專長 (Expertise) 專長 (Expertise) 3D Computer Graphics 3D Computer Graphics Geometric Modeling Geometric Modeling Numerical Methods Numerical Methods Character Animation Character Animation Photo-realistic Rendering Photo-realistic Rendering Real-time Shading Real-time Shading Volume Rendering Volume Rendering 應用領域 (Applications) 應用領域 (Applications) 即時 3D 遊戲開發 (Real-time 3D Game Development) 即時 3D 遊戲開發 (Real-time 3D Game Development) 電腦動畫 (Computer Animation) 電腦動畫 (Computer Animation) 虛擬實境 (Virtual Reality) 虛擬實境 (Virtual Reality) 電腦輔助設計 (Computer-aided Design, CAD) 電腦輔助設計 (Computer-aided Design, CAD) 科學視算 (Scientific Visualization) 科學視算 (Scientific Visualization) 王銓彰 (3/3)

7 7 1st Introduction to Game Development

8 8 Game platform Game platform Game types Game types Game team Game team Game development pipeline Game development pipeline Game software system Game software system Tools Tools Introduction to Game Development

9 9 PC PC Single player Single player Match Makings Match Makings MMOG (Massive Multi-player Online Game) MMOG (Massive Multi-player Online Game) Web-based Games Web-based Games Console Console Sony PS2 Sony PS2 MS Xbox MS Xbox Nintendo GameCube Nintendo GameCube Arcade Arcade Mobile Mobile Nintendo GBA Nintendo GBA Nintendo DS Nintendo DS Sony PSP Sony PSP Hand-held Hand-held Game Platform

10 10 PC is designed for general office application. PC is designed for general office application. Not for entertainment purpose Not for entertainment purpose A virtual memory system A virtual memory system Unlimited system memory Unlimited system memory But video memory is limited. But video memory is limited. For frame buffers, z buffers, textures, vertices, … For frame buffers, z buffers, textures, vertices, … PCI / AGP might be a problem for performance. PCI / AGP might be a problem for performance. Open architecture Open architecture Hardware driver version issue Hardware driver version issue Different capabilities Different capabilities Different performance Different performance Compatibility test is very important. Compatibility test is very important. Development is easy to setup. Development is easy to setup. Visual C/C++ with DirectX Visual C/C++ with DirectX Game Development on PC

11 11 Specific hardware designed for games Specific hardware designed for games Single user OS Single user OS Single process OS Single process OS No hard disk drive (?) No hard disk drive (?) Closed system Closed system Native coding environment Native coding environment Proprietary SDK Proprietary SDK Hardware related features Hardware related features C language with assembly C language with assembly Limited resources Limited resources Memory for everything Memory for everything 32M for PS2 32M for PS2 64M for Xbox 64M for Xbox One console runs, the others do ! One console runs, the others do ! Use gamepad and no keyboard Use gamepad and no keyboard Game Development for Consoles

12 12 RPG (Role playing games) RPG (Role playing games) AVG (Adventure games) AVG (Adventure games) RTS (Real-time strategy games) RTS (Real-time strategy games) FPS (First-person shooting games) FPS (First-person shooting games) RSLG ( 戰棋 ) RSLG ( 戰棋 ) STG STG Sports Sports Action Action Puzzle games Puzzle games Table games Table games MMORPG MMORPG Massive Multiple Player Online Role Playing Games Massive Multiple Player Online Role Playing Games Game Types

13 13 開發團隊 開發團隊 製作人 製作人 執行製作人 執行製作人 企劃團隊 企劃團隊 程式團隊 程式團隊 美術團隊 美術團隊 行銷業務團隊 行銷業務團隊 產品經理 (PM) 產品經理 (PM) 測試團隊 測試團隊 遊戲審議委員會 遊戲審議委員會 Game project approval Game project approval 遊戲經營團隊 遊戲經營團隊 線上遊戲 game master (GM) 線上遊戲 game master (GM) Customer services Customer services MIS MIS Game Team Members

14 14 Team leader (usually) Team leader (usually) 資源管理 (Resource management) 資源管理 (Resource management) 行政管理 (Administration) 行政管理 (Administration) 專案管理 (Project management) 專案管理 (Project management) 向上負責 (Upward management) 向上負責 (Upward management) 團隊的決策 團隊的決策 風險管理 風險管理 Game Producer 遊戲製作人

15 15 專案管理執行 專案管理執行 Daily 運作 Daily 運作 House keeping House keeping Meeting coordinator Meeting coordinator Schedule checking Schedule checking Cross-domain communication Cross-domain communication Usually not a full-time job position Usually not a full-time job position A position for training and becoming a producer A position for training and becoming a producer遊戲執行製作人

16 16 故事設計 (Story telling) 故事設計 (Story telling) 腳本設計 (Scripting) 腳本設計 (Scripting) 玩法設計 (Game play design) 玩法設計 (Game play design) 角色設計 (Character design) 角色設計 (Character design) 動作設計 (Animation design) 動作設計 (Animation design) 關卡設計 (Level design) 關卡設計 (Level design) 特效設計 (Effect design) 特效設計 (Effect design) 物件設計 物件設計 介面設計 (User Interface design) 介面設計 (User Interface design) 遊戲調適 (Game tuning) 遊戲調適 (Game tuning) 數值設定 (Numerical setup) 數值設定 (Numerical setup) AI 設計 (Game AI design) AI 設計 (Game AI design) 音效設定 (Sound FX setup) 音效設定 (Sound FX setup) 遊戲企劃 (1/2)

17 17 場景設定 (Scene setup) 場景設定 (Scene setup) Game document writing Game document writing Game quality checking Game quality checking 遊戲企劃 (2/2)

18 18 Visual setup for game design Visual setup for game design 2D setup 2D setup 3D setup 3D setup Graphics design and production Graphics design and production 場景 (Terrain) 場景 (Terrain) 人物 (Character) 人物 (Character) 建模 (Models) 建模 (Models) 材質 (Textures) 材質 (Textures) 動作 (Motion / Animation) 動作 (Motion / Animation) 特效 (FX) 特效 (FX) User Interface User Interface 行銷支援 ( 封面. 海報.. 等 ) 行銷支援 ( 封面. 海報.. 等 )遊戲美術

19 19 遊戲程式 (Game Program) 撰寫 遊戲程式 (Game Program) 撰寫 遊戲開發工具 (Game Tools) 開發 遊戲開發工具 (Game Tools) 開發 Level editor Level editor Scene editor Scene editor FX editor FX editor Script editor Script editor Game editor Game editor 遊戲 Data exporters from 3D animation Software 遊戲 Data exporters from 3D animation Software 3dsMax / Maya / Softimage 3dsMax / Maya / Softimage Game engine development Game engine development Game technique research Game technique research Online game server development Online game server development遊戲程式

20 20 Basic Procedures for Game Development IdeaProposalProductionIntegration Testing DebugTuning Concept Approval PrototypePre-alphaAlphaBetaFinal 發想 (Idea) 發想 (Idea) 提案 (Proposal) 提案 (Proposal) 製作 (Production) 製作 (Production) 整合 (Integration) 整合 (Integration) 測試 (Testing) 測試 (Testing) 除錯 (Debug) 除錯 (Debug) 調適 (Tuning) 調適 (Tuning) > Concept approval > 雛形 (prototype) > Pre-alpha > Alpha > Beta遊戲開發流程

21 21 遊戲類型 (Game types) 遊戲類型 (Game types) 遊戲世界觀 (Game world) 遊戲世界觀 (Game world) 故事 (Story) 故事 (Story) 遊戲特色 (Features) 遊戲特色 (Features) 遊戲玩法 (Game play) 遊戲玩法 (Game play) 遊戲定位 (Game product positioning) 遊戲定位 (Game product positioning) Target player Target player Marketing segmentation / positioning Marketing segmentation / positioning 競爭對手評估 競爭對手評估 風險評估 (Risk) 風險評估 (Risk) SWOT (Strength/Weakness/Opportunity/Threat) 分析 SWOT (Strength/Weakness/Opportunity/Threat) 分析 產出物 產出物 Concept Design Document (CDD) Concept Design Document (CDD) 遊戲發想 (Concept Design)

22 22 系統分析 (System analysis) 系統分析 (System analysis) GDD 撰寫 (Game design document) GDD 撰寫 (Game design document) MDD 撰寫 (Media design document) MDD 撰寫 (Media design document) TDD 撰寫 (Technical design document) TDD 撰寫 (Technical design document) 遊戲專案建立 (Game project) 遊戲專案建立 (Game project) Schedule Schedule Milestones / Check points Milestones / Check points Risk management Risk management 測試計畫書 測試計畫書 團隊建立 (Team building) 團隊建立 (Team building) 產出物 產出物 GDD GDD MDD MDD TDD TDD The Team The Team 遊戲提案 (Proposal)

23 23 美術量產製作 美術量產製作 Modeling Modeling Textures Textures Animation Animation Motion Motion FX FX 程式開發 (Coding) 程式開發 (Coding) 企劃數值設定 企劃數值設定 … 量產 ! 遊戲開發 (Production)

24 24 關卡串聯 (Level integration) 關卡串聯 (Level integration) 數值調整 (Number tuning) 數值調整 (Number tuning) 音效置入 (Audio) 音效置入 (Audio) 完成所有美術 完成所有美術 程式與美術結合 程式與美術結合 Testing within the game team Testing within the game team Focus group (User study) Focus group (User study) Release some playable levels for focus group. Release some playable levels for focus group. Get the feedback from focus group to adjust the game play. Get the feedback from focus group to adjust the game play. Invited outside game players but evaluation in-house Invited outside game players but evaluation in-house 遊戲整合 (Integration)

25 25 Alpha 測試 Alpha 測試 除錯 (Debug) 除錯 (Debug) Make the game stable Make the game stable Beta 測試 Beta 測試 數值微調 數值微調 Game play 微調 Game play 微調 對線上遊戲而言 (MMOG) 對線上遊戲而言 (MMOG) 封閉測試 (Closed beta) 封閉測試 (Closed beta) Invited game players Invited game players 開放測試 (Open beta) 開放測試 (Open beta) Free for public players Free for public players 極限測試 (Critical testing) 極限測試 (Critical testing) Only for MMOG Only for MMOG Continuously implementing Continuously implementing For servers For servers 遊戲測試 (Test)

26 26 Bug 分級 (Bug Classification) Bug 分級 (Bug Classification) A Bug A Bug B Bug B Bug C Bug C Bug S Bug S Bug Principles Principles Bug 分級從嚴 Bug 分級從嚴 Tester vs Debugger Tester vs Debugger Bug Classification Bug Dispatch Debug Verify Bug FAQ Y N ?Bugs

27 27 Hardware 3D Graphics API2D APIInput DeviceOS API3D Scene Mngmt2D SpriteGamepadNetworkAudioTerrainCollisionCharacterUIDynamicsSound FX Fighting SystemFX SystemGame AIScript System NPC SystemVirtual AgentTrading SystemStory Game Game Play Layer Engine Layer System Layer Game Software System

28 28 3D Graphics API 3D Graphics API DirectX 9.0 SDK – Direct3D DirectX 9.0 SDK – Direct3D Newest update : DirectX 9.0c SDK Update (June, 2005) Newest update : DirectX 9.0c SDK Update (June, 2005) OpenGL OpenGL 2.0 2.0 2D API 2D API DirectX 9.0 SDK - DirectMedia DirectX 9.0 SDK - DirectMedia Win32 GDI Win32 GDI Input device Input device DirectX 9.0 SDK – DirectInput DirectX 9.0 SDK – DirectInput Audio Audio DirectX 9.0 SDK – DirectSound / Direct3DSound / DirectMedia DirectX 9.0 SDK – DirectSound / Direct3DSound / DirectMedia OpenAL OpenAL System Layer – APIs (1/2)

29 29 OS API OS API Win32 SDK Win32 SDK MFC MFC Network Network DirectX 9.0 SDK – DirectPlay DirectX 9.0 SDK – DirectPlay Socket library Socket library System Layer – APIs (2/2)

30 30 3D scene management system 3D scene management system Scene graph Scene graph Shaders Shaders 2D sprite system 2D sprite system Audio system Audio system Gamepad Gamepad Hotkeys Hotkeys Mouse Mouse Timers Timers Network Network DDK interface DDK interface Engine Layer (1/2)

31 31 Terrain system Terrain system Advanced scene management system Advanced scene management system Space partition technique Space partition technique BSP Tree BSP Tree Octree Octree Character system Character system Bone-skin Bone-skin Motion Blending Motion Blending Dynamics Dynamics Particle system Particle system Rigid-body dynamics Rigid-body dynamics Collision detection Collision detection Sound FX Sound FX User interface User interface Engine Layer (2/2)

32 32 NPC (Non-playable characters) management NPC (Non-playable characters) management Game AI Game AI Path finding Path finding Finite state machine (FSM) Finite state machine (FSM) Steering behavior Steering behavior Avatar Avatar Combat system Combat system FX system FX system Script system Script system Trading system Trading system Number system Number system … Game Play Layer

33 33 System Tools System Tools Visual C/C++ Visual C/C++.Net 2003.Net 2003 VC/C++ 7.1 VC/C++ 7.1 Visual C/C++ 6.0 + SP5 Visual C/C++ 6.0 + SP5 NuMega BoundsChecker NuMega BoundsChecker Finding memory leaking Finding memory leaking Intel vTune Intel vTune Finding computation performance bottlenecks Finding computation performance bottlenecks for CPU for CPU PIX PIX Finding graphics performance bottlenecks Finding graphics performance bottlenecks For GPU For GPU Game Development Tools for Programming (1/2)

34 34 SDKs SDKs System API System API Win32 SDK or MFC Win32 SDK or MFC DirectX SDK or OpenGL DirectX SDK or OpenGL Socket library Socket library Middleware (Game engine) Middleware (Game engine) Renderware Renderware Unreal Unreal … Physics Physics ODE ODE Game Development Tools for Programming (2/2)

35 35 3D tools 3D tools Discrete 3dsMax Discrete 3dsMax Maya Maya Softimage XSI Softimage XSI 2D tools 2D tools Photoshop Photoshop Illustrator Illustrator Motion tools Motion tools Motion capture devices Motion capture devices Motion Builder Motion Builder FiLMBOX FiLMBOX Game Development Tools for Artists

36 36 2nd Game System Analysis


Download ppt "1 3D Game Programming 王銓彰 2005."

Similar presentations


Ads by Google