SlideShare a Scribd company logo
Development
6.1 Introduction
– Comparing to other phases development phase is
very small in whole development process
– Coding phase is very important
– Important aspect of game development is its
creativity
– Creativity should be applied on proper place
6.2 The development process
• In earlier days, game projects were very small and a
single programmer or small team was developing
game
• Nowadays with a power and capabilities of game
platforms, large teams had to work for the game
project
• Code developed by all members must be of high
quality and some coding standard need to be followed
• Game engines are divided into a number of distinct
types
• For a good quality code, a number of general
techniques are applied from code inception to system
integration
6.3 code quality
• With a large team, there is every possibility for members
to different coding styles
• This would affect quality of coding and its maintenance
• To ensure that coding style should be uniform
6.3.1 follow coding standard
• As a part of team, the code has to be understood
by every member
• This mandates use of standards
• The software factory model suggest the use of
code across various projects
Comments and documentation
• A comment should make the reader understand how
the code does its task rather than what it does
• Comment are made to explain what the statement of
code will have on the rest of the object
• Commenting can help preventing bugs and promote
code understanding
• Good commenting reduces the error in the code and
speeds up the code review process
• “Work in progress” in the code shown with comments
“TODO”
Naming and coding conventions
• These conventions are for two main areas:
1. Files and directory structures
2. Classes, functions and variables
– A sensible naming practice makes the purpose of
variable and functions easier to understand
– Example: bSuccess_ is a reference to the Boolean
variable
– Trailing underscore in bSuccess_ indicates that it
denotes the return value and differentiate it from
the local variable
• In C++, a class has all members private by default and a structure is a
class that has all members public
• The class naming conventions are as follows:
– Class name has a name prefix C ex. Cball
– Interface name has a name prefix I ex. Idrawable
– Structure name has a name prefix S ex. Sconfig
• The prefixes to variable scope indicates are as follows:
– Global variable ex. g_uiRefCount
– Class member ex. m_uiRefCount
– Static variable ex. s_uiRefCount
– Constant ex. c_uiInitialCount
– Enumeration ex. eStateOk
– Static member ex. ms_uiRefCount
• The prefixes to variable type indicates are as follows:
– Signed Integer i or n
– unsigned integer ui
– Signed short s
– Signed char ch
– Array a
– Pointer p
6.4 Coding priorities
• Coding priorities have to be established as a part
of technical design
• The various aspect of game to be considered are
speed, size, flexibility, portability and
maintainability
1. Speed
2. Size
3. Flexibility
4. Portability
5. Maintainability
6.5 Debugging and module completion
1. Class A
• These bugs are the most severe bugs
• These can occur during installation or crashing the game at the
beginning of the first level
2. Class B
• These bugs may not crash the game but affect the quality
• Example: failure of an event such as the gun may not fire when
used
3. Class C
• These bugs are minor bugs and can be fixed without much of
problem
• These are called cosmetic bugs
• These could be spelling mistakes or user interface glitches
• Priorities assigned according to the higher level severity
a. Logical errors
b. Programming errors
c. Data errors
• Out of the three types of errors mentioned above, programming or
code errors easiest to detect
• Instead of testing for each of the other type of errors a generic test
harness is done
6.5.1 Test harness
– Install and run the module under test in a test environment, with input
data in the expected input format
– Generate stubs to emulate the behavior of subroutine modules;
– Capture the actual outcome as generated by the unit under test and
log or display it in a usable form
– Compare the expected outcome with the actual outcome and log a
test verdict for each input test
– Tester is allowed to use all possible options in the user interface for
this
– Test harness application is integrated with the source control system
to log test results and log results are used for audit purpose
– This can also be used for regression testing, as old result can be
compared with new result to check any bugs that have been
introduced into previous working modules
– Testing harness could also be scripted, so that it can automatically run
a whole series of tests
6.6 The seven golden principles of effective design
6.6.1 Reuse
• In game development, code, design patterns are reused
• Software architecture, non functional requirement (speed, flexibility,
portability, etc.) can also be reused
• Mostly common reused classes are foundation classes
• Developer have to used all plug-ins in the early stages of the
development to make quick build+
• This enables the modules to act as black box allowing the internal
changes without affecting the rest of the system
6.6.2 Document
• Documentation is imp for overall success of software development
6.6.3 Design first before implementation
• Game design is an ongoing process
• It starts with an idea; a vision that often develops into a
concept
6.6.4 Schedule tasks
• It is difficult to go with a schedule because of many
reasons
• Non-essential tasks are identified and cut down
• A realistic schedule has to be developed with the available
resources; the various resources are as follows:
• List of reusable components
• List of tools and utilities
• People (game designer, programmers, artists, sound engineers,
internal support team)
• Hardware / software resources
6.6.5 Fix errors early
– The cost of repairing the errors are manifold, if found late then these
are fixed early
– Also the errors propagate if they are not fixed early
– Some useful tips for fixing errors are as follows:
1. Always fix the error first; often this one can correct most of the others
2. Save the file once the error is fixed, and for each change compile and
run again
3. Testing (verification of specifications) should start in the pre-
production stage itself
4. Testing should be done as often as possible by developer in
production stage before delivery
6.6.6 Control the degree of R&D
– To control the degree of research by game developers on latest
technology
– Hardware and game consoles also improve at good speed
– Since developers work on tight schedules, they will have very little time
to try out untested technologies
– For a sequel new technology can be tried
– It is advisable to have backup plan in case new technology has to be
tried/used
6.6.7 Focus on right areas for right amount of
time
– In a structured development methodology, project
review happen at specific, high impact points
involving top management
– If the development process is inefficient and slow,
products are often late-to-market over cost and
not well aligned with user needs
6.7 Five important aspects in game development
1. People
– Talented, experienced and motivated people deliver any kind
of management
– They will find right way around processes or structure where
there is disorder
2. Production Vs creativity
– Production pressure from the business is the need to deliver a
product on time and within the budget
– For this we need to be able to quantify the work and risks by
planning and rescheduling
– Creativity is the heart and soul of game development and
drives us to create better games
– It is a process of curiosity and exploration
– There are no guaranteed outcomes or fixed timeframes and
this is not acceptable from production perspective
– We need to find a way to balance both with the clear
objectives and within the boundaries of each project
3. Phases of production
1. Preproduction
• It is the most creative period of any game, where it is
decided what the game is and how to make it
• The initial stage of preproduction is exploratory and later
technology specifics have to be given for production
2. Production
• It is the period in which the game is being developed
• This is process driven and so more controlled
3. Postproduction
• It is a period in which the finished game is made into a
shippable product
• This is done in two stages: Alpha(making the gameplay fun
and balanced, therefore iterative) and beta(fixing the bug,
is process driven)
4. Skill sets
– Skill set involved in the game development are code, art and design
– Artwork is more of a deterministic discipline
– Work can be split into independent modules, hence adding more
people can complete the job faster
– This estimates can not be very accurate in case of code and design
– Because they need to respond to change requests more often, fix
bugs or deal with hidden complexity
– Hence the job con not finish faster by adding more people
5. Clients
– In games, the stakeholder is an external producer who acts as a
spokesperson for interested parties on the publishers side
– Understanding the external forces is vital for planning the strategy
and management style
– A few things that contribute to the environment in which the project
must survive are as follow-how much trust and freedom will EP
extend
6.8 The three lead balloons
1. Bad Management
– Instead of finding ways to manage people, it is better to build a
process into the team so that imposed management becomes
unnecessary
– The process should promote best practices and conceptual
integrity
– Bad management can affect the process in the following manner:
• Increase the cost and reduce the performance through bureaucratic
overhead
• Hamper the ability of the team to change or adapt to new situation
• Suppress the team’s capacity for innovation and creativity
– Good management allows flexibility, identifies what is important
– Handle the situation carefully
– Every game, every team, every company is unique
– The factor that can affect a project are the size of the team,
corporate culture, internal politics, budget limitations, physical
constraint, etc
2. Rapidly expanding features
– Give extra features that what is planned(beyond
scope) probably to increase popularity and thus sale
– The best way to manage this situation is to priorities
features and keep up the schedule
– Dos and don’ts are as follows:
• Do not write system critical code towards the end
• Represent project progress as a “% complete” of total work
• Give the schedule for lower granularity tasks for accuracy in
estimates
• In each working build, mark features that will work (enable)
and that would not be (disable) work
• Map list of classes to concepts
• Added features can be released as different versions
• Do not add any major feature after first iteration
• Defer lower priority tasks until more than 50% of the project
is complete
3. Coder never open up
– Games are creative processes that involved
interaction among multitalented people such as
coders, designers, artists and writers
– Coders are generally loners, self taught people unlike
artists who generally respect each other’s work and
work very well as a team
– If a coders has insecure feeling and does not open
up, then it will become difficult for others to work
with him/her
– Constant motivation and encouragement can boost
up their moral
– Incentives are awarded for sharing resources,
mentoring, etc to make coders work environment
comfortable

