SlideShare a Scribd company logo
1 of 10
Methodologies - Iterative
 Develop for a period of time (1-2 months),
get working game, add features
 Periods can coincide with publisher
milestones
 Allows for some planning
 Time period can have design before
implementation
 Allows for some flexibility
 Can adjust (to new technical challenges or
producer demands)
Based on Chapter 3.1, Introduction to Game Development
Methodologies - Agile
 Admit things will change, avoid looking too
far in the future
 Value simplicity and the ability to change
 Can scale, add new features, adjust
 Relatively new for game development
 Big challenge is hard to convince publishers
Based on Chapter 3.1, Introduction to Game Development
Common Practices – Version Control
 Database containing files and past history
of them
 Central location for all code
 Allows team to work on related files
without overwriting each other’s work
 History preserved to track down errors
 Branching and merging for platform
specific parts
Based on Chapter 3.1, Introduction to Game Development
Common Practices – Quality (1 of 2)
 Code reviews – walk through code by other
programmer(s)
 Formal or informal
 “Two eyes are better than one”
 Value is programmer aware others read
 Asserts
 Force program to crash to help debugging
 Ex: Check condition is true at top of code, say
pointer not NULL before following
 Removed during release
Based on Chapter 3.1, Introduction to Game Development
Common Practices – Quality (2 of 2)
 Unit tests
 Low level test of part of game (Ex: see if physics computations correct)
 Tough to wait until very end and see if bug
 Often automated, computer runs through combinations
 Verify before assembling
 Acceptance tests
 Verify high-level functionality working correctly (Ex: see if levels load
correctly)
 Note, above are programming tests (ie- code, technical). Still turned over to
testers that track bugs, do gameplay testing.
 Bug database
 Document and track bugs
 Can be from programmers, publishers, customers
 Classify by severity
 Keeps bugs from falling through cracks
 Helps see how game is progressing
Based on Chapter 3.1, Introduction to Game Development
Outline
 Teams and Processes (done)
 Select Languages (next)
 Debugging
 Misc (as time allows)
 AI
 Multiplayer
C++ (1 of 3)
 Mid-late 1990’s, C was language of choice
 Since then, C++ language of choice for games
 First commercial release in 1985 (AT&T)
 List pros (+) and cons (-)
 (Take cs2102 OO Design Concepts or cs4233 OOAD)
+ C Heritage
 Learning curve easier
 Compilers wicked fast
+ Performance
 Used to be most important, but less so (but still for core parts)
 Maps closely to hardware (can “guess” what assembly
instructions will be)
 Can not use features to avoid cost, if want (ie- virtual function
have extra step but don’t have to use)
 Memory management controlled by user
Based on Chapter 3.2, Introduction to Game Development
C++ (2 of 3)
+ High-level
 Classes (objects), polymorphism, templates, exceptions
 Especially important as code-bases enlarge
 Strongly-typed (helps reduce errors)
 ex: declare before use, and const
+ Libraries
 C++ middleware readily available
 OpenGL, DirectX, Standard Template Library (containers, like
“vectors”, and algorithms, like “sort”)
Based on Chapter 3.2, Introduction to Game Development
C++ (3 of 3)
- Too Low-level
 Still force programmer to deal with low-level issues
 ex: memory management, pointers
