42
1 System Analysis for System Analysis for Games Games 王王王 王王王 2014 2014 [email protected] [email protected]

1 System Analysis for Games 王銓彰2014 [email protected] [email protected]

Embed Size (px)

Citation preview

Page 1: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

11

System Analysis for GamesSystem Analysis for Games

王銓彰王銓彰

20142014

[email protected]@gmail.com

Page 2: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

IntroductionIntroduction System AnalysisSystem Analysis Mind mapMind map Game SystemGame System

課程內容課程內容

22

Page 3: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

3

開發團隊開發團隊 製作人製作人 執行製作執行製作 企劃團隊企劃團隊 程式團隊程式團隊 美術團隊美術團隊

行銷業務團隊行銷業務團隊 產品經理產品經理 (PM)(PM)

測試團隊測試團隊 遊戲審議委員會遊戲審議委員會

Game project approvalGame project approval 遊戲營運團隊遊戲營運團隊

線上遊戲 線上遊戲 game master (GM)game master (GM) Customer servicesCustomer services MISMIS

Game Team MembersGame Team Members

Page 4: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

4

Basic Procedures for Game Development

Idea Proposal Production IntegrationTesting

Debug Tuning

ConceptApproval

Prototype Pre-alpha Alpha Beta Final

發想 發想 ((Idea)Idea) 提案 提案 ((Proposal)Proposal) 製作 製作 ((Production)Production) 整合 整合 ((Integration)Integration) 測試 測試 ((Testing)Testing)

除錯 除錯 ((Debug)Debug) 調適 調適 ((Tuning)Tuning)

> Concept approval

> 雛型 (prototype)

> Pre-alpha

> Alpha

> Beta

遊戲開發流程遊戲開發流程

Page 5: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

5

主要程式開發工具主要程式開發工具 Visual C/C++Visual C/C++ Scripting ToolsScripting Tools

Python, Lua, Java ScriptPython, Lua, Java Script C#, Objective-CC#, Objective-C

必備必備軟體開發套件 軟體開發套件 (Software Development Kits, SDKs)(Software Development Kits, SDKs) 系統方面系統方面

個人電腦方面個人電腦方面 Win32 SDK, MFC, .NETWin32 SDK, MFC, .NET

電視遊戲器電視遊戲器 無標準通用的系統無標準通用的系統

3D3D 圖形方面圖形方面 個人電腦方面 個人電腦方面 : : DirectX SDK (DirectX SDK ( 主要主要 )) or OpenGL or OpenGL Xbox 360 : DirectX SDKXbox 360 : DirectX SDK Sony PS3 : (OpenGL)Sony PS3 : (OpenGL) iOS/Android – OpenGL/ESiOS/Android – OpenGL/ES

遊戲開發工具 遊戲開發工具 – – 遊戲程式 遊戲程式 (1/3)(1/3)

Page 6: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

6

網路方面網路方面 Socket library, SmallfoxSocket library, Smallfox

選配選配中介軟體 中介軟體 (Middleware)(Middleware) 遊戲引擎 遊戲引擎 (Game engine)(Game engine)

Unreal (Unreal Engine, UDK)Unreal (Unreal Engine, UDK) CryEnigneCryEnigne UnityUnity GamebryoGamebryo RenderwareRenderware BigWorld (MMO)BigWorld (MMO)

物理引擎 物理引擎 (Physics engine)(Physics engine) ODE (Open Dynamics Engine)ODE (Open Dynamics Engine) Bullet PhysicsBullet Physics PhysXPhysX HavokHavok

遊戲開發工具 遊戲開發工具 – – 遊戲程式 遊戲程式 (2/3)(2/3)

Page 7: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

7

使用者界面使用者界面 QtQt ScaleFormScaleForm

遊戲開發工具 遊戲開發工具 – – 遊戲程式 遊戲程式 (3/3)(3/3)

Page 8: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

8

3D tools3D tools Autodesk 3dsMaxAutodesk 3dsMax Autodesk MayaAutodesk Maya Autodesk Softimage XSIAutodesk Softimage XSI

2D tools2D tools PhotoshopPhotoshop IllustratorIllustrator

Motion toolsMotion tools Motion capture devices (Hardware)Motion capture devices (Hardware) Autodesk Motion BuilderAutodesk Motion Builder

EtcEtc Z BrushZ Brush

Game Development Tools for ArtistsGame Development Tools for Artists

