SlideShare uma empresa Scribd logo
1 de 32
19/01/15
Game Development
“Life is more fun if you play
games.” - Roald Dahl
2
19/01/15
Peter Vrenken
TS Midden Financial Services
Game Development
Personal introduction
• Name: Peter Vrenken
• By day: Microsoft .NET ‘Frontend’ developer
• At night: Geek, philosopher & game developer
Introduction Development basics Advanced techniques Game engines---
3
19/01/15
Peter Vrenken
TS Midden Financial Services
Game Development
Introduction Development basics Advanced techniques Game engines---
4
19/01/15
Peter Vrenken
TS Midden Financial Services
Game Development
Structure
• Let’s start with the basics.
• Advanced tips ‘n tricks.
• Game engines.
Introduction Development basics Advanced techniques Game engines---
5
19/01/15
Peter Vrenken
TS Midden Financial Services
Game Development
Case study
Introduction Development basics Advanced techniques Game engines---
6
19/01/15
Peter Vrenken
TS Midden Financial Services
Game development approach
• User Interface API.
• Low level graphics / audio API’s.
• High level API wrappers / libraries.
• Fully fledged game engines.
Game Development
Introduction Development basics Advanced techniques Game engines---
7
19/01/15
Peter Vrenken
TS Midden Financial Services
User Interface API
• Windows Forms
• WPF
• Java AWT
Game Development
Introduction Development basics Advanced techniques Game engines---
8
19/01/15
Peter Vrenken
TS Midden Financial Services
Low level graphics / audio API’s
Game Development
Introduction Development basics Advanced techniques Game engines---
9
19/01/15
Peter Vrenken
TS Midden Financial Services
High level API wrappers / libraries
Game Development
Introduction Development basics Advanced techniques Game engines---
10
19/01/15
Peter Vrenken
TS Midden Financial Services
Fully fledged game engines
Game Development
Introduction Development basics Advanced techniques Game engines---
11
19/01/15
Peter Vrenken
TS Midden Financial Services
Game loops
Nothing new: All applications run at least one kind of loop.
Game Development
Introduction Development basics Advanced techniques Game engines---
12
19/01/15
Peter Vrenken
TS Midden Financial Services
Sprites & textures
…
Game Development
Introduction Development basics Advanced techniques Game engines---
13
19/01/15
Peter Vrenken
TS Midden Financial Services
Sprites & textures
Game Development
Introduction Development basics Advanced techniques Game engines---
14
19/01/15
Peter Vrenken
TS Midden Financial Services
Coordinate spaces
Game Development
Model / world space Camera (view) / screen space
Introduction Development basics Advanced techniques Game engines---
15
19/01/15
Peter Vrenken
TS Midden Financial Services
Timing
• Always use time to
calculate movement
• Fixed time steps
• Variable time steps
Game Development
Introduction Development basics Advanced techniques Game engines---
16
19/01/15
Peter Vrenken
TS Midden Financial Services
(Inbe)Tweening / Interpolation
Give the game “Elegance” by make movement subtle.
Game Development
Introduction Development basics Advanced techniques Game engines---
17
19/01/15
Peter Vrenken
TS Midden Financial Services
Game Development
Particle engines
• Basic recipe: use lots of sprites
to create illusions.
• Often used to create
more advanced visual effects.
Introduction Development basics Advanced techniques Game engines---
18
19/01/15
Peter Vrenken
TS Midden Financial Services
Physic engines
•Basic recipe: Simulate the laws of physics.
•Uses 2D/3D objects build from vertices, edges and faces.
•Gives the game “Body”.
Game Development
Introduction Development basics Advanced techniques Game engines---
19
19/01/15
Peter Vrenken
TS Midden Financial Services
Performance
• Primary problem: Games and garbage collection don’t mix.
• Basic rule #1: “Profile before optimizing”.
• Basic rule #2: Recycle and reuse.
• Basic rule #3: “OO is not the holy grail”.
• Basic rule #4: Optimize your resources.
Game Development
Introduction Development basics Advanced techniques Game engines---
20
19/01/15
Peter Vrenken
TS Midden Financial Services
Take care of your garbage!
Game Development
Introduction Development basics Advanced techniques Game engines---
21
19/01/15
Peter Vrenken
TS Midden Financial Services
Profile before optimizing
Game Development
Introduction Development basics Advanced techniques Game engines---
22
19/01/15
Peter Vrenken
TS Midden Financial Services
Recycle and reuse
•Object pooling.
•Object caching.
Game Development
Introduction Development basics Advanced techniques Game engines---
23
19/01/15
Peter Vrenken
TS Midden Financial Services
OO is not the holy grail
•Structs behave different when GC-ed.
•Don’t create copies: Process structs using ref and out parameters.
•Don’t use properties: They are methods and alter the stack.
•Flatten complex methods and objects.
Game Development
Introduction Development basics Advanced techniques Game engines---
24
19/01/15
Peter Vrenken
TS Midden Financial Services
Optimize your resources
• Use matching quality resources.
• Use spritesheets / atlases.
Game Development
Introduction Development basics Advanced techniques Game engines---
25
19/01/15
Peter Vrenken
TS Midden Financial Services
Behavior trees
Elegant way to model
AI behavior.
• Sequences
• Selections
• Conditions
• Actions
Game Development
Introduction Development basics Advanced techniques Game engines---
26
19/01/15
Peter Vrenken
TS Midden Financial Services
Entity (Component) Systems
• Basic recipe: Don’t store any logic in your “objects”.
• Reason: Performance and flexibility.
Game Development
Introduction Development basics Advanced techniques Game engines---
27
19/01/15
Peter Vrenken
TS Midden Financial Services
Entity (Component) Systems
Game Development
Introduction Development basics Advanced techniques Game engines---
28
19/01/15
Peter Vrenken
TS Midden Financial Services
Entity (Component) Systems
Game Development
Introduction Development basics Advanced techniques Game engines---
29
19/01/15
Peter Vrenken
TS Midden Financial Services
Game development
Game Engines
Provides everything needed for a running start.
For example: Unity 3D
• Advanced IDE: Everything needed combined in one tool.
• Standardized: Lots of textures/models/scripts/effects/plugins.
• Cross platform!
Introduction Development basics Advanced techniques Game engines---
30
19/01/15
Peter Vrenken
TS Midden Financial Services
Game development
Introduction Development basics Advanced techniques Game engines---
19/01/15
Thank you
Atos, the Atos logo, Atos Consulting, Atos Worldline, Atos Sphere, Atos
Cloud and Atos WorldGrid
are registered trademarks of Atos SA. June 2012
© 2012 Atos. Confidential information owned by Atos, to be used by
the recipient only. This document, or any part of it, may not be
reproduced, copied, circulated and/or distributed nor quoted without
prior written approval from Atos.
32
19/01/15
Peter Vrenken
TS Midden Financial Services
Game development
“If Pac-Man had affected us as kids,
we'd all be running around in dark
rooms, munching pills and listening
to repetitive electronic music.”
- Marcus Brigstocke
Introduction Development basics Advanced techniques Game engines---

