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

37 37 The idea about system analysis (SA) The idea about system analysis (SA) Mind mapping Mind mapping Case study - Term project Case study - Term project What Will We Talk Here

38 38 For 程式結構 analysis For 程式結構 analysis The main program The main program Game development tools Game development tools To identify 工作量 To identify 工作量 New game engine ? New game engine ? Re-used code ? Re-used code ? Tools needed to be developed ? Tools needed to be developed ? For 資源 management For 資源 management Total man month Total man month How many programmers ? How many programmers ? How good the programmers ? How good the programmers ? For job dependency analysis For job dependency analysis Why System Analysis (1/2) Job AJob B Job C Job D

39 39 To do 技術可行性 Analysis To do 技術可行性 Analysis R&D ? R&D ? Where is the technical bottleneck ? Where is the technical bottleneck ? Pre-processor for Pre-processor for Technical design document Technical design document Project management Project management Bridge from game design to programming Bridge from game design to programming Why System Analysis (2/2)

40 40 No standard procedures or approaches No standard procedures or approaches It’s not a theory. It’s not a theory. Experience Experience You can use your own method/tool You can use your own method/tool UML UML Mind mapping ( 心智圖法 ) Mind mapping ( 心智圖法 ) This is the one we will use in this course This is the one we will use in this course … Something about System Analysis

41 41 Brainstorming Brainstorming Integration Integration Dependency analysis Dependency analysis Create the project Create the project Technical design document (TDD) writing Technical design document (TDD) writing Wang’s System Analysis Steps

42 42 Based on the game design to put everything as many as you could Based on the game design to put everything as many as you could Use mind mapping Use mind mapping Including Including Game system Game system Combat / Village / Puzzle / … Combat / Village / Puzzle / … Program modulus Program modulus Camera / PC control / NPC AI / UI / FX /… Camera / PC control / NPC AI / UI / FX /… Tools Tools Level editor / Scene editor / … Level editor / Scene editor / … Entities in games Entities in games Characters / vehicle / terrain / audio / … Characters / vehicle / terrain / audio / …Brainstorming

43 43 Confirm the resource limitation Confirm the resource limitation Technical implement possibility Technical implement possibility Put all related items together Put all related items together Man month analysis Man month analysis How many ? How many ? Who ? Who ? Jobs / System identification Jobs / System identificationIntegration

44 44 Sort the Jobs Sort the Jobs By job dependency By job dependency By programmers’ schedule By programmers’ schedule Prototype for scheduling Prototype for scheduling Dependency Analysis

45 45 Scheduling Scheduling Job assignment Job assignment Resource allocation Resource allocation Check points Check points Milestones Milestones Major check points Major check points Output Output Risk management Risk management Alternatives Alternatives Risk management policy Risk management policy System Analysis – Create the Project

46 46 Specification Specification Resources Resources Design in details Design in details Implement methods ( 工法 ) Implement methods ( 工法 ) Algorithms Algorithms “Project” “Project” Output in each milestone Output in each milestone SOP (optional) SOP (optional) TDD Template TDD Template TDD Template TDD Template Write the Technical Design Document

47 47 心智圖法 心智圖法 A radiant thinking tool A radiant thinking tool Applications Applications 讀書心得 讀書心得 Proposal Proposal 上課筆記 上課筆記 遊記 遊記 System Analysis System Analysis … Reference Reference Programs Programs Visio Visio MindManager MindManager Books Books Tony Buzan, Barry Buzan Tony Buzan, Barry Buzan “The Mind Map Book: How to Use Radiant Thinking to Maximize Your Brain's Untapped Potential” “The Mind Map Book: How to Use Radiant Thinking to Maximize Your Brain's Untapped Potential” Mind Map

48 48

49 49

50 50 Use MindManager X5 pro Use MindManager X5 pro Developed by MindJet Developed by MindJet Mind Map Demo Using MindManager


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

Similar presentations


Ads by Google