1 game system analysis. idea about system analysis (sa) idea about system analysis (sa) mind mapping...

38
1 Game System Analysis Game System Analysis

Upload: job-tate

Post on 17-Dec-2015

226 views

Category:

Documents


0 download

TRANSCRIPT

1

Game System AnalysisGame System Analysis

Idea about system analysis (SA)Idea about system analysis (SA) Mind mappingMind mapping Case study – term projectCase study – term project

2

ContentsContents

For program structure analysisFor program structure analysis– Program modulusProgram modulus– ToolsTools

To identify work load To identify work load – Programs/tools under developmentPrograms/tools under development

For resource managementFor resource management– Man monthMan month– How many programmers ?How many programmers ?– Development tools ?Development tools ?– Specific tools ?Specific tools ?

For job dependency analysisFor job dependency analysis

3

Why system analysis (1/2)Why system analysis (1/2)

To make technical feasibility analysis To make technical feasibility analysis 程式結程式結構 構 – R&D ?R&D ?

Pre-process forPre-process for– Technical design documentTechnical design document– Project managementProject management

Bridge from game design to programmingBridge from game design to programming

4

Why system analysis (2/2)Why system analysis (2/2)

No standard proceduresNo standard procedures Something must be done!Something must be done! MethodsMethods

– UMLUML– Mind mapping (Mind mapping ( 心智圖法心智圖法 ))

5

Something about system analysisSomething about system analysis

BrainstormingBrainstorming IntegrationIntegration Dependency analysisDependency analysis Create the projectCreate the project Write the technical design document (TDD)Write the technical design document (TDD)

6

System analysis stepsSystem analysis steps

Based on the game design to put everything Based on the game design to put everything as many as we couldas many as we could

Use mind mappingUse mind mapping 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 / vehicles / terrain / audio / …Characters / vehicles / terrain / audio / …

7

BrainstormingBrainstorming

Confirm the resource limitationConfirm the resource limitation Technical implement possibilityTechnical implement possibility Put all related items togetherPut all related items together Man month analysisMan month analysis

– How many ?How many ?– Who ?Who ?

Jobs/System identificationJobs/System identification

8

IntegrationIntegration

Sort the JobsSort the Jobs– By dependencyBy dependency– By programmersBy programmers

Prototype for schedulingPrototype for scheduling

Dependency analysisDependency analysis

10

Dependency analysisDependency analysis

Schedule One:

Schedule Two:

SchedulingScheduling Job assignmentJob assignment Resource allocationResource allocation Check pointsCheck points MilestonesMilestones Risk management policyRisk management policy

11

System analysis – create the projectSystem analysis – create the project

SpecificationSpecification ResourcesResources Design in detailsDesign in details Implementation methods (Implementation methods ( 工法工法 )) AlgorithmsAlgorithms The projectThe project Show each milestoneShow each milestone SOP (standard operation procedure SOP (standard operation procedure 標準作業標準作業

程序程序 ))

12

Write the technical design documentWrite the technical design document

Mind mapping Mind mapping 心智圖法心智圖法 A radiant thinking toolA radiant thinking tool ApplicationsApplications

– What one has learned from studyWhat one has learned from study– ProposalProposal– Notes Notes – Traveling journal Traveling journal 遊記遊記– System analysisSystem analysis

ReferenceReference– ProgramProgram

» VisioVisio» MindManager, MindManager, » MindMapper: http://www.mindmapper.com/?gclid=CI7837Ot15ECFRs3egod7ixdagMindMapper: http://www.mindmapper.com/?gclid=CI7837Ot15ECFRs3egod7ixdag

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

13

Mind mapMind map

14

15MindMapper 2008

Use MindManager Pro 7Use MindManager Pro 7

Developed by MindJetDeveloped by MindJet

http://www.softpedia.com/get/Others/Finances-Business/Mindjet-MindManager-Pro.shtmlhttp://www.softpedia.com/get/Others/Finances-Business/Mindjet-MindManager-Pro.shtml

16

Mind map demo using MindManagerMind map demo using MindManager

17

Term ProjectTerm ProjectSystem AnalysisSystem Analysis

Real-time shooting gameReal-time shooting game Mission-based levelsMission-based levels Keyboard- and mouse-driven controls Keyboard- and mouse-driven controls Player vs computerPlayer vs computer State-based AIState-based AI Group movementGroup movement

Game design (1/3)Game design (1/3)

Space ship – controlled by playerSpace ship – controlled by player» MoveMove» AttackAttack

NPC – controlled by computerNPC – controlled by computer– ““Robots” - EnemyRobots” - Enemy

» Triggered by time tableTriggered by time table

