1 introduction to game development. game platform game platform game types game types game team game...

30
1 Introduction to Introduction to Game Development Game Development

Upload: myles-blake

Post on 22-Dec-2015

224 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

1

Introduction toIntroduction toGame DevelopmentGame Development

Page 2: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

Game PlatformGame Platform Game TypesGame Types Game TeamGame Team Game Development PipelineGame Development Pipeline Game Software SystemGame Software System ToolsTools

2

Introduction to game developmentIntroduction to game development

Page 3: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

PCPC– Single playerSingle player– Massive multi-player online game ( MMOG )Massive multi-player online game ( MMOG )– Web-based GamesWeb-based Games

Console ( Video game console )Console ( Video game console )– Sony PS2Sony PS2– Microsoft XboxMicrosoft Xbox– Nintedo GameCubeNintedo GameCube

Arcade ( CArcade ( Coin-operated entertainment machine )oin-operated entertainment machine ) MobileMobile

– Game Boy Advance ( GBA )Game Boy Advance ( GBA )– Handheld video game consoleHandheld video game console– iPhoneiPhone

3

Game platformGame platform

Page 4: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

Designed for office applicationDesigned for office application Not for entertainmentNot for entertainment A virtual memory systemA virtual memory system

– Unlimited memory usingUnlimited memory using But video memory is limitedBut video memory is limited PCI/AGP might be a challengePCI/AGP might be a challenge Open architectureOpen architecture Compatibility test is importantCompatibility test is important Development is easy to setupDevelopment is easy to setup

4

Game development on PCGame development on PC

Page 5: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

Specific hardware designed for gamesSpecific hardware designed for games Single user / single process OSSingle user / single process OS In general no hard disk drive (??)In general no hard disk drive (??) Closed systemClosed system Very native coding wayVery native coding way

– Proprietary SDKProprietary SDK– Hardware related featuresHardware related features

Limited resourcesLimited resources– MemoryMemory

One console runs, the others do!One console runs, the others do!

5

Game development on consoleGame development on console

Page 6: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

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) MMORPG ( MMORPG ( Massively multiplayer online role Massively multiplayer online role

playing game )playing game ) Strategy gameStrategy game Simulation gameSimulation game SportsSports Puzzle gamesPuzzle games Table gamesTable games

6

Game typesGame types

Page 7: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

Development TeamDevelopment Team– ProducersProducers– Executive producersExecutive producers– Game designersGame designers– ProgrammersProgrammers– ArtistsArtists– Level designersLevel designers– Sound engineersSound engineers

Sales and marketing ( Sales and marketing ( 行銷業務團隊 行銷業務團隊 )) Testers (Testers ( 測試團隊 測試團隊 )) Game review committee (Game review committee ( 遊戲審議委員會 遊戲審議委員會 ))

7

Game team membersGame team members

Page 8: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

Team leader (always)Team leader (always) Resource management ( Resource management ( 資源管理 資源管理 )) Administration ( Administration ( 行政管理 行政管理 )) Upward management ( Upward management ( 向上管理向上管理 )) Project management ( Project management ( 專案管理 專案管理 ))

8

Game producer Game producer 遊戲製作人遊戲製作人

Page 9: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

Project management ( Project management ( 專案管理執行 專案管理執行 )) Daily operationDaily operation House keepingHouse keeping Not full-time job positionNot full-time job position

9

Game executive producer Game executive producer 遊戲執行製作人遊戲執行製作人

Page 10: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

Story telling (Story telling ( 故事設計 故事設計 )) Scripting (Scripting ( 腳本設計 腳本設計 )) Game play design ( Game play design ( 玩法設計 玩法設計 )) Level design (Level design ( 關卡設計 關卡設計 )) Game tuning (Game tuning ( 遊戲調適 遊戲調適 )) Numerical setup (Numerical setup ( 數值設定 數值設定 )) Game AI (Game AI ( AI AI 設計 設計 )) Sound FX setup (Sound FX setup ( 音效設定 音效設定 )) Scene setupScene setup (( 場景設定 場景設定 ))

10

Game design Game design 遊戲企劃遊戲企劃

Page 11: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

TerrainTerrain (( 場景 場景 )) CharacterCharacter (( 人物 人物 )) ModelsModels (( 建模 建模 )) TexturesTextures (( 材質 材質 )) Motion / AnimationMotion / Animation (( 動作 動作 )) FXFX (( 特效 特效 )) User InterfaceUser Interface

11

Game art Game art 遊戲美術遊戲美術

Page 12: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

Game program (Game program ( 遊戲程式遊戲程式 )) Game tools (Game tools ( 遊戲開發工具遊戲開發工具 ))

– Level editorLevel editor– Scene editorScene editor– FX editorFX editor– Script editorScript editor

Game data exporters from 3D softwareGame data exporters from 3D software– 3dsMax / Maya / Softimage3dsMax / Maya / Softimage

Game engine developmentGame engine development Online game server developmentOnline game server development

12

Game program Game program 遊戲程式遊戲程式

Page 13: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

