SlideShare a Scribd company logo
1 of 24
Download to read offline
Initial Design
Introduction
• Software Architecture in general uses certain
rules, heuristics and patterns:
– 1. the problem is partitioned
– 2. interfaces created between these partitions
– 3.Overall structure is managed and the flow is made
easy
– 4.Techniques are used to interface the system to its
environment
– 5. development and delivery approaches, techniques
and tools can be properly planned and executed
• Architecture is important because of following
reasons:
– It controls complexity
– It ensures best practices are followed
– It takes care of consistency and uniformity
– It increases predictability
– It allows reuse
• 2.1.1Need for a good architecture design
– Advantage
• It describe and plan for the expected gameplay features
• It gives us a rational framework within which we can make any required
changed
– If we do not have a design, we may find ourselves frantically changing
gameplay the day before shipping which is never a good idea
– An iterative or tier-based design represented in the architecture
design is more vital for any product that has to incorporate new or
untired feature
– Game design has to satisfy many stakeholder, such as high level
management, marketing department and peers of the game designer
– The technical design acts as a roadmap and also increases project
visibility to generate an overall idea of how to work with project plan.
2.2 Game and hardware abstraction
The architecture has to deal with both game abstraction and
hardware abstraction interface
2.2.1 Game Abstraction
• Abstraction emphasizes on the idea and properties rather than how it
works.
• It greatly reduces the complexity in large programs by hiding the
irrelevant details.
• The game abstraction is the way by which the game object interact.
2.2.2 Hardware Abstraction
– For every platform of different hardware
configuration with different graphics cards, sound
card, etc.
– These codes have to be written and linked through
the common interface
– Hardware abstraction interface will act as an
interface between application and the hardware
• Graphics hardware abstraction
1. DirectX is a set of application programming
interface(APIs) that will call the appropriate
driver in the hardware and also handle all
multimedia tasks.
– A graphical surface in DirectX can be created in
either system(local) memory or video memory.
2. OpenGL which provides extensive cross-platform
graphics library.
– Example screen-handling library can support a
common range of resolutions, double or triple
buffering, bitmapped and True Type fonts, and
sprites.
Sound hardware abstraction
– Similar to graphics object, we have sound object
– The sound card object is a single object accessed
through an initialization function
– The member functions of the sound card object
are: playing, pausing, and stopping: changing
volume and frequency ; and specifying the
position of the sound in three- dimensional space.
– No duplicate sound is made, and any new objects
created refer to original data
• COTS
– It reduces the burden on programmers
– All the basic functionality- the sound system,
graphics engine, music, saving of game, AI,
artwork, etc. are avsailable as componet off the
shelf(COTS).
2.3 The Problem Domain
 Game design transferred to technical specification
that the game developer will understand to code,
enhance, debug and maintain.
 Choose best design among many altenatives
1. Simple feature:
2. Iteration for good result:
3. Simple runtime code:
4. Data-driven code:
5. Hard to debug data-driven engines:
6. Game engines and graphics system:
• Tiers of game Architecture
– There are four tier of game architecture
1. Input-Output devices:
o large amount of data from i/o devices generated. i.e. screaming
2. Device APIs:
o data scream generated needs to processed by one or more engines,
like graphics engine, i/p manager, sound engine,etc.
3. Main:
o CPU processing time is mostly spent on marshalling the processed
data from the game engines and performing general purpose logic.
o Smaller portion of the frame are used, as they are mostly devoted
to physics, animation or graphics.
4. Data:
o Data has been processed by various engines, marshaled by CPU and
incorporated with distinguishing features by API and gameplay code
o It has to be streamed out to the video display console for creating
colorful graphics and giving a visual appeal. This process called as
write streaming or rendering.
o
Input-Output
Devices
-Keyboard
-Joystick
-Mouse
-Monitor or
display unit
Figure: Four tier of game architecture
Device APIs
-Graphics engine
- Input manager
-Sound engine
Main
- Physics
- Game
-AI
Data
-User data
- Game world data
• 2.4.1 Use of good middleware
– APIs used for physics, audio, animation, facial animation,
network transport and various other systems.
– Middleware vendors can keep the cost lower than the
developers themselves making the same code.
– Vendors can afford to keep larger, more experienced teams
working on a given piece of functionality as compared to
independent game developers because the vendors can sell the
piece of code to many developers
– Middleware offers structure
– There is a trade off here. When we use a middleware, we need
to accept that technology’s inflexibility, and modify our game
design to suit it
– It is stable and has a well documented and stable public API
– Once the game is finished, we can decide on what packages to
keep and what to replace as we move forward
2.5 Tokenization
– Tokens are discrete elements that are directly or indirectly
controlled and manipulated by the player
– All the games can be describe in terms of players and
tokens.
– Tokens are conceptual objects which will translated into
programming language objects.
– These might include a player’s avatar, weapons, cards,
counters, metal figures , poker chips and letters of the
alphabet.
– These tokens can be arranged in a form of hierarchy with
the game world at its top.
– Every token has to be part of the game world token.]
– Example: the player’s avatar token acts as a user interface
between the player and the game.
2.5.1 Tokenization of Pong
o Pong is earliest 2D graphics video game released by a firm
named Atari Incorporated in 1972.
o score of both players shown in the top of the screen
o Pong has visible elements such as bat, ball, wall and goal.
o Token are arranged in hierarchical structure (class
diagram).
Bat Ball Wall Goal Score
Bat X - - - -
Ball Defection X - - -
Wall Stop Defection X - -
Goal X Triggers goal event X X X
Score X X X Goal Score X
X: denotes that the interaction is not considered in the game of pong
-: denotes symmetric interaction
Fig: Token-interaction matrix
1. Symmetric interaction:
 If interaction is same in both the ways.
 Ex: bat-ball, ball-bat