More Related Content

What's hot

Game optimization techniques - Most Commons
Game optimization techniques - Most CommonsGame optimization techniques - Most Commons
Game optimization techniques - Most Commons
niraj vishwakarma
 
06. Game Architecture
06. Game Architecture06. Game Architecture
06. Game Architecture
Amin Babadi
 
Game development
Game developmentGame development
Game development
reittes
 
Android Application And Unity3D Game Documentation
Android Application And Unity3D Game DocumentationAndroid Application And Unity3D Game Documentation
Android Application And Unity3D Game Documentation
Sneh Raval
 
Game dev process
Game dev processGame dev process
Game dev process
Yassine Arif
 
Improving of software processes
Improving of software processesImproving of software processes
Improving of software processes
REHMAT ULLAH
 
Project control and process instrumentation
Project control and process instrumentationProject control and process instrumentation
Project control and process instrumentation
Kuppusamy P
 
Game Design Process
Game Design ProcessGame Design Process
Game Design Process
Martin Sillaots
 
Game development life cycle
Game development life cycleGame development life cycle
Game development life cycle
Sarah Alazab
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
Atul Karmyal
 
Game project Final presentation
Game project Final presentationGame project Final presentation
Game project Final presentation
gemmalunney
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
pearlcatcharro
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process Framework
JAINAM KAPADIYA
 