Idea (Idea ( 發想發想 )) ProposalProposal ( ( 提案提案 )) ProductionProduction ( ( 製作製作 )) Integration (Integration ( 整合整合 )) TestingTesting ( ( 測試測試 ))

– DebugDebug ( ( 除錯除錯 ))– TuningTuning ( ( 調適調適 ))

13

Basic Procedures for Game Development

Idea Proposal Production IntegrationTesting

Debug Tuning

ConceptApproval

Prototype Pre-alpha Alpha Beta Final

> Concept Approval

> 雛形 (Prototype)

> Pre-alpha

> Alpha

> Beta

Flowchart of game developmentFlowchart of game development

Page 14: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

Game types ( Game types ( 遊戲類型 遊戲類型 )) Game world ( Game world ( 遊戲世界觀 遊戲世界觀 )) Story ( Story ( 故事 故事 )) Features ( Features ( 遊戲特色 遊戲特色 )) Game play ( Game play ( 遊戲玩法 遊戲玩法 )) Game product positioning ( Game product positioning ( 遊戲定位 遊戲定位 ))

– Target playerTarget player– Marketing segmentation / positioningMarketing segmentation / positioning

Risk ( Risk ( 風險評估 風險評估 ))– SWOT SWOT

(Strength/Weakness/Opportunity/Threat)(Strength/Weakness/Opportunity/Threat)14

Concept design ( Concept design ( 遊戲發想 遊戲發想 ))

Page 15: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

System analysis ( System analysis ( 系統分析 系統分析 )) Game design document ( GDD Game design document ( GDD 撰寫 撰寫 )) Media design document ( MDD Media design document ( MDD 撰寫 撰寫 )) Technical design document ( TDD Technical design document ( TDD 撰寫 撰寫 )) Game project ( Game project ( 遊戲專案建立 遊戲專案建立 ))

– ScheduleSchedule– Milestones / check pointsMilestones / check points– Risk managementRisk management

Proposal for testing ( Proposal for testing ( 測試計畫書 測試計畫書 )) Team building ( Team building ( 團隊建立 團隊建立 ))

15

Proposal Proposal 遊戲提案遊戲提案

Page 16: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

High quality artworksHigh quality artworks– ModelingModeling– TexturesTextures– AnimationAnimation– MotionMotion– FX (Special Effects)FX (Special Effects)

Coding ( Coding ( 程式開發 程式開發 )) MarketingMarketing

16

QualityQuality>>

QuantityQuantity

Production Production 遊戲開發遊戲開發

Page 17: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

Level integration ( Level integration ( 關卡串聯 關卡串聯 )) Number tuning ( Number tuning ( 數值調整 數值調整 )) Audio ( Audio ( 音效置入 音效置入 )) Artworks ( Artworks ( 完成所有美術 完成所有美術 )) Integration of game programs and artworks ( Integration of game programs and artworks (

程式與美術結合 程式與美術結合 )) Focus group (User study)Focus group (User study)

– Release some playable levels for focus Release some playable levels for focus groupgroup

17

Integration Integration 遊戲整合遊戲整合

Page 18: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

Alpha ( Alpha ( 測試 測試 ))– Debug ( Debug ( 除錯 除錯 ))

Beta ( Beta ( 測試 測試 ))– Number tuning ( Number tuning ( 值微調 值微調 ))– Game play tuning ( Game play tuning ( 微調 微調 ))– MMOG ( MMOG ( 對線上遊戲而言 對線上遊戲而言 ))

»Closed beta ( Closed beta ( 封閉測試 封閉測試 ))»Open beta ( Open beta ( 開放測試 開放測試 ))

Critical testing ( Critical testing ( 極限測試 極限測試 ))

18

Testing Testing 遊戲測試遊戲測試

Page 19: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

Bug Classification ( Bug Bug Classification ( Bug 分級 分級 ))http://http://www.cse.iitd.ernet.in/www.cse.iitd.ernet.in/

~jalote/papers/Common~jalote/papers/CommonBugsBugs.pdf .pdf – Memory leaksMemory leaks– Free already freed resourcesFree already freed resources– NULL dereferencingNULL dereferencing– Show in different formatsShow in different formats– Synchronization errorsSynchronization errors– Value outside domainValue outside domain– In terms of game play experienceIn terms of game play experience PrinciplesPrinciples– Strict guidelines for bug classificationStrict guidelines for bug classification– Tester vs DebuggerTester vs Debugger

19

Bug Classification

Bug Dispatch

Debug

Verify

Bug

FAQ

Y

N

?

BugsBugs

Page 20: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

20

3D Graphics API 2D API Input Device OS API

3D Scene Mngmt 2D Sprite Gamepad NetworkAudio

Terrain Collision Character UIDynamics Sound FX

Game

Game PlayLayer

EngineLayer

SystemLayer

Game software systemGame software system

Page 21: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

Graphics APIGraphics API– DirectX GraphicsDirectX Graphics– OpenGL 3.0OpenGL 3.0

Input DeviceInput Device– DirectX SDK – DirectInputDirectX SDK – DirectInput