Mais conteúdo relacionado

Último

Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMarkus Moeller
 
Novo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMsNovo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMsNeo4j
 
From Knowledge Graphs via Lego Bricks to scientific conversations.pptx
From Knowledge Graphs via Lego Bricks to scientific conversations.pptxFrom Knowledge Graphs via Lego Bricks to scientific conversations.pptx
From Knowledge Graphs via Lego Bricks to scientific conversations.pptxNeo4j
 
GraphSummit Milan & Stockholm - Neo4j: The Art of the Possible with Graph
GraphSummit Milan & Stockholm - Neo4j: The Art of the Possible with GraphGraphSummit Milan & Stockholm - Neo4j: The Art of the Possible with Graph
GraphSummit Milan & Stockholm - Neo4j: The Art of the Possible with GraphNeo4j
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletAndrea Goulet
 
Encryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key ConceptsEncryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key Conceptsthomashtkim
 
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
Auto Affiliate  AI Earns First Commission in 3 Hours..pdfAuto Affiliate  AI Earns First Commission in 3 Hours..pdf
Auto Affiliate AI Earns First Commission in 3 Hours..pdfSelfMade bd
 
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfThe Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfkalichargn70th171
 
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...Abortion Clinic
 
Your Ultimate Web Studio for Streaming Anywhere | Evmux
Your Ultimate Web Studio for Streaming Anywhere | EvmuxYour Ultimate Web Studio for Streaming Anywhere | Evmux
Your Ultimate Web Studio for Streaming Anywhere | Evmuxevmux96
 
architecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfarchitecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfWSO2
 
From Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIFrom Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIInflectra
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConNatan Silnitsky
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Andrea Goulet
 
Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Maxim Salnikov
 

Último (20)

Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdf
 
Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
Abortion Pill Prices Germiston ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
 
Novo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMsNovo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMs
 
From Knowledge Graphs via Lego Bricks to scientific conversations.pptx
From Knowledge Graphs via Lego Bricks to scientific conversations.pptxFrom Knowledge Graphs via Lego Bricks to scientific conversations.pptx
From Knowledge Graphs via Lego Bricks to scientific conversations.pptx
 