Page 9: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Connection from Game Design to ImplementationConnection from Game Design to Implementation For Program StructureFor Program Structure Analysis (Analysis ( 程式結構分析程式結構分析 ))

Program modulusProgram modulus Tools neededTools needed

To Identify Work Load (To Identify Work Load ( 工作量工作量 )) How much code to be done ?How much code to be done ? What tools to be developed ?What tools to be developed ?

For ResourceFor Resource Management (Management ( 資源管理資源管理 )) Man month ? (Man month ? ( 人月人月 )) How many programmers ?How many programmers ? Development tools ?Development tools ? Specific requirements ?Specific requirements ?

Why System Analysis (1/2)Why System Analysis (1/2)

99

Page 10: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

For Jobs Dependency AnalysisFor Jobs Dependency Analysis To Analyze Technical ImplementTo Analyze Technical Implement PossibilityPossibility

技術可行性分析技術可行性分析 R&DR&D Work-flowWork-flow

Pre-processor forPre-processor for Game / technical design document (GDD/TDD)Game / technical design document (GDD/TDD) Project managementProject management

Why System Analysis (2/2)Why System Analysis (2/2)

1010

Page 11: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

There Are No Standard ProceduresThere Are No Standard Procedures It’s Not a Theory, Just Something Must Be Done!It’s Not a Theory, Just Something Must Be Done! Popular Solutions :Popular Solutions :

UMLUML Mind map (Mind map ( 心智圖法心智圖法 ))

This is the one we will use for this courseThis is the one we will use for this course

Something about System AnalysisSomething about System Analysis

1111

Page 12: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Brainstorming (Brainstorming ( 腦力激盪腦力激盪 )) Integration (Integration ( 整合整合 )) Dependency Analysis (Dependency Analysis ( 相依性分析相依性分析 )) Create the Project (Create the Project ( 專案建立專案建立 )) Write the Design Document (Write the Design Document ( 設計文件撰寫設計文件撰寫 ))

System Analysis StepsSystem Analysis Steps

1212

Page 13: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Select a ToolSelect a Tool Mind mapMind map

Based on the Game Design to Put Everything in Structure As Many As You Based on the Game Design to Put Everything in Structure As Many As You CanCan

IncludingIncluding Game systemGame system

Combat / Village / Puzzle / …Combat / Village / Puzzle / … Program modulusProgram 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 gamesEntities in games

Characters / vehicle / terrain / sky dome / audio / …Characters / vehicle / terrain / sky dome / audio / … Technical hi-lightsTechnical hi-lights

BrainstormingBrainstorming

1313

Page 14: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Confirm the Resource LimitationConfirm the Resource Limitation Technical Implement PossibilityTechnical Implement Possibility Connect All Related Items TogetherConnect All Related Items Together Remove Redundant ItemsRemove Redundant Items Jobs / System IdentificationJobs / System Identification Man Month AnalysisMan Month Analysis

BudgetsBudgets How many ?How many ? Who ?Who ?

IntegrationIntegration

1414

Page 15: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Sort the JobsSort the Jobs By dependencyBy dependency By human resourceBy human resource

Prototype for schedulingPrototype for scheduling The Step That Always Is Ignored by EveryoneThe Step That Always Is Ignored by Everyone

Doing good will make the schedule practicalDoing good will make the schedule practical Reduce unnecessary risksReduce unnecessary risks

Dependency AnalysisDependency Analysis

1515

Page 16: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Scheduling (Scheduling ( 時間排程時間排程 )) Job Assignment (Job Assignment ( 工作指派工作指派 )) Resource Allocation (Resource Allocation ( 資源配置資源配置 )) Check pointsCheck points MilestonesMilestones Risk Management Policy (Risk Management Policy ( 風險管理風險管理 ))

Create the ProjectCreate the Project

1616

Page 17: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

GDDGDD Game design documentGame design document

MDDMDD Media design documentMedia design document

TDDTDD Technical design documentTechnical design document

Writing Design DocumentWriting Design Document

1717

Page 18: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

心智圖法心智圖法 A Radiant Thinking ToolA Radiant Thinking Tool ApplicationsApplications

讀書心得讀書心得 Proposal (Proposal ( 提案提案 )) 上課筆記上課筆記 遊記遊記 System AnalysisSystem Analysis ……

ReferenceReference ProgramProgram

VisioVisio MindManagerMindManager ……