– AIAI» MoveMove» StandbyStandby» Anti-attackAnti-attack» AttackAttack

19

Game design (2/3)Game design (2/3)

Game AIGame AI– Finite state machineFinite state machine– Path findingPath finding

» 3D3D» A*A*

– Steering behaviorSteering behavior» Flocks / Schools / HerdsFlocks / Schools / Herds» http://www.red3d.com/cwr/boids/http://www.red3d.com/cwr/boids/

– AI Game Programming WisdomAI Game Programming Wisdom, Charles River Media, Charles River Media (1 & (1 & 2)2)

20

Game design (3/3)Game design (3/3)

Basic commentsBasic comments/*!/*!

\brief A game listener\brief A game listener

A detailed description: A game listener handles game events, A detailed description: A game listener handles game events, game state and game geometry.game state and game geometry.

*/*/

class GameListener {class GameListener {

private:private:

int n; int n; //!< The number of elements.//!< The number of elements.

//!<//!<

……

……

};};21

Doxygen – A documentation generatorDoxygen – A documentation generator

Basic commentsBasic comments

/*!/*!\brief Add two numbers\brief Add two numbers

Compute the sum of two integers.Compute the sum of two integers.

\param a The first integer.\param a The first integer.

\param b The second integer.\param b The second integer.

\return The sum of two integers.\return The sum of two integers.

*/*/

int addTwoNumbers(int a, int b);int addTwoNumbers(int a, int b);22

Doxygen – A documentation generatorDoxygen – A documentation generator

23

Introduction to OGRE 3DIntroduction to OGRE 3D

24

Prerequisites:

On Windows, Microsoft Visual C++ .NET 2003

Familiar with ISO Standard C++, STL Familiar with ISO Standard C++, STL

Latest drivers for graphics hardwareLatest drivers for graphics hardware

25

OGRE3D - An open source software project- Lesser GNU Public License

-Mature Mature -StableStable-ReliableReliable-Flexible, plug-in librariesFlexible, plug-in libraries-Cross-platformCross-platform-Full-featured libraryFull-featured library

For real-time 3D graphics applications For real-time 3D graphics applications in an object-oriented mannerin an object-oriented manner

26

Dependencies

On Windows:On Windows:

- FreeType- FreeType- devIL- devIL- zziplib- zziplib- zlib- zlib- Cg Toolkit- Cg Toolkit

27

Where does OGRE 3D fit?Rendering Video View

A typical high-level game / simulation architecture

2828

Features:

- Support both OpenGL and Direct3D

- Cross-platforms, e.g. Windows, Linux, Mac OS

- Extensible object framework

- Support fixed-function texture, blending techniques, programmable GPU techniques, shading languages, e.g. Cg, HLSL

- Queue-based rendering management

- LoD

292929

Features:

- Advanced maskable scene-querying system

- Advanced plug in-based particle system

- Support for skyboxes, skyplanes and skydomes

- Robust material system

- Support animation: skeletal, morph, pose

- Compositor postprocessing

- Extensible resource management

303030

Scene Graph

- The data structure of the scene objects- Design ?

- Something to render - meshes- sub-meshes- materials- positions of the objects

31313131

Scene GraphThe data structure of the scene objects- Design ?

- Something to render - meshes- sub-meshes- materials- positions of the objects-

Scene Graph

Mesh Sub-mesh

Material

RenderableScene Node

[ 1 .. n ] [ 1 .. 1 ] [ 1 .. n ]

[ 1 .. n ]

[ 1 .. n ]

Movable or not?

32

Attached ?

Implements ?

33

Render queue architecture- Each queue has an order- Render based on order- Each item in a queue has an order too!

3434

OGRE3D: Subsystem overview(1) Root

- fire up and shut down- can access every subsystems

(2) Resource management- Mesh, .mesh- Skeleton, .skeleton- Material, .material- GPU program, .program, .asm- Texture- Compositor, .compositor- Font, .fontdef

35

OGRE3D: Subsystem overview(3) Scene management

- SceneManager

- SceneNode

(4) Render system and render target- RenderSystem, generalization of the interface between OGRE and hardware API

- RenderTarget

3636

OGRE3D: Managers- Manages access to or control lifetimes of other related types of objects-Singleton objects.

-(1) LogManager

-(2) ControllerManager

-(3) DynLibManager

-(4) PlatformManager

373737

OGRE3D: Managers-(5) CompositorManager

-(6) ParticleSystemManager

-(7) MaterialManager

-(8) SkeletonManager

38383838

OGRE3D: Managers

-(9) MeshManager

-(10) OverlayManager

-(11) ResourceGroupManager

-(12) TextureManager