2. Asymmetric Interaction:
 This interaction depends on the direction
 Ex: the goal increments the score by 1, whereas
the score increment need not be caused by the
goal.
Fig: Sequence of events that occur when a goal is scored
Collision
event (ball-
goal area)
Goal event
Game-world
token
Reset (bat,
ball) event
Continue
play
Score event End of game
• Token interaction matrix also comes in handy when
deciding the object oriented architecture.
• We need to decide which of the features would be
considered in the interaction.
• We plan to add graphics, then CGameWorld, class will
as a container.
2.5.2 State transition and properties
 Token will not instantaneously change from one state
to another
 It takes some time and follows the transformation
process.
 i.e. it takes a finite amount of time to reach a
transitional state.
 Mostly token responds to only one event at a time
 Handling collision event: to sum the collision vectors
to produce a net result
 For above result, one has to keep a track of all
collision members
 Change in a design and add more tokens
 This shows architecture is not well structured
• The architecture should be flexible enough to add or remove
tokens.
• Maintainability and expandability are the main goals of
design
• Adding a new token should create minimal changes to the
code (hard architecture) and majority of changes have to
be added in the data the drives the game (soft architecture)
• architecture encompasses the structure (component and
their interactions) and the data flow
• Analysis various problems system architect develop
architectural model
• Architectural design breaks the game into subsystems
which are built in stages
• “Hard” and “soft” architecture
– Hard-> horizontal solution
• It is a architectural model in which subsystems interface with
the computer hardware and the player (i/p & o/p interface)
• It uses standard API’s such as DirectX, SDL, OpenGL and so
remains almost static
– Soft-> vertical solution
• It actually makes a game
• It is domain specific and is generally not reusable between
game projects
• As we progress a game, the code becomes less generic and
more specific
• Eg. Level-loading games , it was required to virtually load the
soft architecture of the entire level and configure it at
runtime
• How to solve a the problem with soft architecture
– Best way is assume a token has a set of properties that are
passed on along with the event
– When the collision event occurs, all the properties of the token
that are involved in the collision are stored in the net collision
event.
– This effectively frees us from the dependencies on the collision
objects
– Initially, we think all possible properties, but when design
stabilizes we can remove the unused properties
– Designing an extensive set of events, states, properties and
transitions can reduce the token interaction dependencies
– So we can creates a more structured architecture
2.5.3 Best practices and points to remember
– The enterprise applications do not prepare one for programming game
– Because games are such specialized applications, the it is nearly
impossible to give any one method for all
– One model is best for one and useless for other, it is very difficult to
suggest a common model that works perfectly well for all
– Also theirs is no such things as an “industry standard” defined for the
texture, mesh, level, sound or animation formats
– Each programmer just put his/her idea or uses whatever is convenient for
the platform.
– Following things must be kept in mind by programmer while development
1. Use simple formats that you are familiar with. Do not worry about how
they would work in larger projects. Use free fonts.
2. Do not worry about plug-ins, editors etc
3. When the first working model is ready, consider other elements, and
then iterate

More Related Content