Tony Buzan, Barry Buzan, “The Mind Map Book: How to Use Radiant Tony Buzan, Barry Buzan, “The Mind Map Book: How to Use Radiant Thinking to Maximize Your Brain's Untapped Potential” Thinking to Maximize Your Brain's Untapped Potential”

Mind MapMind Map

1818

Page 19: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

19

Page 20: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Use MindManager ProUse MindManager Pro Developed By MindJetDeveloped By MindJet MindManagerMindManager

Mindmap ToolsMindmap Tools

2020

Page 21: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Game SystemsGame Systems Game systemsGame systems

Control & camera systemControl & camera system Combat systemCombat system Reward systemReward system Game FXsGame FXs LevelsLevels Village systemVillage system User interfaceUser interface The main programThe main program

2121

Page 22: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Game Control System (1/2)Game Control System (1/2) Game control is the interface between the game and the user.Game control is the interface between the game and the user. Game control is not only input device control but also the camera controlGame control is not only input device control but also the camera control Input device controlInput device control

On PCOn PC MouseMouse KeyboardKeyboard GamepadGamepad

On game consoleOn game console Gamepad buttonsGamepad buttons

0 or 2550 or 255 JoystickJoystick

0 - 2550 - 255

2222

Page 23: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Game Control System (2/2)Game Control System (2/2) Camera controlCamera control

First-personal viewFirst-personal view Third-personal viewThird-personal view God viewGod view Pre-set camera viewPre-set camera view EtcEtc

2323

Page 24: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Mouse Control (1/3)Mouse Control (1/3) Mouse is a 2D device.Mouse is a 2D device.

2-axis moving2-axis moving Related movementRelated movement 2 or 3 buttons2 or 3 buttons

Mouse can :Mouse can : MoveMove DragDrag Double-clickDouble-click

BehaviorsBehaviors Hit testHit test SelectionSelection PilotPilot

Position & orientationPosition & orientation

2424

Page 25: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Mouse Control (2/3)Mouse Control (2/3) Typical game types using mouse controlTypical game types using mouse control

Real-time strategy gamesReal-time strategy games Role Playing GameRole Playing Game

Typical game play examples :Typical game play examples : Path finding for playable characterPath finding for playable character Hitting the enemyHitting the enemy Selecting a group of unitsSelecting a group of units Orientating the camera in FPS gamesOrientating the camera in FPS games Menu selectionMenu selection ……

FeaturesFeatures Always coupling with god-view camera controlAlways coupling with god-view camera control

Viewing from the top of game worldViewing from the top of game world

2525

Page 26: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Mouse Control (3/3)Mouse Control (3/3) Easy to hand onEasy to hand on

一鼠到底一鼠到底 Slow actionSlow action

Compared with joystickCompared with joystick Value range from -32727 ~ 32727Value range from -32727 ~ 32727

2626

Page 27: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Keyboard Control (1/3)Keyboard Control (1/3) Standard PC input deviceStandard PC input device Simulating the gamepadsSimulating the gamepads

Not every PC game player having gamepadNot every PC game player having gamepad Using keyboard as the alternative deviceUsing keyboard as the alternative device

Hotkey systemHotkey system Each key has two states.Each key has two states.

PressedPressed ReleasedReleased

256 keys256 keys BehaviorsBehaviors

Key presses/releasedKey presses/released ASCII codeASCII code

One hotkey can represent a set of commandsOne hotkey can represent a set of commands Very fast input deviceVery fast input device

2727

Page 28: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Keyboard Control (2/3)Keyboard Control (2/3) Communication toolCommunication tool

Typing messages Typing messages Typical game types using keyboardTypical game types using keyboard

MMORPGMMORPG Needs chatting with friendsNeeds chatting with friends

Real-time strategy gamesReal-time strategy games Hotkey systemHotkey system

First-person shooting gamesFirst-person shooting games Fighting gamesFighting games

Typical game play examples :Typical game play examples : ChattingChatting Character controlsCharacter controls

Move forwardMove forward TurningTurning

2828

Page 29: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Keyboard Control (3/3)Keyboard Control (3/3) FeaturesFeatures

Shortcut for a sequence of actionsShortcut for a sequence of actions CommandsCommands Menu selectionMenu selection

But a little bit complicated for playersBut a little bit complicated for players 256 keys256 keys

2929