Software project management Improving Team Effectiveness
Software project management Improving Team EffectivenessSoftware project management Improving Team Effectiveness
Software project management Improving Team Effectiveness
REHMAT ULLAH
 
Software Development Life Cycle Model
Software Development Life Cycle ModelSoftware Development Life Cycle Model
Software Development Life Cycle Model
J.T.A.JONES
 
Artifacts
ArtifactsArtifacts
Artifacts
Mayuresh Wadekar
 
Software metrics
Software metricsSoftware metrics
Software metrics
syeda madeha azmat
 
PRESENTATION ON Game Engine
PRESENTATION ON Game EnginePRESENTATION ON Game Engine
PRESENTATION ON Game Engine
Diksha Bhargava
 
Introduction to Game Development
Introduction to Game DevelopmentIntroduction to Game Development
Introduction to Game Development
Shaan Alam
 
Software requirements
Software requirementsSoftware requirements
Software requirements
Dr. Loganathan R
 

What's hot (20)

Game optimization techniques - Most Commons
Game optimization techniques - Most CommonsGame optimization techniques - Most Commons
Game optimization techniques - Most Commons
 
06. Game Architecture
06. Game Architecture06. Game Architecture
06. Game Architecture
 
Game development
Game developmentGame development
Game development
 
Android Application And Unity3D Game Documentation
Android Application And Unity3D Game DocumentationAndroid Application And Unity3D Game Documentation
Android Application And Unity3D Game Documentation
 
Game dev process
Game dev processGame dev process
Game dev process
 
Improving of software processes
Improving of software processesImproving of software processes
Improving of software processes
 
Project control and process instrumentation
Project control and process instrumentationProject control and process instrumentation
Project control and process instrumentation
 
Game Design Process
Game Design ProcessGame Design Process
Game Design Process
 
Game development life cycle
Game development life cycleGame development life cycle
Game development life cycle
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Game project Final presentation
Game project Final presentationGame project Final presentation
Game project Final presentation
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process Framework
 
Software project management Improving Team Effectiveness
Software project management Improving Team EffectivenessSoftware project management Improving Team Effectiveness
Software project management Improving Team Effectiveness
 
Software Development Life Cycle Model
Software Development Life Cycle ModelSoftware Development Life Cycle Model
Software Development Life Cycle Model
 