What's hot

Building blocks (Game Architecture)
Building blocks (Game Architecture)Building blocks (Game Architecture)
Building blocks (Game Architecture)Rajkumar Pawar
 
Final year project presentation
Final year project presentationFinal year project presentation
Final year project presentationSulemanAliMalik
 
Game engines and Their Influence in Game Design
Game engines and Their Influence in Game DesignGame engines and Their Influence in Game Design
Game engines and Their Influence in Game DesignPrashant Warrier
 
Game optimization techniques - Most Commons
Game optimization techniques - Most CommonsGame optimization techniques - Most Commons
Game optimization techniques - Most Commonsniraj vishwakarma
 
Android Application And Unity3D Game Documentation
Android Application And Unity3D Game DocumentationAndroid Application And Unity3D Game Documentation
Android Application And Unity3D Game DocumentationSneh Raval
 
Introduction to Game Development
Introduction to Game DevelopmentIntroduction to Game Development
Introduction to Game DevelopmentShaan Alam
 
Introduction to Game Development
Introduction to Game DevelopmentIntroduction to Game Development
Introduction to Game DevelopmentSumit Jain
 
Game Development Step by Step
Game Development Step by StepGame Development Step by Step
Game Development Step by StepBayu Sembada
 
Design phase of game development of unity 2d game
Design phase of game development of unity 2d game Design phase of game development of unity 2d game
Design phase of game development of unity 2d game Muhammad Maaz Irfan
 
An Introduction To Game development
An Introduction To Game developmentAn Introduction To Game development
An Introduction To Game developmentAhmed
 
What Is A Game Engine
What Is A Game EngineWhat Is A Game Engine
What Is A Game EngineSeth Sivak
 
Final Year Game Project Presentation
Final Year Game Project Presentation Final Year Game Project Presentation
Final Year Game Project Presentation Nusrat Jahan Shanta
 
Introduction to Game Engine: Concepts & Components
Introduction to Game Engine: Concepts & ComponentsIntroduction to Game Engine: Concepts & Components
Introduction to Game Engine: Concepts & ComponentsPouya Pournasir
 
Software Engineer- A unity 3d Game
Software Engineer- A unity 3d GameSoftware Engineer- A unity 3d Game
Software Engineer- A unity 3d GameIsfand yar Khan
 
Final Year Game Project Report - Riko: The Aventurer
 Final Year Game Project Report - Riko: The Aventurer  Final Year Game Project Report - Riko: The Aventurer
Final Year Game Project Report - Riko: The Aventurer Nusrat Jahan Shanta
 
Unreal Engine (For Creating Games) Presentation
Unreal Engine (For Creating Games) PresentationUnreal Engine (For Creating Games) Presentation
Unreal Engine (For Creating Games) PresentationNitin Sharma
 

What's hot (20)

Building blocks (Game Architecture)
Building blocks (Game Architecture)Building blocks (Game Architecture)
Building blocks (Game Architecture)
 
Final year project presentation
Final year project presentationFinal year project presentation
Final year project presentation
 
Game engines and Their Influence in Game Design
Game engines and Their Influence in Game DesignGame engines and Their Influence in Game Design
Game engines and Their Influence in Game Design
 
Game optimization techniques - Most Commons
Game optimization techniques - Most CommonsGame optimization techniques - Most Commons
Game optimization techniques - Most Commons
 
Android Application And Unity3D Game Documentation
Android Application And Unity3D Game DocumentationAndroid Application And Unity3D Game Documentation
Android Application And Unity3D Game Documentation
 
Introduction to Game Development
Introduction to Game DevelopmentIntroduction to Game Development
Introduction to Game Development
 
Introduction to Game Development
Introduction to Game DevelopmentIntroduction to Game Development
Introduction to Game Development
 
Game Development Step by Step
Game Development Step by StepGame Development Step by Step
Game Development Step by Step
 
First-person Shooters
First-person ShootersFirst-person Shooters
First-person Shooters
 
Game dev process
Game dev processGame dev process
Game dev process
 
Design phase of game development of unity 2d game
Design phase of game development of unity 2d game Design phase of game development of unity 2d game
Design phase of game development of unity 2d game
 
An Introduction To Game development
An Introduction To Game developmentAn Introduction To Game development
An Introduction To Game development
 
What Is A Game Engine
What Is A Game EngineWhat Is A Game Engine
What Is A Game Engine
 