AudioAudio– DirectX SDK – DirectSound / Direct3DSound / DirectMediaDirectX SDK – DirectSound / Direct3DSound / DirectMedia– OpenALOpenAL– NetworkNetwork

21

System Layer – APIs (1/2)System Layer – APIs (1/2)

Page 22: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

OS APIOS API– Win32 SDKWin32 SDK– MFCMFC

NetworkNetwork– DirectX SDK – DirectPlayDirectX SDK – DirectPlay– Socket librarySocket library

RakNetRakNet““RakNet is a cross platform, open source, C++ networking engine for RakNet is a cross platform, open source, C++ networking engine for

game programmers. A lower level framework powers higher-level game programmers. A lower level framework powers higher-level features such as game object replication.”features such as game object replication.”

Source: http://www.jenkinssoftware.com/Source: http://www.jenkinssoftware.com/(last visited: 19 Feb. 2011)(last visited: 19 Feb. 2011)

Development environment .NET 2003Development environment .NET 2003

22

System Layer – APIs (2/2)System Layer – APIs (2/2)

Page 23: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

3D scene management system3D scene management system– Scene graphScene graph

ShadersShaders 2D sprite system2D sprite system Audio systemAudio system GamepadGamepad HotkeyHotkey MouseMouse TimersTimers NetworkNetwork Driver development kit ( DDK ) interfaceDriver development kit ( DDK ) interface

23

Engine Layer (1/2)Engine Layer (1/2)

Page 24: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

TerrainTerrain Advanced scene management – space Advanced scene management – space

partitionpartition– BSP TreeBSP Tree– OctreeOctree

Character systemCharacter system Motion blending techniquesMotion blending techniques DynamicsDynamics Collision detectionCollision detection SoundFXSoundFX User interfaceUser interface

24

Engine Layer (2/2)Engine Layer (2/2)

Page 25: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

NPC (Non-playable characters)NPC (Non-playable characters) Game AIGame AI

– Path findingPath finding– Finite state machineFinite state machine

AvatarAvatar Combat systemCombat system FX systemFX system Script systemScript system Trading systemTrading system Number systemNumber system

25

Game Play ModulaGame Play Modula

Page 26: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

Visual C++Visual C++– .NET .NET – Visual C/C++ 6.0+ SP5Visual C/C++ 6.0+ SP5

DirectX DirectX or OpenGL or OpenGL NuMega BoundsCheckerNuMega BoundsChecker

http://en.wikipedia.org/wiki/BoundsCheckerhttp://en.wikipedia.org/wiki/BoundsChecker

A memory checking toolA memory checking tool Intel vTune (Intel vTune (效能分析器效能分析器 ))

http://software.intel.com/en-us/articles/intel-vtune-amplifier-xe/http://software.intel.com/en-us/articles/intel-vtune-amplifier-xe/

3D tools3D tools– 3dsMax/Maya/Softimage/Blender/3dsMax/Maya/Softimage/Blender/

In-house toolsIn-house tools26

Game development toolsGame development tools

Page 27: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

http://www.cs.nctu.edu.tw/~cswingo/teaching/http://www.cs.nctu.edu.tw/~cswingo/teaching/3DGamePro/3DGamePro/

27

Course HomepageCourse Homepage

Page 28: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

DoxygenDoxygen

-Use doxygen to document ALL programs:http://www.stack.nl/~dimitri/doxygen/

download.html

Page 29: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

\3DGameCourse_Ogre_vc_9_v1-7-1 \3DGameCourse_Ogre_vc_9_v1-7-1 – \boost_1_42\boost_1_42– \lib\lib OgreMain.dll, OgreTerrain.dll, etc.OgreMain.dll, OgreTerrain.dll, etc.– IncludeInclude \OIS, \OGRE\OIS, \OGRE– mediamedia– \programs\programs

» gameSkeletongameSkeleton demo_hello.slndemo_hello.sln \media \media \\ stores fonts, textures, scripts, etc\\ stores fonts, textures, scripts, etc \release\release \debug\debug \source \source \\ cpp files and .h files and other\\ cpp files and .h files and other \bin\release\bin\release \\ binary, DLLs\\ binary, DLLs docsdocs \\ documents\\ documents

29

The File Structure of Game SkeletonThe File Structure of Game Skeleton

Page 30: 1 Introduction to Game Development. Game Platform Game Platform Game Types Game Types Game Team Game Team Game Development Pipeline Game Development Pipeline

OGRE3DOGRE3D http://www.ogre3d.org/download/sdkhttp://www.ogre3d.org/download/sdk OGRE 1.7.1 or up Visual C++ .Net 2010 (32-OGRE 1.7.1 or up Visual C++ .Net 2010 (32-

bit)bit)

Course: Course: http://sourceforge.net/projects/ogre/files/ogre/1.7/http://sourceforge.net/projects/ogre/files/ogre/1.7/

OgreSDK_vc9_v1-7-1.exe OgreSDK_vc9_v1-7-1.exe

2010-04-25 52.3 MB 2010-04-25 52.3 MB