Artifacts
ArtifactsArtifacts
Artifacts
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
PRESENTATION ON Game Engine
PRESENTATION ON Game EnginePRESENTATION ON Game Engine
PRESENTATION ON Game Engine
 
Introduction to Game Development
Introduction to Game DevelopmentIntroduction to Game Development
Introduction to Game Development
 
Software requirements
Software requirementsSoftware requirements
Software requirements
 

Viewers also liked

What is direct X ?
What is direct X ?What is direct X ?
What is direct X ?
Mukul Kumar
 
An Introduction To Game development
An Introduction To Game developmentAn Introduction To Game development
An Introduction To Game development
Ahmed
 
Understanding casual games
Understanding casual gamesUnderstanding casual games
Understanding casual games
Dori Adar
 
Introduction to Mobile Game Programming with Cocos2d-JS
Introduction to Mobile Game Programming with Cocos2d-JSIntroduction to Mobile Game Programming with Cocos2d-JS
Introduction to Mobile Game Programming with Cocos2d-JS
Troy Miles
 
Architektura współczesnych gier video
Architektura współczesnych gier videoArchitektura współczesnych gier video
Architektura współczesnych gier videoAdam Sawicki
 
Infomration & network security
Infomration & network securityInfomration & network security
Infomration & network security
Rajkumar Pawar
 
Software testing vs. Game testing
Software testing vs. Game testingSoftware testing vs. Game testing
Software testing vs. Game testing
Johan Hoberg
 
Mobile games
Mobile gamesMobile games
Mobile games
Thomas Grill
 
[Ubisoft] Perforce Integration in a AAA Game Engine
[Ubisoft] Perforce Integration in a AAA Game Engine[Ubisoft] Perforce Integration in a AAA Game Engine
[Ubisoft] Perforce Integration in a AAA Game Engine
Perforce
 
Game Engine Architecture
Game Engine ArchitectureGame Engine Architecture
Game Engine Architecture
Attila Jenei
 
Introduction to Game Development
Introduction to Game DevelopmentIntroduction to Game Development
Introduction to Game Development
Reggie Niccolo Santos
 

Viewers also liked (11)

What is direct X ?
What is direct X ?What is direct X ?
What is direct X ?
 
An Introduction To Game development
An Introduction To Game developmentAn Introduction To Game development
An Introduction To Game development
 
Understanding casual games
Understanding casual gamesUnderstanding casual games
Understanding casual games
 
Introduction to Mobile Game Programming with Cocos2d-JS
Introduction to Mobile Game Programming with Cocos2d-JSIntroduction to Mobile Game Programming with Cocos2d-JS
Introduction to Mobile Game Programming with Cocos2d-JS
 
Architektura współczesnych gier video
Architektura współczesnych gier videoArchitektura współczesnych gier video
Architektura współczesnych gier video
 
Infomration & network security
Infomration & network securityInfomration & network security
Infomration & network security
 
Software testing vs. Game testing
Software testing vs. Game testingSoftware testing vs. Game testing
Software testing vs. Game testing
 
Mobile games
Mobile gamesMobile games
Mobile games
 
[Ubisoft] Perforce Integration in a AAA Game Engine
[Ubisoft] Perforce Integration in a AAA Game Engine[Ubisoft] Perforce Integration in a AAA Game Engine
[Ubisoft] Perforce Integration in a AAA Game Engine
 
Game Engine Architecture
Game Engine ArchitectureGame Engine Architecture
Game Engine Architecture
 
Introduction to Game Development
Introduction to Game DevelopmentIntroduction to Game Development
Introduction to Game Development
 

Similar to Game development (Game Architecture)

Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptx
Amna Ch
 
Software process models
Software process modelsSoftware process models
Software process models
Malik WaQas
 
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnzLecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
AhmadSajjad34
 
How Microsoft ALM Tools Can Improve Your Bottom Line
How Microsoft ALM Tools Can Improve Your Bottom LineHow Microsoft ALM Tools Can Improve Your Bottom Line
How Microsoft ALM Tools Can Improve Your Bottom Line
Imaginet
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
Saqib Raza
 
HOW TO PHYSICALLY DESIGN A COMPUTER BASED INFORMATION SYSTEM
HOW TO PHYSICALLY DESIGN A COMPUTER BASED INFORMATION SYSTEMHOW TO PHYSICALLY DESIGN A COMPUTER BASED INFORMATION SYSTEM
HOW TO PHYSICALLY DESIGN A COMPUTER BASED INFORMATION SYSTEM
RebekahSamuel2
 