Final Year Game Project Presentation
Final Year Game Project Presentation Final Year Game Project Presentation
Final Year Game Project Presentation
 
Introduction to Game Engine: Concepts & Components
Introduction to Game Engine: Concepts & ComponentsIntroduction to Game Engine: Concepts & Components
Introduction to Game Engine: Concepts & Components
 
Software Engineer- A unity 3d Game
Software Engineer- A unity 3d GameSoftware Engineer- A unity 3d Game
Software Engineer- A unity 3d Game
 
Zombi - Shoot for Survive
Zombi - Shoot for SurviveZombi - Shoot for Survive
Zombi - Shoot for Survive
 
Final Year Game Project Report - Riko: The Aventurer
 Final Year Game Project Report - Riko: The Aventurer  Final Year Game Project Report - Riko: The Aventurer
Final Year Game Project Report - Riko: The Aventurer
 
Unreal Engine (For Creating Games) Presentation
Unreal Engine (For Creating Games) PresentationUnreal Engine (For Creating Games) Presentation
Unreal Engine (For Creating Games) Presentation
 
What is game development
What is game developmentWhat is game development
What is game development
 

Similar to Initial design (Game Architecture)

1-Introduction (Game Design and Development)
1-Introduction (Game Design and Development)1-Introduction (Game Design and Development)
1-Introduction (Game Design and Development)Hafiz Ammar Siddiqui
 
98 374 Lesson 02-slides
98 374 Lesson 02-slides98 374 Lesson 02-slides
98 374 Lesson 02-slidesTracie King
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminologyrosstapher
 
Supersize Your Production Pipe
Supersize Your Production PipeSupersize Your Production Pipe
Supersize Your Production Pipeslantsixgames
 
Supersize your production pipe enjmin 2013 v1.1 hd
Supersize your production pipe    enjmin 2013 v1.1 hdSupersize your production pipe    enjmin 2013 v1.1 hd
Supersize your production pipe enjmin 2013 v1.1 hdslantsixgames
 
Designing a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile gamesDesigning a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile gamesiFunFactory Inc.
 
98 374 Lesson 04-slides
98 374 Lesson 04-slides98 374 Lesson 04-slides
98 374 Lesson 04-slidesTracie King
 
Sephy engine development document
Sephy engine development documentSephy engine development document
Sephy engine development documentJaejun Kim
 
98 374 Lesson 03-slides
98 374 Lesson 03-slides98 374 Lesson 03-slides
98 374 Lesson 03-slidesTracie King
 
De Re PlayStation Vita
De Re PlayStation VitaDe Re PlayStation Vita
De Re PlayStation VitaSlide_N
 
Y1 gd engine_terminologY
Y1 gd engine_terminologYY1 gd engine_terminologY
Y1 gd engine_terminologYElliotBlack
 
Chapt 1 (part 2) installing the sdk and exploring the workspace
Chapt 1 (part 2)   installing the sdk and exploring the workspaceChapt 1 (part 2)   installing the sdk and exploring the workspace
Chapt 1 (part 2) installing the sdk and exploring the workspaceMuhd Basheer
 
Threading Game Engines: QUAKE 4 & Enemy Territory QUAKE Wars
Threading Game Engines: QUAKE 4 & Enemy Territory QUAKE WarsThreading Game Engines: QUAKE 4 & Enemy Territory QUAKE Wars
Threading Game Engines: QUAKE 4 & Enemy Territory QUAKE Warspsteinb
 
Engine Terminology 1
Engine Terminology 1Engine Terminology 1
Engine Terminology 1copelandadam
 
Unreal Engine Basics 01 - Game Framework
Unreal Engine Basics 01 - Game FrameworkUnreal Engine Basics 01 - Game Framework
Unreal Engine Basics 01 - Game FrameworkNick Pruehs
 
Engine Terminology
Engine Terminology Engine Terminology
Engine Terminology copelandadam
 
Wakka Monkey - Game Development
Wakka Monkey - Game DevelopmentWakka Monkey - Game Development
Wakka Monkey - Game DevelopmentWakka Monkey
 

Similar to Initial design (Game Architecture) (20)

1-Introduction (Game Design and Development)
1-Introduction (Game Design and Development)1-Introduction (Game Design and Development)
1-Introduction (Game Design and Development)
 
98 374 Lesson 02-slides
98 374 Lesson 02-slides98 374 Lesson 02-slides
98 374 Lesson 02-slides
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminology
 