GraphSummit Milan & Stockholm - Neo4j: The Art of the Possible with Graph
GraphSummit Milan & Stockholm - Neo4j: The Art of the Possible with GraphGraphSummit Milan & Stockholm - Neo4j: The Art of the Possible with Graph
GraphSummit Milan & Stockholm - Neo4j: The Art of the Possible with Graph
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea Goulet
 
Encryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key ConceptsEncryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key Concepts
 
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
Auto Affiliate  AI Earns First Commission in 3 Hours..pdfAuto Affiliate  AI Earns First Commission in 3 Hours..pdf
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
 
Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...
Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...
Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...
 
Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...
 
Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...
Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...
Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...
 
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfThe Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
 
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
 
Your Ultimate Web Studio for Streaming Anywhere | Evmux
Your Ultimate Web Studio for Streaming Anywhere | EvmuxYour Ultimate Web Studio for Streaming Anywhere | Evmux
Your Ultimate Web Studio for Streaming Anywhere | Evmux
 
architecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfarchitecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdf
 
From Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIFrom Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST API
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeCon
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
 
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
 
Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?
 

Destaque

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Game Development Voodoo

  • 1. 19/01/15 Game Development “Life is more fun if you play games.” - Roald Dahl
  • 2. 2 19/01/15 Peter Vrenken TS Midden Financial Services Game Development Personal introduction • Name: Peter Vrenken • By day: Microsoft .NET ‘Frontend’ developer • At night: Geek, philosopher & game developer Introduction Development basics Advanced techniques Game engines---
  • 3. 3 19/01/15 Peter Vrenken TS Midden Financial Services Game Development Introduction Development basics Advanced techniques Game engines---
  • 4. 4 19/01/15 Peter Vrenken TS Midden Financial Services Game Development Structure • Let’s start with the basics. • Advanced tips ‘n tricks. • Game engines. Introduction Development basics Advanced techniques Game engines---
  • 5. 5 19/01/15 Peter Vrenken TS Midden Financial Services Game Development Case study Introduction Development basics Advanced techniques Game engines---
  • 6. 6 19/01/15 Peter Vrenken TS Midden Financial Services Game development approach • User Interface API. • Low level graphics / audio API’s. • High level API wrappers / libraries. • Fully fledged game engines. Game Development Introduction Development basics Advanced techniques Game engines---
  • 7. 7 19/01/15 Peter Vrenken TS Midden Financial Services User Interface API • Windows Forms • WPF • Java AWT Game Development Introduction Development basics Advanced techniques Game engines---
  • 8. 8 19/01/15 Peter Vrenken TS Midden Financial Services Low level graphics / audio API’s Game Development Introduction Development basics Advanced techniques Game engines---
  • 9. 9 19/01/15 Peter Vrenken TS Midden Financial Services High level API wrappers / libraries Game Development Introduction Development basics Advanced techniques Game engines---
  • 10. 10 19/01/15 Peter Vrenken TS Midden Financial Services Fully fledged game engines Game Development Introduction Development basics Advanced techniques Game engines---
  • 11. 11 19/01/15 Peter Vrenken TS Midden Financial Services Game loops Nothing new: All applications run at least one kind of loop. Game Development Introduction Development basics Advanced techniques Game engines---
  • 12. 12 19/01/15 Peter Vrenken TS Midden Financial Services Sprites & textures … Game Development Introduction Development basics Advanced techniques Game engines---
  • 13. 13 19/01/15 Peter Vrenken TS Midden Financial Services Sprites & textures Game Development Introduction Development basics Advanced techniques Game engines---
  • 14. 14 19/01/15 Peter Vrenken TS Midden Financial Services Coordinate spaces Game Development Model / world space Camera (view) / screen space Introduction Development basics Advanced techniques Game engines---
  • 15. 15 19/01/15 Peter Vrenken TS Midden Financial Services Timing • Always use time to calculate movement • Fixed time steps • Variable time steps Game Development Introduction Development basics Advanced techniques Game engines---
  • 16. 16 19/01/15 Peter Vrenken TS Midden Financial Services (Inbe)Tweening / Interpolation Give the game “Elegance” by make movement subtle. Game Development Introduction Development basics Advanced techniques Game engines---
  • 17. 17 19/01/15 Peter Vrenken TS Midden Financial Services Game Development Particle engines • Basic recipe: use lots of sprites to create illusions. • Often used to create more advanced visual effects. Introduction Development basics Advanced techniques Game engines---
  • 18. 18 19/01/15 Peter Vrenken TS Midden Financial Services Physic engines •Basic recipe: Simulate the laws of physics. •Uses 2D/3D objects build from vertices, edges and faces. •Gives the game “Body”. Game Development Introduction Development basics Advanced techniques Game engines---
  • 19. 19 19/01/15 Peter Vrenken TS Midden Financial Services Performance • Primary problem: Games and garbage collection don’t mix. • Basic rule #1: “Profile before optimizing”. • Basic rule #2: Recycle and reuse. • Basic rule #3: “OO is not the holy grail”. • Basic rule #4: Optimize your resources. Game Development Introduction Development basics Advanced techniques Game engines---
  • 20. 20 19/01/15 Peter Vrenken TS Midden Financial Services Take care of your garbage! Game Development Introduction Development basics Advanced techniques Game engines---
  • 21. 21 19/01/15 Peter Vrenken TS Midden Financial Services Profile before optimizing Game Development Introduction Development basics Advanced techniques Game engines---
  • 22. 22 19/01/15 Peter Vrenken TS Midden Financial Services Recycle and reuse •Object pooling. •Object caching. Game Development Introduction Development basics Advanced techniques Game engines---
  • 23. 23 19/01/15 Peter Vrenken TS Midden Financial Services OO is not the holy grail •Structs behave different when GC-ed. •Don’t create copies: Process structs using ref and out parameters. •Don’t use properties: They are methods and alter the stack. •Flatten complex methods and objects. Game Development Introduction Development basics Advanced techniques Game engines---
  • 24. 24 19/01/15 Peter Vrenken TS Midden Financial Services Optimize your resources • Use matching quality resources. • Use spritesheets / atlases. Game Development Introduction Development basics Advanced techniques Game engines---
  • 25. 25 19/01/15 Peter Vrenken TS Midden Financial Services Behavior trees Elegant way to model AI behavior. • Sequences • Selections • Conditions • Actions Game Development Introduction Development basics Advanced techniques Game engines---
  • 26. 26 19/01/15 Peter Vrenken TS Midden Financial Services Entity (Component) Systems • Basic recipe: Don’t store any logic in your “objects”. • Reason: Performance and flexibility. Game Development Introduction Development basics Advanced techniques Game engines---
  • 27. 27 19/01/15 Peter Vrenken TS Midden Financial Services Entity (Component) Systems Game Development Introduction Development basics Advanced techniques Game engines---
  • 28. 28 19/01/15 Peter Vrenken TS Midden Financial Services Entity (Component) Systems Game Development Introduction Development basics Advanced techniques Game engines---
  • 29. 29 19/01/15 Peter Vrenken TS Midden Financial Services Game development Game Engines Provides everything needed for a running start. For example: Unity 3D • Advanced IDE: Everything needed combined in one tool. • Standardized: Lots of textures/models/scripts/effects/plugins. • Cross platform! Introduction Development basics Advanced techniques Game engines---
  • 30. 30 19/01/15 Peter Vrenken TS Midden Financial Services Game development Introduction Development basics Advanced techniques Game engines---
  • 31. 19/01/15 Thank you Atos, the Atos logo, Atos Consulting, Atos Worldline, Atos Sphere, Atos Cloud and Atos WorldGrid are registered trademarks of Atos SA. June 2012 © 2012 Atos. Confidential information owned by Atos, to be used by the recipient only. This document, or any part of it, may not be reproduced, copied, circulated and/or distributed nor quoted without prior written approval from Atos.
  • 32. 32 19/01/15 Peter Vrenken TS Midden Financial Services Game development “If Pac-Man had affected us as kids, we'd all be running around in dark rooms, munching pills and listening to repetitive electronic music.” - Marcus Brigstocke Introduction Development basics Advanced techniques Game engines---