Se 381 - lec 28 -- 34 - 12 jun12 - testing 1 of 2
Se 381 -  lec 28 -- 34 - 12 jun12 - testing 1 of 2Se 381 -  lec 28 -- 34 - 12 jun12 - testing 1 of 2
Se 381 - lec 28 -- 34 - 12 jun12 - testing 1 of 2
babak danyal
 
Expert Systems: Principles and Programming, Fourth Edition
Expert Systems: Principles and Programming, Fourth EditionExpert Systems: Principles and Programming, Fourth Edition
Expert Systems: Principles and Programming, Fourth Edition
mercyzyada1999
 
Week 4- Software Process models (Cont..).pptx
Week 4- Software Process models (Cont..).pptxWeek 4- Software Process models (Cont..).pptx
Week 4- Software Process models (Cont..).pptx
syedusama54
 
Software Engineering : Process Models
Software Engineering : Process ModelsSoftware Engineering : Process Models
Software Engineering : Process Models
Ajit Nayak
 
Chapter 2 Time boxing & agile models
Chapter 2   Time boxing & agile modelsChapter 2   Time boxing & agile models
Chapter 2 Time boxing & agile models
Golda Margret Sheeba J
 
Sadchap04
Sadchap04Sadchap04
Proj Mgmt.ppt
Proj Mgmt.pptProj Mgmt.ppt
Proj Mgmt.ppt
NikhilDudka
 
Software Development
Software DevelopmentSoftware Development
Software Development
Basil Bibi
 
agility_principles.ppt
agility_principles.pptagility_principles.ppt
agility_principles.ppt
AteeqaKokab1
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
Rody Middelkoop
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process Models
Ahsan Rahim
 
"X" Driven-Development Methodologies
"X" Driven-Development Methodologies"X" Driven-Development Methodologies
"X" Driven-Development Methodologies
Damian T. Gordon
 
ABC of Agile (Scrum & Extreme Programming)
ABC of Agile (Scrum & Extreme Programming)ABC of Agile (Scrum & Extreme Programming)
ABC of Agile (Scrum & Extreme Programming)
Amardeep Vishwakarma
 
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING  SOFTWARE ENGINEERING
SOFTWARE ENGINEERING
Gaditek
 

Similar to Game development (Game Architecture) (20)

Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptx
 
Software process models
Software process modelsSoftware process models
Software process models
 
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnzLecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
 
How Microsoft ALM Tools Can Improve Your Bottom Line
How Microsoft ALM Tools Can Improve Your Bottom LineHow Microsoft ALM Tools Can Improve Your Bottom Line
How Microsoft ALM Tools Can Improve Your Bottom Line
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
HOW TO PHYSICALLY DESIGN A COMPUTER BASED INFORMATION SYSTEM
HOW TO PHYSICALLY DESIGN A COMPUTER BASED INFORMATION SYSTEMHOW TO PHYSICALLY DESIGN A COMPUTER BASED INFORMATION SYSTEM
HOW TO PHYSICALLY DESIGN A COMPUTER BASED INFORMATION SYSTEM
 
Se 381 - lec 28 -- 34 - 12 jun12 - testing 1 of 2
Se 381 -  lec 28 -- 34 - 12 jun12 - testing 1 of 2Se 381 -  lec 28 -- 34 - 12 jun12 - testing 1 of 2
Se 381 - lec 28 -- 34 - 12 jun12 - testing 1 of 2
 
Expert Systems: Principles and Programming, Fourth Edition
Expert Systems: Principles and Programming, Fourth EditionExpert Systems: Principles and Programming, Fourth Edition
Expert Systems: Principles and Programming, Fourth Edition
 
Week 4- Software Process models (Cont..).pptx
Week 4- Software Process models (Cont..).pptxWeek 4- Software Process models (Cont..).pptx
Week 4- Software Process models (Cont..).pptx
 
Software Engineering : Process Models
Software Engineering : Process ModelsSoftware Engineering : Process Models
Software Engineering : Process Models
 
Chapter 2 Time boxing & agile models
Chapter 2   Time boxing & agile modelsChapter 2   Time boxing & agile models
Chapter 2 Time boxing & agile models
 