- Too complicated
 Years of expertise required to master (other languages seek to
overcome, like Java and C#)
- Lacking features
 No built-in way to look at object instances
 No built-in way to serialize
 Forces programmer to build such functionality (or learn custom
or 3rd party library)
- Slow iteration
 Brittle, hard to try new things
 Code change can take a looong time as can compile
Based on Chapter 3.2, Introduction to Game Development
C++ (Summary)
 When to use?
 Any code where performance is crucial
 Used to be all, now game engine such as graphics
and AI
 Game-specific code often not C++
 Legacy code base, expertise
 When also use middle-ware libraries in C++
 When not to use?
 Tool building (GUI’s tough)
 High-level game tasks (technical designers)
Based on Chapter 3.2, Introduction to Game Development

More Related Content

Viewers also liked

SynapseIndia dotnet development ajax client library
SynapseIndia dotnet development ajax client librarySynapseIndia dotnet development ajax client library
SynapseIndia dotnet development ajax client librarySynapseindiappsdevelopment
 
Synapse india reviews sharing chapter 23 – asp.net
Synapse india reviews sharing  chapter 23 – asp.netSynapse india reviews sharing  chapter 23 – asp.net
Synapse india reviews sharing chapter 23 – asp.netSynapseindiappsdevelopment
 
Synapse india dotnet framework development or c
Synapse india dotnet framework development or cSynapse india dotnet framework development or c
Synapse india dotnet framework development or cSynapseindiappsdevelopment
 
SynapseIndia drupal presentation on drupal best practices
SynapseIndia drupal  presentation on drupal best practicesSynapseIndia drupal  presentation on drupal best practices
SynapseIndia drupal presentation on drupal best practicesSynapseindiappsdevelopment
 
Synapse india dotnet development overloading operater part 3
Synapse india dotnet development overloading operater part 3Synapse india dotnet development overloading operater part 3
Synapse india dotnet development overloading operater part 3Synapseindiappsdevelopment
 
Synapseindia dot net development computer programming
Synapseindia dot net development  computer programmingSynapseindia dot net development  computer programming
Synapseindia dot net development computer programmingSynapseindiappsdevelopment
 
Synapseindia android apps application development
Synapseindia android apps application developmentSynapseindia android apps application development
Synapseindia android apps application developmentSynapseindiappsdevelopment
 

Viewers also liked (14)

SynapseIndia java and .net development
SynapseIndia java and .net developmentSynapseIndia java and .net development
SynapseIndia java and .net development
 
SynapseIndia dotnet development ajax client library
SynapseIndia dotnet development ajax client librarySynapseIndia dotnet development ajax client library
SynapseIndia dotnet development ajax client library
 
Synapse india reviews sharing chapter 23 – asp.net
Synapse india reviews sharing  chapter 23 – asp.netSynapse india reviews sharing  chapter 23 – asp.net
Synapse india reviews sharing chapter 23 – asp.net
 
Synapseindia android apps application
Synapseindia android apps applicationSynapseindia android apps application
Synapseindia android apps application
 
SynapseIndia dotnet development framework
SynapseIndia  dotnet development frameworkSynapseIndia  dotnet development framework
SynapseIndia dotnet development framework
 
SynapseIndia mobile apps trends, 2013
SynapseIndia mobile apps  trends, 2013SynapseIndia mobile apps  trends, 2013
SynapseIndia mobile apps trends, 2013
 
Synapse india dotnet framework development or c
Synapse india dotnet framework development or cSynapse india dotnet framework development or c
Synapse india dotnet framework development or c
 
SynapseIndia drupal presentation on drupal best practices
SynapseIndia drupal  presentation on drupal best practicesSynapseIndia drupal  presentation on drupal best practices
SynapseIndia drupal presentation on drupal best practices
 
SynapseIndia dotnet module development part 1
SynapseIndia  dotnet module development part 1SynapseIndia  dotnet module development part 1
SynapseIndia dotnet module development part 1
 
Synapseindia android apps overview
Synapseindia android apps overviewSynapseindia android apps overview
Synapseindia android apps overview
 
Chapter 6 arrays part-1
Chapter 6   arrays part-1Chapter 6   arrays part-1
Chapter 6 arrays part-1
 
Synapse india dotnet development overloading operater part 3
Synapse india dotnet development overloading operater part 3Synapse india dotnet development overloading operater part 3
Synapse india dotnet development overloading operater part 3
 
Synapseindia dot net development computer programming
Synapseindia dot net development  computer programmingSynapseindia dot net development  computer programming
Synapseindia dot net development computer programming
 
Synapseindia android apps application development
Synapseindia android apps application developmentSynapseindia android apps application development
Synapseindia android apps application development
 

Similar to SynapseIndia dotnet development methodologies iterative

Synapseindia dot net development about programming
Synapseindia dot net development about programmingSynapseindia dot net development about programming
Synapseindia dot net development about programmingSynapseindiappsdevelopment
 
SynapseIndia dotnet debugging development process
SynapseIndia dotnet debugging development processSynapseIndia dotnet debugging development process
SynapseIndia dotnet debugging development processSynapseindiappsdevelopment
 
Software development slides
Software development slidesSoftware development slides
Software development slidesiarthur
 
Stating the obvious - 121 Test Automation Day, Dublin, 2018
Stating the obvious - 121 Test Automation Day, Dublin, 2018Stating the obvious - 121 Test Automation Day, Dublin, 2018
Stating the obvious - 121 Test Automation Day, Dublin, 2018Giulio Vian
 
OORPT Dynamic Analysis
OORPT Dynamic AnalysisOORPT Dynamic Analysis
OORPT Dynamic Analysislienhard
 
Measuring Your Code
Measuring Your CodeMeasuring Your Code
Measuring Your CodeNate Abele
 
FME World Tour 2015 - FME & Data Migration Simon McCabe
FME World Tour 2015 -  FME & Data Migration Simon McCabeFME World Tour 2015 -  FME & Data Migration Simon McCabe
FME World Tour 2015 - FME & Data Migration Simon McCabeIMGS
 
Vinicorp: Information management with redmine
Vinicorp: Information management with redmine Vinicorp: Information management with redmine
Vinicorp: Information management with redmine vinicorp
 
Faster Computing was impressed with your presentation. The company.pdf
Faster Computing was impressed with your presentation. The company.pdfFaster Computing was impressed with your presentation. The company.pdf
Faster Computing was impressed with your presentation. The company.pdframizmemonahmedabado1
 
part 1 - intorduction data structure 2021 mte.ppt
part 1 -  intorduction data structure  2021 mte.pptpart 1 -  intorduction data structure  2021 mte.ppt
part 1 - intorduction data structure 2021 mte.pptabdoSelem1
 
Quality Assurance 1: Why Quality Matters
Quality Assurance 1: Why Quality MattersQuality Assurance 1: Why Quality Matters
Quality Assurance 1: Why Quality MattersMarc Miquel
 
What to Expect When You're Expecting (to Own Production)
What to Expect When You're Expecting (to Own Production)What to Expect When You're Expecting (to Own Production)
What to Expect When You're Expecting (to Own Production)Michael Diamant
 
Less code More fun
Less code More funLess code More fun
Less code More funAmos Laber
 

Similar to SynapseIndia dotnet development methodologies iterative (20)

Synapseindia dot net development about programming
Synapseindia dot net development about programmingSynapseindia dot net development about programming
Synapseindia dot net development about programming
 
SynapseIndia dotnet debugging development process
SynapseIndia dotnet debugging development processSynapseIndia dotnet debugging development process
SynapseIndia dotnet debugging development process
 
Programming
ProgrammingProgramming
Programming
 
Chap 1 c++
Chap 1 c++Chap 1 c++
Chap 1 c++
 
Ensuring code quality
Ensuring code qualityEnsuring code quality
Ensuring code quality
 
Software development slides
Software development slidesSoftware development slides
Software development slides
 
Debugging
DebuggingDebugging
Debugging
 
Stating the obvious - 121 Test Automation Day, Dublin, 2018
Stating the obvious - 121 Test Automation Day, Dublin, 2018Stating the obvious - 121 Test Automation Day, Dublin, 2018
Stating the obvious - 121 Test Automation Day, Dublin, 2018
 
OORPT Dynamic Analysis
OORPT Dynamic AnalysisOORPT Dynamic Analysis
OORPT Dynamic Analysis
 
Measuring Your Code
Measuring Your CodeMeasuring Your Code
Measuring Your Code
 
FME World Tour 2015 - FME & Data Migration Simon McCabe
FME World Tour 2015 -  FME & Data Migration Simon McCabeFME World Tour 2015 -  FME & Data Migration Simon McCabe
FME World Tour 2015 - FME & Data Migration Simon McCabe
 
Vinicorp: Information management with redmine
Vinicorp: Information management with redmine Vinicorp: Information management with redmine
Vinicorp: Information management with redmine
 
SE.pdf
SE.pdfSE.pdf
SE.pdf
 
Faster Computing was impressed with your presentation. The company.pdf
Faster Computing was impressed with your presentation. The company.pdfFaster Computing was impressed with your presentation. The company.pdf
Faster Computing was impressed with your presentation. The company.pdf
 
part 1 - intorduction data structure 2021 mte.ppt
part 1 -  intorduction data structure  2021 mte.pptpart 1 -  intorduction data structure  2021 mte.ppt
part 1 - intorduction data structure 2021 mte.ppt
 
Quality Assurance 1: Why Quality Matters
Quality Assurance 1: Why Quality MattersQuality Assurance 1: Why Quality Matters
Quality Assurance 1: Why Quality Matters
 
What to Expect When You're Expecting (to Own Production)
What to Expect When You're Expecting (to Own Production)What to Expect When You're Expecting (to Own Production)
What to Expect When You're Expecting (to Own Production)
 
X page developer
X page developerX page developer
X page developer
 
Less code More fun
Less code More funLess code More fun
Less code More fun
 
Architecture presentation 4
Architecture presentation 4Architecture presentation 4
Architecture presentation 4
 

More from Synapseindiappsdevelopment

Synapse india elance top in demand in it skills
Synapse india elance top in demand in it skillsSynapse india elance top in demand in it skills
Synapse india elance top in demand in it skillsSynapseindiappsdevelopment
 
SynapseIndia dotnet web development architecture module
SynapseIndia dotnet web development architecture moduleSynapseIndia dotnet web development architecture module
SynapseIndia dotnet web development architecture moduleSynapseindiappsdevelopment
 
SynapseIndia dotnet web applications development
SynapseIndia  dotnet web applications developmentSynapseIndia  dotnet web applications development
SynapseIndia dotnet web applications developmentSynapseindiappsdevelopment
 
SynapseIndia dotnet website security development
SynapseIndia  dotnet website security developmentSynapseIndia  dotnet website security development
SynapseIndia dotnet website security developmentSynapseindiappsdevelopment
 
SynapseIndia mobile apps deployment framework internal architecture
SynapseIndia mobile apps deployment framework internal architectureSynapseIndia mobile apps deployment framework internal architecture
SynapseIndia mobile apps deployment framework internal architectureSynapseindiappsdevelopment
 
SynapseIndia dotnet client library Development
SynapseIndia dotnet client library DevelopmentSynapseIndia dotnet client library Development
SynapseIndia dotnet client library DevelopmentSynapseindiappsdevelopment
 
SynapseIndia creating asp controls programatically development
SynapseIndia creating asp controls programatically developmentSynapseIndia creating asp controls programatically development
SynapseIndia creating asp controls programatically developmentSynapseindiappsdevelopment
 
SynapseIndia drupal presentation on drupal info
SynapseIndia drupal  presentation on drupal infoSynapseIndia drupal  presentation on drupal info
SynapseIndia drupal presentation on drupal infoSynapseindiappsdevelopment
 
Synapse india sharing info on dotnet framework part1
Synapse india sharing info on dotnet framework part1Synapse india sharing info on dotnet framework part1
Synapse india sharing info on dotnet framework part1Synapseindiappsdevelopment
 
Synapse india sharing info on dotnet framework part2
Synapse india sharing info on dotnet framework part2Synapse india sharing info on dotnet framework part2
Synapse india sharing info on dotnet framework part2Synapseindiappsdevelopment
 
Synapse india dotnet development overloading operater part 4
Synapse india dotnet development overloading operater part 4Synapse india dotnet development overloading operater part 4
Synapse india dotnet development overloading operater part 4Synapseindiappsdevelopment
 

More from Synapseindiappsdevelopment (20)

Synapse india elance top in demand in it skills
Synapse india elance top in demand in it skillsSynapse india elance top in demand in it skills
Synapse india elance top in demand in it skills
 
SynapseIndia dotnet web development architecture module
SynapseIndia dotnet web development architecture moduleSynapseIndia dotnet web development architecture module
SynapseIndia dotnet web development architecture module
 
SynapseIndia dotnet framework library
SynapseIndia  dotnet framework librarySynapseIndia  dotnet framework library
SynapseIndia dotnet framework library
 
SynapseIndia dotnet web applications development
SynapseIndia  dotnet web applications developmentSynapseIndia  dotnet web applications development
SynapseIndia dotnet web applications development
 
SynapseIndia dotnet website security development
SynapseIndia  dotnet website security developmentSynapseIndia  dotnet website security development
SynapseIndia dotnet website security development
 
SynapseIndia mobile build apps management
SynapseIndia mobile build apps managementSynapseIndia mobile build apps management
SynapseIndia mobile build apps management
 
SynapseIndia mobile apps deployment framework internal architecture
SynapseIndia mobile apps deployment framework internal architectureSynapseIndia mobile apps deployment framework internal architecture
SynapseIndia mobile apps deployment framework internal architecture
 
SynapseIndia dotnet development panel control
SynapseIndia dotnet development panel controlSynapseIndia dotnet development panel control
SynapseIndia dotnet development panel control
 
SynapseIndia php web development
SynapseIndia php web developmentSynapseIndia php web development
SynapseIndia php web development
 
SynapseIndia mobile apps architecture
SynapseIndia mobile apps architectureSynapseIndia mobile apps architecture
SynapseIndia mobile apps architecture
 
SynapseIndia mobile apps
SynapseIndia mobile appsSynapseIndia mobile apps
SynapseIndia mobile apps
 
SynapseIndia dotnet development
SynapseIndia dotnet developmentSynapseIndia dotnet development
SynapseIndia dotnet development
 
SynapseIndia dotnet client library Development
SynapseIndia dotnet client library DevelopmentSynapseIndia dotnet client library Development
SynapseIndia dotnet client library Development
 
SynapseIndia creating asp controls programatically development
SynapseIndia creating asp controls programatically developmentSynapseIndia creating asp controls programatically development
SynapseIndia creating asp controls programatically development
 
SynapseIndia asp.net2.0 ajax Development
SynapseIndia asp.net2.0 ajax DevelopmentSynapseIndia asp.net2.0 ajax Development
SynapseIndia asp.net2.0 ajax Development
 
SynapseIndia drupal presentation on drupal info
SynapseIndia drupal  presentation on drupal infoSynapseIndia drupal  presentation on drupal info
SynapseIndia drupal presentation on drupal info
 
SynapseIndia drupal presentation on drupal
SynapseIndia drupal  presentation on drupalSynapseIndia drupal  presentation on drupal
SynapseIndia drupal presentation on drupal
 
Synapse india sharing info on dotnet framework part1
Synapse india sharing info on dotnet framework part1Synapse india sharing info on dotnet framework part1
Synapse india sharing info on dotnet framework part1
 
Synapse india sharing info on dotnet framework part2
Synapse india sharing info on dotnet framework part2Synapse india sharing info on dotnet framework part2
Synapse india sharing info on dotnet framework part2
 
Synapse india dotnet development overloading operater part 4
Synapse india dotnet development overloading operater part 4Synapse india dotnet development overloading operater part 4
Synapse india dotnet development overloading operater part 4
 

Recently uploaded

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Recently uploaded (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

SynapseIndia dotnet development methodologies iterative

  • 1. Methodologies - Iterative  Develop for a period of time (1-2 months), get working game, add features  Periods can coincide with publisher milestones  Allows for some planning  Time period can have design before implementation  Allows for some flexibility  Can adjust (to new technical challenges or producer demands) Based on Chapter 3.1, Introduction to Game Development
  • 2. Methodologies - Agile  Admit things will change, avoid looking too far in the future  Value simplicity and the ability to change  Can scale, add new features, adjust  Relatively new for game development  Big challenge is hard to convince publishers Based on Chapter 3.1, Introduction to Game Development
  • 3. Common Practices – Version Control  Database containing files and past history of them  Central location for all code  Allows team to work on related files without overwriting each other’s work  History preserved to track down errors  Branching and merging for platform specific parts Based on Chapter 3.1, Introduction to Game Development
  • 4. Common Practices – Quality (1 of 2)  Code reviews – walk through code by other programmer(s)  Formal or informal  “Two eyes are better than one”  Value is programmer aware others read  Asserts  Force program to crash to help debugging  Ex: Check condition is true at top of code, say pointer not NULL before following  Removed during release Based on Chapter 3.1, Introduction to Game Development
  • 5. Common Practices – Quality (2 of 2)  Unit tests  Low level test of part of game (Ex: see if physics computations correct)  Tough to wait until very end and see if bug  Often automated, computer runs through combinations  Verify before assembling  Acceptance tests  Verify high-level functionality working correctly (Ex: see if levels load correctly)  Note, above are programming tests (ie- code, technical). Still turned over to testers that track bugs, do gameplay testing.  Bug database  Document and track bugs  Can be from programmers, publishers, customers  Classify by severity  Keeps bugs from falling through cracks  Helps see how game is progressing Based on Chapter 3.1, Introduction to Game Development
  • 6. Outline  Teams and Processes (done)  Select Languages (next)  Debugging  Misc (as time allows)  AI  Multiplayer
  • 7. C++ (1 of 3)  Mid-late 1990’s, C was language of choice  Since then, C++ language of choice for games  First commercial release in 1985 (AT&T)  List pros (+) and cons (-)  (Take cs2102 OO Design Concepts or cs4233 OOAD) + C Heritage  Learning curve easier  Compilers wicked fast + Performance  Used to be most important, but less so (but still for core parts)  Maps closely to hardware (can “guess” what assembly instructions will be)  Can not use features to avoid cost, if want (ie- virtual function have extra step but don’t have to use)  Memory management controlled by user Based on Chapter 3.2, Introduction to Game Development
  • 8. C++ (2 of 3) + High-level  Classes (objects), polymorphism, templates, exceptions  Especially important as code-bases enlarge  Strongly-typed (helps reduce errors)  ex: declare before use, and const + Libraries  C++ middleware readily available  OpenGL, DirectX, Standard Template Library (containers, like “vectors”, and algorithms, like “sort”) Based on Chapter 3.2, Introduction to Game Development
  • 9. C++ (3 of 3) - Too Low-level  Still force programmer to deal with low-level issues  ex: memory management, pointers - Too complicated  Years of expertise required to master (other languages seek to overcome, like Java and C#) - Lacking features  No built-in way to look at object instances  No built-in way to serialize  Forces programmer to build such functionality (or learn custom or 3rd party library) - Slow iteration  Brittle, hard to try new things  Code change can take a looong time as can compile Based on Chapter 3.2, Introduction to Game Development
  • 10. C++ (Summary)  When to use?  Any code where performance is crucial  Used to be all, now game engine such as graphics and AI  Game-specific code often not C++  Legacy code base, expertise  When also use middle-ware libraries in C++  When not to use?  Tool building (GUI’s tough)  High-level game tasks (technical designers) Based on Chapter 3.2, Introduction to Game Development