Page 30: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Gamepad Control (1/3)Gamepad Control (1/3) A small “keyboard” designed for game playingA small “keyboard” designed for game playing

Gamepad can map to the hotkey systemGamepad can map to the hotkey system Same behaviorsSame behaviors Less than 20 keysLess than 20 keys

Majors keys :Majors keys :

3030

Page 31: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Gamepad Control (2/3)Gamepad Control (2/3) Recent gamepad capable of two extra digital joysticksRecent gamepad capable of two extra digital joysticks

For buttonsFor buttons Value range : 0 or 255Value range : 0 or 255

For joystickFor joystick Value range : 0 to 255Value range : 0 to 255

Typical game types using gamepadTypical game types using gamepad Almost all types of games exceptAlmost all types of games except

Need typingNeed typing Need large-range selection for game unitsNeed large-range selection for game units

Typical game play examples :Typical game play examples : Character controlsCharacter controls

Move forwardMove forward Turn Turn

3131

Page 32: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Gamepad Control (3/3)Gamepad Control (3/3) Combat system in a fighting gameCombat system in a fighting game

Move forwardMove forward TurnTurn

…… FeaturesFeatures

Designed for game playingDesigned for game playing Look and feelLook and feel

Easy to hand-onEasy to hand-on If you not to challenge the players’ usual practiceIf you not to challenge the players’ usual practice

3232

Page 33: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Camera ControlCamera Control TypesTypes

First-personal viewFirst-personal view Third-personal view but following the playable characterThird-personal view but following the playable character God viewGod view

FixedFixed Following the playable characterFollowing the playable character

Fixed viewFixed view Pre-rendered backgroundPre-rendered background

Pre-set viewPre-set view ……

Very sensitive to game play design & game controlVery sensitive to game play design & game control Camera control is not an independent systemCamera control is not an independent system

3333

Page 34: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

God-view Camera ExampleGod-view Camera Example

Age of Empire 3Age of Empire 33434

Page 35: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Major source of the game funMajor source of the game fun Take the action game as our exampleTake the action game as our example ControlsControls

AttackAttack StunStun DefendDefend ParryParry FatalityFatality

Motion management and blendingMotion management and blending NPC AINPC AI FXFX

VisualVisual AudioAudio

Combat System (1/4)Combat System (1/4)

3535

Page 36: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Combat System (2/4)Combat System (2/4)

3636

An ExampleAn Example

Page 37: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Motion managementMotion management Motion blending in runtimeMotion blending in runtime A popular solution - “Blend tree”A popular solution - “Blend tree”

GGame Developersame Developers Conference 2003 Conference 2003 PProceedings CD, Programming Trackroceedings CD, Programming Track ““AAnimation Blending : Achieving Inverse Kinematics and More”nimation Blending : Achieving Inverse Kinematics and More” JJerry Edsallerry Edsall MMech Warrior blend treeech Warrior blend tree

Combat System (3/4)Combat System (3/4)

Fall TransitionFall Transition

ForwardForwardMotionMotion

FallFallDownDown

WalkWalk

RunRun

3737

Page 38: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

NPC AINPC AI Finite state machineFinite state machine

Making decisionMaking decision Steering behaviorSteering behavior

Steering controlSteering control Group movementGroup movement

Path findingPath finding EtcEtc

FXFX Combat FXCombat FX A game without FX is likely a man walking on street in nude.A game without FX is likely a man walking on street in nude.

Combat System (4/4)Combat System (4/4)

3838

Page 39: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Number systemNumber system Level upLevel up Experience pointsExperience points InventoryInventory RecoveryRecovery DamageDamage Mission completeMission complete

Reward SystemReward System

3939

Page 40: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

MenuMenu DialogueDialogue PicturesPictures Mini-mapMini-map Blood barBlood bar CaptionCaption MessagesMessages Game controlsGame controls

User InterfaceUser Interface

4040

Page 41: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Story branchingStory branching Script queryScript query Information exchangeInformation exchange TradingTrading ReinforceReinforce

RestRest

Village SystemVillage System

4141

Page 42: 1 System Analysis for Games 王銓彰2014 cwang001@mac.com kevin.cwang3@gmail.com

Game flow controlsGame flow controls Jump levelJump level Number system testingNumber system testing Barrow inventoryBarrow inventory Game house keepingGame house keeping Game data editingGame data editing DebuggingDebugging

Cheat Code SystemCheat Code System

4242