Sadchap04
Sadchap04Sadchap04
Sadchap04
 
Proj Mgmt.ppt
Proj Mgmt.pptProj Mgmt.ppt
Proj Mgmt.ppt
 
Software Development
Software DevelopmentSoftware Development
Software Development
 
agility_principles.ppt
agility_principles.pptagility_principles.ppt
agility_principles.ppt
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process Models
 
"X" Driven-Development Methodologies
"X" Driven-Development Methodologies"X" Driven-Development Methodologies
"X" Driven-Development Methodologies
 
ABC of Agile (Scrum & Extreme Programming)
ABC of Agile (Scrum & Extreme Programming)ABC of Agile (Scrum & Extreme Programming)
ABC of Agile (Scrum & Extreme Programming)
 
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING  SOFTWARE ENGINEERING
SOFTWARE ENGINEERING
 

Recently uploaded

Top five deadliest dog breeds in America
Top five deadliest dog breeds in AmericaTop five deadliest dog breeds in America
Top five deadliest dog breeds in America
Bisnar Chase Personal Injury Attorneys
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
camakaiclarkmusic
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
TechSoup
 
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
National Information Standards Organization (NISO)
 
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
PECB
 
PIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf IslamabadPIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf Islamabad
AyyanKhan40
 
A Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptxA Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptx
thanhdowork
 
MARY JANE WILSON, A “BOA MÃE” .
MARY JANE WILSON, A “BOA MÃE”           .MARY JANE WILSON, A “BOA MÃE”           .
MARY JANE WILSON, A “BOA MÃE” .
Colégio Santa Teresinha
 
DRUGS AND ITS classification slide share
DRUGS AND ITS classification slide shareDRUGS AND ITS classification slide share
DRUGS AND ITS classification slide share
taiba qazi
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
Priyankaranawat4
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
Israel Genealogy Research Association
 
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama UniversityNatural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
Akanksha trivedi rama nursing college kanpur.
 
Digital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental DesignDigital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental Design
amberjdewit93
 
How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
Celine George
 
Hindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdfHindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdf
Dr. Mulla Adam Ali
 
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Dr. Vinod Kumar Kanvaria
 
Types of Herbal Cosmetics its standardization.
Types of Herbal Cosmetics its standardization.Types of Herbal Cosmetics its standardization.
Types of Herbal Cosmetics its standardization.
Ashokrao Mane college of Pharmacy Peth-Vadgaon
 
Assessment and Planning in Educational technology.pptx
Assessment and Planning in Educational technology.pptxAssessment and Planning in Educational technology.pptx
Assessment and Planning in Educational technology.pptx
Kavitha Krishnan
 
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptxChapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
A Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdfA Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdf
Jean Carlos Nunes Paixão
 

Recently uploaded (20)

Top five deadliest dog breeds in America
Top five deadliest dog breeds in AmericaTop five deadliest dog breeds in America
Top five deadliest dog breeds in America
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
 
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
 
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
 
PIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf IslamabadPIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf Islamabad
 
A Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptxA Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptx
 
MARY JANE WILSON, A “BOA MÃE” .
MARY JANE WILSON, A “BOA MÃE”           .MARY JANE WILSON, A “BOA MÃE”           .
MARY JANE WILSON, A “BOA MÃE” .
 
DRUGS AND ITS classification slide share
DRUGS AND ITS classification slide shareDRUGS AND ITS classification slide share
DRUGS AND ITS classification slide share
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
 
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama UniversityNatural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
 
Digital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental DesignDigital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental Design
 
How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
 
Hindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdfHindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdf
 
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
 
Types of Herbal Cosmetics its standardization.
Types of Herbal Cosmetics its standardization.Types of Herbal Cosmetics its standardization.
Types of Herbal Cosmetics its standardization.
 
Assessment and Planning in Educational technology.pptx
Assessment and Planning in Educational technology.pptxAssessment and Planning in Educational technology.pptx
Assessment and Planning in Educational technology.pptx
 
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptxChapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
 
A Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdfA Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdf
 