Supersize Your Production Pipe
Supersize Your Production PipeSupersize Your Production Pipe
Supersize Your Production Pipe
 
Supersize your production pipe enjmin 2013 v1.1 hd
Supersize your production pipe    enjmin 2013 v1.1 hdSupersize your production pipe    enjmin 2013 v1.1 hd
Supersize your production pipe enjmin 2013 v1.1 hd
 
Designing a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile gamesDesigning a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile games
 
98 374 Lesson 04-slides
98 374 Lesson 04-slides98 374 Lesson 04-slides
98 374 Lesson 04-slides
 
Sephy engine development document
Sephy engine development documentSephy engine development document
Sephy engine development document
 
98 374 Lesson 03-slides
98 374 Lesson 03-slides98 374 Lesson 03-slides
98 374 Lesson 03-slides
 
De Re PlayStation Vita
De Re PlayStation VitaDe Re PlayStation Vita
De Re PlayStation Vita
 
Engine terminology
Engine terminologyEngine terminology
Engine terminology
 
Y1 gd engine_terminologY
Y1 gd engine_terminologYY1 gd engine_terminologY
Y1 gd engine_terminologY
 
Chapt 1 (part 2) installing the sdk and exploring the workspace
Chapt 1 (part 2)   installing the sdk and exploring the workspaceChapt 1 (part 2)   installing the sdk and exploring the workspace
Chapt 1 (part 2) installing the sdk and exploring the workspace
 
Threading Game Engines: QUAKE 4 & Enemy Territory QUAKE Wars
Threading Game Engines: QUAKE 4 & Enemy Territory QUAKE WarsThreading Game Engines: QUAKE 4 & Enemy Territory QUAKE Wars
Threading Game Engines: QUAKE 4 & Enemy Territory QUAKE Wars
 
Programming
ProgrammingProgramming
Programming
 
engine_terminology 2
engine_terminology 2engine_terminology 2
engine_terminology 2
 
Engine Terminology 1
Engine Terminology 1Engine Terminology 1
Engine Terminology 1
 
Unreal Engine Basics 01 - Game Framework
Unreal Engine Basics 01 - Game FrameworkUnreal Engine Basics 01 - Game Framework
Unreal Engine Basics 01 - Game Framework
 
Engine Terminology
Engine Terminology Engine Terminology
Engine Terminology
 
Wakka Monkey - Game Development
Wakka Monkey - Game DevelopmentWakka Monkey - Game Development
Wakka Monkey - Game Development
 

Recently uploaded

Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxGrade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxkarenfajardo43
 
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...DhatriParmar
 
4.9.24 Social Capital and Social Exclusion.pptx
4.9.24 Social Capital and Social Exclusion.pptx4.9.24 Social Capital and Social Exclusion.pptx
4.9.24 Social Capital and Social Exclusion.pptxmary850239
 
4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptxmary850239
 
DBMSArchitecture_QueryProcessingandOptimization.pdf
DBMSArchitecture_QueryProcessingandOptimization.pdfDBMSArchitecture_QueryProcessingandOptimization.pdf
DBMSArchitecture_QueryProcessingandOptimization.pdfChristalin Nelson
 
Congestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentationCongestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentationdeepaannamalai16
 
PART 1 - CHAPTER 1 - CELL THE FUNDAMENTAL UNIT OF LIFE
PART 1 - CHAPTER 1 - CELL THE FUNDAMENTAL UNIT OF LIFEPART 1 - CHAPTER 1 - CELL THE FUNDAMENTAL UNIT OF LIFE
PART 1 - CHAPTER 1 - CELL THE FUNDAMENTAL UNIT OF LIFEMISSRITIMABIOLOGYEXP
 
Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...
Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...
Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...Osopher
 
31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...
31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...
31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...Nguyen Thanh Tu Collection
 
Narcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfNarcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfPrerana Jadhav
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 11 THEO ĐƠN VỊ BÀI HỌC - CẢ NĂM - CÓ FILE NGHE (GLOB...
BÀI TẬP BỔ TRỢ TIẾNG ANH 11 THEO ĐƠN VỊ BÀI HỌC - CẢ NĂM - CÓ FILE NGHE (GLOB...BÀI TẬP BỔ TRỢ TIẾNG ANH 11 THEO ĐƠN VỊ BÀI HỌC - CẢ NĂM - CÓ FILE NGHE (GLOB...
BÀI TẬP BỔ TRỢ TIẾNG ANH 11 THEO ĐƠN VỊ BÀI HỌC - CẢ NĂM - CÓ FILE NGHE (GLOB...Nguyen Thanh Tu Collection
 
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Association for Project Management
 
CLASSIFICATION OF ANTI - CANCER DRUGS.pptx
CLASSIFICATION OF ANTI - CANCER DRUGS.pptxCLASSIFICATION OF ANTI - CANCER DRUGS.pptx
CLASSIFICATION OF ANTI - CANCER DRUGS.pptxAnupam32727
 
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxBIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxSayali Powar
 
DiskStorage_BasicFileStructuresandHashing.pdf
DiskStorage_BasicFileStructuresandHashing.pdfDiskStorage_BasicFileStructuresandHashing.pdf
DiskStorage_BasicFileStructuresandHashing.pdfChristalin Nelson
 
Objectives n learning outcoms - MD 20240404.pptx
Objectives n learning outcoms - MD 20240404.pptxObjectives n learning outcoms - MD 20240404.pptx
Objectives n learning outcoms - MD 20240404.pptxMadhavi Dharankar
 

Recently uploaded (20)

Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxGrade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
 
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
 
Introduction to Research ,Need for research, Need for design of Experiments, ...
Introduction to Research ,Need for research, Need for design of Experiments, ...Introduction to Research ,Need for research, Need for design of Experiments, ...
Introduction to Research ,Need for research, Need for design of Experiments, ...
 
4.9.24 Social Capital and Social Exclusion.pptx
4.9.24 Social Capital and Social Exclusion.pptx4.9.24 Social Capital and Social Exclusion.pptx
4.9.24 Social Capital and Social Exclusion.pptx
 
4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx
 
DBMSArchitecture_QueryProcessingandOptimization.pdf
DBMSArchitecture_QueryProcessingandOptimization.pdfDBMSArchitecture_QueryProcessingandOptimization.pdf
DBMSArchitecture_QueryProcessingandOptimization.pdf
 
Congestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentationCongestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentation
 
PART 1 - CHAPTER 1 - CELL THE FUNDAMENTAL UNIT OF LIFE
PART 1 - CHAPTER 1 - CELL THE FUNDAMENTAL UNIT OF LIFEPART 1 - CHAPTER 1 - CELL THE FUNDAMENTAL UNIT OF LIFE
PART 1 - CHAPTER 1 - CELL THE FUNDAMENTAL UNIT OF LIFE
 
prashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Professionprashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Profession
 
Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...
Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...
Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...
 
31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...
31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...
31 ĐỀ THI THỬ VÀO LỚP 10 - TIẾNG ANH - FORM MỚI 2025 - 40 CÂU HỎI - BÙI VĂN V...
 
Narcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfNarcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdf
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 11 THEO ĐƠN VỊ BÀI HỌC - CẢ NĂM - CÓ FILE NGHE (GLOB...
BÀI TẬP BỔ TRỢ TIẾNG ANH 11 THEO ĐƠN VỊ BÀI HỌC - CẢ NĂM - CÓ FILE NGHE (GLOB...BÀI TẬP BỔ TRỢ TIẾNG ANH 11 THEO ĐƠN VỊ BÀI HỌC - CẢ NĂM - CÓ FILE NGHE (GLOB...
BÀI TẬP BỔ TRỢ TIẾNG ANH 11 THEO ĐƠN VỊ BÀI HỌC - CẢ NĂM - CÓ FILE NGHE (GLOB...
 
CARNAVAL COM MAGIA E EUFORIA _
CARNAVAL COM MAGIA E EUFORIA            _CARNAVAL COM MAGIA E EUFORIA            _
CARNAVAL COM MAGIA E EUFORIA _
 
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
 
CLASSIFICATION OF ANTI - CANCER DRUGS.pptx
CLASSIFICATION OF ANTI - CANCER DRUGS.pptxCLASSIFICATION OF ANTI - CANCER DRUGS.pptx
CLASSIFICATION OF ANTI - CANCER DRUGS.pptx
 
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxBIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
 
Mattingly "AI & Prompt Design" - Introduction to Machine Learning"
Mattingly "AI & Prompt Design" - Introduction to Machine Learning"Mattingly "AI & Prompt Design" - Introduction to Machine Learning"
Mattingly "AI & Prompt Design" - Introduction to Machine Learning"
 
DiskStorage_BasicFileStructuresandHashing.pdf
DiskStorage_BasicFileStructuresandHashing.pdfDiskStorage_BasicFileStructuresandHashing.pdf
DiskStorage_BasicFileStructuresandHashing.pdf
 
Objectives n learning outcoms - MD 20240404.pptx
Objectives n learning outcoms - MD 20240404.pptxObjectives n learning outcoms - MD 20240404.pptx
Objectives n learning outcoms - MD 20240404.pptx
 

Initial design (Game Architecture)

  • 2. Introduction • Software Architecture in general uses certain rules, heuristics and patterns: – 1. the problem is partitioned – 2. interfaces created between these partitions – 3.Overall structure is managed and the flow is made easy – 4.Techniques are used to interface the system to its environment – 5. development and delivery approaches, techniques and tools can be properly planned and executed
  • 3. • Architecture is important because of following reasons: – It controls complexity – It ensures best practices are followed – It takes care of consistency and uniformity – It increases predictability – It allows reuse
  • 4. • 2.1.1Need for a good architecture design – Advantage • It describe and plan for the expected gameplay features • It gives us a rational framework within which we can make any required changed – If we do not have a design, we may find ourselves frantically changing gameplay the day before shipping which is never a good idea – An iterative or tier-based design represented in the architecture design is more vital for any product that has to incorporate new or untired feature – Game design has to satisfy many stakeholder, such as high level management, marketing department and peers of the game designer – The technical design acts as a roadmap and also increases project visibility to generate an overall idea of how to work with project plan.
  • 5. 2.2 Game and hardware abstraction The architecture has to deal with both game abstraction and hardware abstraction interface 2.2.1 Game Abstraction • Abstraction emphasizes on the idea and properties rather than how it works. • It greatly reduces the complexity in large programs by hiding the irrelevant details. • The game abstraction is the way by which the game object interact.
  • 6. 2.2.2 Hardware Abstraction – For every platform of different hardware configuration with different graphics cards, sound card, etc. – These codes have to be written and linked through the common interface – Hardware abstraction interface will act as an interface between application and the hardware
  • 7. • Graphics hardware abstraction 1. DirectX is a set of application programming interface(APIs) that will call the appropriate driver in the hardware and also handle all multimedia tasks. – A graphical surface in DirectX can be created in either system(local) memory or video memory. 2. OpenGL which provides extensive cross-platform graphics library. – Example screen-handling library can support a common range of resolutions, double or triple buffering, bitmapped and True Type fonts, and sprites.
  • 8. Sound hardware abstraction – Similar to graphics object, we have sound object – The sound card object is a single object accessed through an initialization function – The member functions of the sound card object are: playing, pausing, and stopping: changing volume and frequency ; and specifying the position of the sound in three- dimensional space. – No duplicate sound is made, and any new objects created refer to original data
  • 9. • COTS – It reduces the burden on programmers – All the basic functionality- the sound system, graphics engine, music, saving of game, AI, artwork, etc. are avsailable as componet off the shelf(COTS).
  • 10. 2.3 The Problem Domain  Game design transferred to technical specification that the game developer will understand to code, enhance, debug and maintain.  Choose best design among many altenatives 1. Simple feature: 2. Iteration for good result: 3. Simple runtime code: 4. Data-driven code: 5. Hard to debug data-driven engines: 6. Game engines and graphics system:
  • 11. • Tiers of game Architecture – There are four tier of game architecture 1. Input-Output devices: o large amount of data from i/o devices generated. i.e. screaming 2. Device APIs: o data scream generated needs to processed by one or more engines, like graphics engine, i/p manager, sound engine,etc. 3. Main: o CPU processing time is mostly spent on marshalling the processed data from the game engines and performing general purpose logic. o Smaller portion of the frame are used, as they are mostly devoted to physics, animation or graphics. 4. Data: o Data has been processed by various engines, marshaled by CPU and incorporated with distinguishing features by API and gameplay code o It has to be streamed out to the video display console for creating colorful graphics and giving a visual appeal. This process called as write streaming or rendering. o
  • 12. Input-Output Devices -Keyboard -Joystick -Mouse -Monitor or display unit Figure: Four tier of game architecture Device APIs -Graphics engine - Input manager -Sound engine Main - Physics - Game -AI Data -User data - Game world data
  • 13. • 2.4.1 Use of good middleware – APIs used for physics, audio, animation, facial animation, network transport and various other systems. – Middleware vendors can keep the cost lower than the developers themselves making the same code. – Vendors can afford to keep larger, more experienced teams working on a given piece of functionality as compared to independent game developers because the vendors can sell the piece of code to many developers – Middleware offers structure – There is a trade off here. When we use a middleware, we need to accept that technology’s inflexibility, and modify our game design to suit it – It is stable and has a well documented and stable public API – Once the game is finished, we can decide on what packages to keep and what to replace as we move forward
  • 14. 2.5 Tokenization – Tokens are discrete elements that are directly or indirectly controlled and manipulated by the player – All the games can be describe in terms of players and tokens. – Tokens are conceptual objects which will translated into programming language objects. – These might include a player’s avatar, weapons, cards, counters, metal figures , poker chips and letters of the alphabet. – These tokens can be arranged in a form of hierarchy with the game world at its top. – Every token has to be part of the game world token.] – Example: the player’s avatar token acts as a user interface between the player and the game.
  • 15. 2.5.1 Tokenization of Pong o Pong is earliest 2D graphics video game released by a firm named Atari Incorporated in 1972. o score of both players shown in the top of the screen o Pong has visible elements such as bat, ball, wall and goal. o Token are arranged in hierarchical structure (class diagram).
  • 16. Bat Ball Wall Goal Score Bat X - - - - Ball Defection X - - - Wall Stop Defection X - - Goal X Triggers goal event X X X Score X X X Goal Score X X: denotes that the interaction is not considered in the game of pong -: denotes symmetric interaction Fig: Token-interaction matrix
  • 17. 1. Symmetric interaction:  If interaction is same in both the ways.  Ex: bat-ball, ball-bat 2. Asymmetric Interaction:  This interaction depends on the direction  Ex: the goal increments the score by 1, whereas the score increment need not be caused by the goal.
  • 18. Fig: Sequence of events that occur when a goal is scored Collision event (ball- goal area) Goal event Game-world token Reset (bat, ball) event Continue play Score event End of game
  • 19. • Token interaction matrix also comes in handy when deciding the object oriented architecture. • We need to decide which of the features would be considered in the interaction. • We plan to add graphics, then CGameWorld, class will as a container.
  • 20. 2.5.2 State transition and properties  Token will not instantaneously change from one state to another  It takes some time and follows the transformation process.  i.e. it takes a finite amount of time to reach a transitional state.  Mostly token responds to only one event at a time  Handling collision event: to sum the collision vectors to produce a net result  For above result, one has to keep a track of all collision members  Change in a design and add more tokens  This shows architecture is not well structured
  • 21. • The architecture should be flexible enough to add or remove tokens. • Maintainability and expandability are the main goals of design • Adding a new token should create minimal changes to the code (hard architecture) and majority of changes have to be added in the data the drives the game (soft architecture) • architecture encompasses the structure (component and their interactions) and the data flow • Analysis various problems system architect develop architectural model • Architectural design breaks the game into subsystems which are built in stages
  • 22. • “Hard” and “soft” architecture – Hard-> horizontal solution • It is a architectural model in which subsystems interface with the computer hardware and the player (i/p & o/p interface) • It uses standard API’s such as DirectX, SDL, OpenGL and so remains almost static – Soft-> vertical solution • It actually makes a game • It is domain specific and is generally not reusable between game projects • As we progress a game, the code becomes less generic and more specific • Eg. Level-loading games , it was required to virtually load the soft architecture of the entire level and configure it at runtime
  • 23. • How to solve a the problem with soft architecture – Best way is assume a token has a set of properties that are passed on along with the event – When the collision event occurs, all the properties of the token that are involved in the collision are stored in the net collision event. – This effectively frees us from the dependencies on the collision objects – Initially, we think all possible properties, but when design stabilizes we can remove the unused properties – Designing an extensive set of events, states, properties and transitions can reduce the token interaction dependencies – So we can creates a more structured architecture
  • 24. 2.5.3 Best practices and points to remember – The enterprise applications do not prepare one for programming game – Because games are such specialized applications, the it is nearly impossible to give any one method for all – One model is best for one and useless for other, it is very difficult to suggest a common model that works perfectly well for all – Also theirs is no such things as an “industry standard” defined for the texture, mesh, level, sound or animation formats – Each programmer just put his/her idea or uses whatever is convenient for the platform. – Following things must be kept in mind by programmer while development 1. Use simple formats that you are familiar with. Do not worry about how they would work in larger projects. Use free fonts. 2. Do not worry about plug-ins, editors etc 3. When the first working model is ready, consider other elements, and then iterate