Notas do Editor

  1. Welcome Numbers of people in the audience. Audible? Did some years developing .NET applications. WPF/MVVM/XAML Scars Windows Mobile/Phone/8 Current job: Atos Global: Incident Management suite with Office 2013 looks Build in WPF. Gamification Competence: Virtual Reality projects and PoC’s
  2. Did some math: - Boulder Dash was one of the first games I ever played. First release of Boulder dash: 1984: http://en.wikipedia.org/wiki/Boulder_Dash Throughout the years I tried to develop some games. But why? Games are a good practice to teach yourself new skills. They provide direct feedback. They are fun. There is no direct revenue model attached (most of the time).
  3. Doel: Quick overview of the basics. Give a taste of the advanced methods available for game development. Game engines. Scope: Primary .NET but not limited to. Own work XNA / Unity.
  4. End of introduction. Why: Remake the past. Time was ripe. Available for voor Windows 8 & Windows Phone Lots of experiences.
  5. Quick to start with. No good fit for developing games.
  6. Long learning curve. Need lots of work before anything fancy shows up. Full flexibility. WebGL: http://learningwebgl.com/
  7. Quick to start with. Simpler API’s to develop games with. Lot’s of goodies to get you up and running. Libraries: http://examples.phaser.io/ http://impactjs.com/ http://html5quintus.com/ http://www.monogame.net/ http://www.senchalabs.org/philogl/
  8. Quick to start with. Everything available. May be overwhelming. Can be expensive. List of game engines: http://en.wikipedia.org/wiki/List_of_game_engines
  9. Demo 01 – Game loop Message loop
  10. Demo 02 - Textures Composition. Movement. Fez
  11. PNG / Jpeg Also other formats Per pixel transparency
  12. Translate Transform Rotate Order is important! Concept is used in both 2D and 3D games.
  13. End of developer basics - No static assignments: position.x += 3; - No Thread.Sleep(); - Fixed vs Variable time steps. http://gamedev.stackexchange.com/questions/1589/fixed-time-step-vs-variable-time-step http://gafferongames.com/game-physics/fix-your-timestep/
  14. Demo 05 - Tweening Lineaire movements are often not good. Better is to use interpolation: lineair, cubic, quadratic, elastic. Lerp function: http://en.wikipedia.org/wiki/Lerp_(computing) Tweening samples: http://svejkgames.com/blog/post/how-to-use-tweens-in-phaser-framework/ http://jsfiddle.net/xhinking/t9X6f/ (progressbar) http://jsfiddle.net/heygrady/BLMLu/light/ http://jsfiddle.net/heygrady/j5tHC/light/ TweenJS http://www.createjs.com/#!/TweenJS http://www.createjs.com/#!/TweenJS/demos WPF Easing function gallery http://samples.msdn.microsoft.com/Silverlight/SampleBrowser/index.htm#/?sref=easing_functions_gallery http://easings.net/ Overview of easing functions.
  15. Demo 06 - Particle engine What: Effects like: Fire Explosions Clouds Shinings. How: Lots of sprites (2D or 3D) that behave according to the preconfigured settings. Emitters Modifiers Often settings or modifiers like: gravity, speed rotation. Mercury particle engine. C:\Users\Peter\SkyDrive\Documenten\2014\Peter\06-03 - Game Development\02 - Particle engine\mercury-particle-engine-develop
  16. Demo 07 - Physics engine Farseer physics engine: https://farseerphysics.codeplex.com/
  17. Problem: Games should not jitter, pause or slow down.
  18. Profilers: Ant profiler Jetbrains ?.
  19. Recycle & reuse: ObjectPools. Cache objects and change their properties. Performance sources:https://web.archive.org/web/20111107065643/http://www.sgtconker.com/2011/05/high-end-performance-optimizations-on-the-xbox-360-and-windows-phone-7/
  20. OO not the holy grail: Structs behave different when GC-ed. Don’t create copies: Process information using ref and out parameters. Don’t use properties: They are methods and push data on the stack. Flatten complex objects Performance sources:https://web.archive.org/web/20111107065643/http://www.sgtconker.com/2011/05/high-end-performance-optimizations-on-the-xbox-360-and-windows-phone-7/
  21. Spritesheets:needed to reduce texture switches. From RAM to VRAM. - Textures with a power of two are a good thing. - Balance between texture size and image quality.
  22. Best way to model behavior. Relatie met Update loop. Behavior tree sources: http://en.wikipedia.org/wiki/Entity_component_system http://entity-systems.wikidot.com/ http://www.ashframework.org/ http://gamadu.com/artemis/ http://alecmce.com/library/why-use-entity-systems-for-game-engineering
  23. Example: player & enemies in Boulder World. Example: Duke nukem rocket. Entity Component Systems sources: http://en.wikipedia.org/wiki/Entity_component_system http://entity-systems.wikidot.com/ http://www.ashframework.org/ http://gamadu.com/artemis/ http://alecmce.com/library/why-use-entity-systems-for-game-engineering
  24. Entity Component Systems sources: http://en.wikipedia.org/wiki/Entity_component_system http://entity-systems.wikidot.com/ http://www.ashframework.org/ http://gamadu.com/artemis/ http://alecmce.com/library/why-use-entity-systems-for-game-engineering
  25. Demo 08 - Entity Systems End of advanced techniques. Entity Component Systems sources: http://en.wikipedia.org/wiki/Entity_component_system http://entity-systems.wikidot.com/ http://www.ashframework.org/ http://gamadu.com/artemis/ http://alecmce.com/library/why-use-entity-systems-for-game-engineering
  26. Demo 09 - Unity