Game development (Game Architecture)

  • 2. 6.1 Introduction – Comparing to other phases development phase is very small in whole development process – Coding phase is very important – Important aspect of game development is its creativity – Creativity should be applied on proper place
  • 3. 6.2 The development process • In earlier days, game projects were very small and a single programmer or small team was developing game • Nowadays with a power and capabilities of game platforms, large teams had to work for the game project • Code developed by all members must be of high quality and some coding standard need to be followed • Game engines are divided into a number of distinct types • For a good quality code, a number of general techniques are applied from code inception to system integration
  • 4. 6.3 code quality • With a large team, there is every possibility for members to different coding styles • This would affect quality of coding and its maintenance • To ensure that coding style should be uniform 6.3.1 follow coding standard • As a part of team, the code has to be understood by every member • This mandates use of standards • The software factory model suggest the use of code across various projects
  • 5. Comments and documentation • A comment should make the reader understand how the code does its task rather than what it does • Comment are made to explain what the statement of code will have on the rest of the object • Commenting can help preventing bugs and promote code understanding • Good commenting reduces the error in the code and speeds up the code review process • “Work in progress” in the code shown with comments “TODO”
  • 6. Naming and coding conventions • These conventions are for two main areas: 1. Files and directory structures 2. Classes, functions and variables – A sensible naming practice makes the purpose of variable and functions easier to understand – Example: bSuccess_ is a reference to the Boolean variable – Trailing underscore in bSuccess_ indicates that it denotes the return value and differentiate it from the local variable
  • 7. • In C++, a class has all members private by default and a structure is a class that has all members public • The class naming conventions are as follows: – Class name has a name prefix C ex. Cball – Interface name has a name prefix I ex. Idrawable – Structure name has a name prefix S ex. Sconfig • The prefixes to variable scope indicates are as follows: – Global variable ex. g_uiRefCount – Class member ex. m_uiRefCount – Static variable ex. s_uiRefCount – Constant ex. c_uiInitialCount – Enumeration ex. eStateOk – Static member ex. ms_uiRefCount • The prefixes to variable type indicates are as follows: – Signed Integer i or n – unsigned integer ui – Signed short s – Signed char ch – Array a – Pointer p
  • 8. 6.4 Coding priorities • Coding priorities have to be established as a part of technical design • The various aspect of game to be considered are speed, size, flexibility, portability and maintainability 1. Speed 2. Size 3. Flexibility 4. Portability 5. Maintainability
  • 9. 6.5 Debugging and module completion 1. Class A • These bugs are the most severe bugs • These can occur during installation or crashing the game at the beginning of the first level 2. Class B • These bugs may not crash the game but affect the quality • Example: failure of an event such as the gun may not fire when used 3. Class C • These bugs are minor bugs and can be fixed without much of problem • These are called cosmetic bugs • These could be spelling mistakes or user interface glitches • Priorities assigned according to the higher level severity a. Logical errors b. Programming errors c. Data errors
  • 10. • Out of the three types of errors mentioned above, programming or code errors easiest to detect • Instead of testing for each of the other type of errors a generic test harness is done 6.5.1 Test harness – Install and run the module under test in a test environment, with input data in the expected input format – Generate stubs to emulate the behavior of subroutine modules; – Capture the actual outcome as generated by the unit under test and log or display it in a usable form – Compare the expected outcome with the actual outcome and log a test verdict for each input test – Tester is allowed to use all possible options in the user interface for this – Test harness application is integrated with the source control system to log test results and log results are used for audit purpose – This can also be used for regression testing, as old result can be compared with new result to check any bugs that have been introduced into previous working modules – Testing harness could also be scripted, so that it can automatically run a whole series of tests
  • 11. 6.6 The seven golden principles of effective design 6.6.1 Reuse • In game development, code, design patterns are reused • Software architecture, non functional requirement (speed, flexibility, portability, etc.) can also be reused • Mostly common reused classes are foundation classes • Developer have to used all plug-ins in the early stages of the development to make quick build+ • This enables the modules to act as black box allowing the internal changes without affecting the rest of the system 6.6.2 Document • Documentation is imp for overall success of software development
  • 12. 6.6.3 Design first before implementation • Game design is an ongoing process • It starts with an idea; a vision that often develops into a concept 6.6.4 Schedule tasks • It is difficult to go with a schedule because of many reasons • Non-essential tasks are identified and cut down • A realistic schedule has to be developed with the available resources; the various resources are as follows: • List of reusable components • List of tools and utilities • People (game designer, programmers, artists, sound engineers, internal support team) • Hardware / software resources
  • 13. 6.6.5 Fix errors early – The cost of repairing the errors are manifold, if found late then these are fixed early – Also the errors propagate if they are not fixed early – Some useful tips for fixing errors are as follows: 1. Always fix the error first; often this one can correct most of the others 2. Save the file once the error is fixed, and for each change compile and run again 3. Testing (verification of specifications) should start in the pre- production stage itself 4. Testing should be done as often as possible by developer in production stage before delivery 6.6.6 Control the degree of R&D – To control the degree of research by game developers on latest technology – Hardware and game consoles also improve at good speed – Since developers work on tight schedules, they will have very little time to try out untested technologies – For a sequel new technology can be tried – It is advisable to have backup plan in case new technology has to be tried/used
  • 14. 6.6.7 Focus on right areas for right amount of time – In a structured development methodology, project review happen at specific, high impact points involving top management – If the development process is inefficient and slow, products are often late-to-market over cost and not well aligned with user needs
  • 15. 6.7 Five important aspects in game development 1. People – Talented, experienced and motivated people deliver any kind of management – They will find right way around processes or structure where there is disorder 2. Production Vs creativity – Production pressure from the business is the need to deliver a product on time and within the budget – For this we need to be able to quantify the work and risks by planning and rescheduling – Creativity is the heart and soul of game development and drives us to create better games – It is a process of curiosity and exploration – There are no guaranteed outcomes or fixed timeframes and this is not acceptable from production perspective – We need to find a way to balance both with the clear objectives and within the boundaries of each project
  • 16. 3. Phases of production 1. Preproduction • It is the most creative period of any game, where it is decided what the game is and how to make it • The initial stage of preproduction is exploratory and later technology specifics have to be given for production 2. Production • It is the period in which the game is being developed • This is process driven and so more controlled 3. Postproduction • It is a period in which the finished game is made into a shippable product • This is done in two stages: Alpha(making the gameplay fun and balanced, therefore iterative) and beta(fixing the bug, is process driven)
  • 17. 4. Skill sets – Skill set involved in the game development are code, art and design – Artwork is more of a deterministic discipline – Work can be split into independent modules, hence adding more people can complete the job faster – This estimates can not be very accurate in case of code and design – Because they need to respond to change requests more often, fix bugs or deal with hidden complexity – Hence the job con not finish faster by adding more people 5. Clients – In games, the stakeholder is an external producer who acts as a spokesperson for interested parties on the publishers side – Understanding the external forces is vital for planning the strategy and management style – A few things that contribute to the environment in which the project must survive are as follow-how much trust and freedom will EP extend
  • 18. 6.8 The three lead balloons 1. Bad Management – Instead of finding ways to manage people, it is better to build a process into the team so that imposed management becomes unnecessary – The process should promote best practices and conceptual integrity – Bad management can affect the process in the following manner: • Increase the cost and reduce the performance through bureaucratic overhead • Hamper the ability of the team to change or adapt to new situation • Suppress the team’s capacity for innovation and creativity – Good management allows flexibility, identifies what is important – Handle the situation carefully – Every game, every team, every company is unique – The factor that can affect a project are the size of the team, corporate culture, internal politics, budget limitations, physical constraint, etc
  • 19. 2. Rapidly expanding features – Give extra features that what is planned(beyond scope) probably to increase popularity and thus sale – The best way to manage this situation is to priorities features and keep up the schedule – Dos and don’ts are as follows: • Do not write system critical code towards the end • Represent project progress as a “% complete” of total work • Give the schedule for lower granularity tasks for accuracy in estimates • In each working build, mark features that will work (enable) and that would not be (disable) work • Map list of classes to concepts • Added features can be released as different versions • Do not add any major feature after first iteration • Defer lower priority tasks until more than 50% of the project is complete
  • 20. 3. Coder never open up – Games are creative processes that involved interaction among multitalented people such as coders, designers, artists and writers – Coders are generally loners, self taught people unlike artists who generally respect each other’s work and work very well as a team – If a coders has insecure feeling and does not open up, then it will become difficult for others to work with him/her – Constant motivation and encouragement can boost up their moral – Incentives are awarded for sharing resources, mentoring, etc to make coders work environment comfortable