SlideShare a Scribd company logo
1 of 32
Kostas Anagnostou Game developer Adjunct Lecturer in Videogame Technologies
Who am I? ,[object Object],[object Object],[object Object]
What is this talk about? ,[object Object]
What is this talk about? ,[object Object]
What is this talk about? ,[object Object]
How are great games made? ,[object Object],[object Object]
Who creates a great game? ,[object Object],[object Object],[object Object]
Data-driven development ,[object Object],[object Object],[object Object]
Data-driven development (DDD) ,[object Object],[object Object],[object Object]
Benefits of DDD for artists ,[object Object],[object Object],[object Object],[object Object]
Benefits of DDD for programmers ,[object Object],[object Object],[object Object],Scott Shumaker,  Outrage Games
Elements that can be data-driven ,[object Object],[object Object],[object Object],[object Object]
How can data affect game behaviour? ,[object Object],[object Object],[object Object],Scott Shumaker, Outrage Games
Requirements of DDD ,[object Object],[object Object]
Levels of Data driven development ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Levels of Data driven development ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Levels of Data driven development ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],JSON is quite trendy too!
Levels of Data driven development
First taste of Data Driven Development ,[object Object],[object Object],[object Object],[object Object],[object Object]
First taste of Data Driven Development ,[object Object],[object Object],[object Object]
Space Debris by Rotten Fish Games ,[object Object],[object Object],[object Object],[object Object]
Data-Driven system design ,[object Object],[object Object],[object Object],[object Object]
Hierarchical structure of XML files Level.xml spritesheets.xml animations.xml spawners.xml bonuses.xml enemies.xml explosions.xml
Sample XML definitions layout ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Enemy definitions Bonus definitions Level tilemap
Sample XML definitions layout <?xml version=&quot;1.0&quot;?> <spawners> <spawner  type=&quot;S1LNKamikazeeHunterChase&quot;  enemytype=&quot;Kamikazee_Hunter&quot;  spawn=&quot;Chase&quot;  animation=“ ZigZag&quot;  number=&quot;6&quot;  rate=&quot;2&quot;  bonus=&quot;Invisibility&quot;> </spawner> </spawners> <?xml version=&quot;1.0&quot;?> <enemies> <enemy type=&quot;Kamikazee_Hunter&quot;> <parts> <part    sprite=&quot;alien_kamikazee_hunter“ shield=&quot;1&quot;  weapon=&quot;EnemyKamikazee1&quot;  explosion=&quot;MediumExplosion&quot;> </part> </parts> </enemy> </enemies> <?xml version=&quot;1.0&quot;?> <spritesheets> <spritesheet name=&quot;spritesheet_normal.png&quot;> <sprite name=&quot;alien_kamikazee_hunter&quot;> <frames interval=&quot;0.3&quot;> <frame x=&quot;432&quot; y=&quot;96&quot; w=&quot;48&quot; h=&quot;48&quot;></frame> <frame x=&quot;0&quot; y=&quot;144&quot; w=&quot;48&quot; h=&quot;48&quot;></frame> </frames> </sprite> </spritesheet> </spritesheets> <?xml version=&quot;1.0&quot;?> <animations> <animation  name=&quot;SPath&quot;  type=&quot;Bezier&quot;  track=&quot;Player&quot;> <parts count=“3&quot;> <part p0=&quot;0  0&quot; p1=&quot;1 0&quot; p2=&quot;1 -0.25&quot; p3=&quot;0  -0.25&quot;  duration=&quot;3&quot;></part>  <part p0=&quot;0  0&quot; p1=&quot;-1  0&quot; p2=&quot;-1 -0.25&quot; p3=&quot;0  -0.25&quot;  duration=&quot;3&quot;></part>  <part p0=&quot;0  0&quot; p1=&quot;1 0&quot; p2=&quot;1 -0.25&quot; p3=&quot;0  -0.25&quot;  duration=&quot;3&quot;></part>  </parts> </animation> </animations>
Sample XML definitions layout <?xml version=&quot;1.0&quot;?> <spawners> <spawner  type=&quot;S1LNKamikazeeHunterChase&quot;  enemytype=&quot;Kamikazee_Hunter&quot;  spawn=&quot;Chase&quot;  animation=“ SPath&quot;  number=&quot;6&quot;  rate=&quot;2&quot;  bonus=&quot;Invisibility&quot;> </spawner> </spawners> <?xml version=&quot;1.0&quot;?> <enemies> <enemy type=&quot;Kamikazee_Hunter&quot;> <parts> <part    sprite=&quot;alien_kamikazee_hunter“ shield=&quot;1&quot;  weapon=&quot;EnemyKamikazee1&quot;  explosion=&quot;MediumExplosion&quot;> </part> </parts> </enemy> </enemies> <?xml version=&quot;1.0&quot;?> <spritesheets> <spritesheet name=&quot;spritesheet_normal.png&quot;> <sprite name=&quot;alien_kamikazee_hunter&quot;> <frames interval=&quot;0.3&quot;> <frame x=&quot;432&quot; y=&quot;96&quot; w=&quot;48&quot; h=&quot;48&quot;></frame> <frame x=&quot;0&quot; y=&quot;144&quot; w=&quot;48&quot; h=&quot;48&quot;></frame> </frames> </sprite> </spritesheet> </spritesheets> <?xml version=&quot;1.0&quot;?> <animations> <animation  name=&quot;SPath&quot;  type=&quot;Bezier&quot;  track=&quot;Player&quot;> <parts count=“3&quot;> <part p0=&quot;0  0&quot; p1=&quot;1 0&quot; p2=&quot;1 -0.25&quot; p3=&quot;0  -0.25&quot;  duration=&quot;3&quot;></part>  <part p0=&quot;0  0&quot; p1=&quot;-1  0&quot; p2=&quot;-1 -0.25&quot; p3=&quot;0  -0.25&quot;  duration=&quot;3&quot;></part>  <part p0=&quot;0  0&quot; p1=&quot;1 0&quot; p2=&quot;1 -0.25&quot; p3=&quot;0  -0.25&quot;  duration=&quot;3&quot;></part>  </parts> </animation> </animations>
Game data specification
Game data specification
Experiences from the DD system ,[object Object],[object Object],[object Object],[object Object]
A few weaknesses ,[object Object],[object Object],[object Object],[object Object]
Let’s wrap it up! ,[object Object],[object Object],[object Object],[object Object],[object Object]
Thank you for listening! ,[object Object],[object Object]

More Related Content

What's hot

Course Presentation: Games design
Course Presentation: Games designCourse Presentation: Games design
Course Presentation: Games design
Brunel University
 
Game engines and Their Influence in Game Design
Game engines and Their Influence in Game DesignGame engines and Their Influence in Game Design
Game engines and Their Influence in Game Design
Prashant Warrier
 

What's hot (20)

Introduction to Game Development.pdf
Introduction to Game Development.pdfIntroduction to Game Development.pdf
Introduction to Game Development.pdf
 
What Is A Game Engine
What Is A Game EngineWhat Is A Game Engine
What Is A Game Engine
 
Game Development workshop with Unity3D.
Game Development workshop with Unity3D.Game Development workshop with Unity3D.
Game Development workshop with Unity3D.
 
Game development
Game developmentGame development
Game development
 
Course Presentation: Games design
Course Presentation: Games designCourse Presentation: Games design
Course Presentation: Games design
 
06. Game Architecture
06. Game Architecture06. Game Architecture
06. Game Architecture
 
What is game development
What is game developmentWhat is game development
What is game development
 
Game Engine Architecture
Game Engine ArchitectureGame Engine Architecture
Game Engine Architecture
 
Game engines and Their Influence in Game Design
Game engines and Their Influence in Game DesignGame engines and Their Influence in Game Design
Game engines and Their Influence in Game Design
 
Unityアニメーションシステムの 今と未来の話
Unityアニメーションシステムの 今と未来の話Unityアニメーションシステムの 今と未来の話
Unityアニメーションシステムの 今と未来の話
 
Game Development Company, Flash Game Development,
Game Development Company, Flash Game Development,Game Development Company, Flash Game Development,
Game Development Company, Flash Game Development,
 
Design your 3d game engine
Design your 3d game engineDesign your 3d game engine
Design your 3d game engine
 
Making a Game Design Document
Making a Game Design DocumentMaking a Game Design Document
Making a Game Design Document
 
Intro to Game Design
Intro to Game DesignIntro to Game Design
Intro to Game Design
 
それを早く言ってよ〜パフォーマンスを出すエフェクト制作のポイント
それを早く言ってよ〜パフォーマンスを出すエフェクト制作のポイントそれを早く言ってよ〜パフォーマンスを出すエフェクト制作のポイント
それを早く言ってよ〜パフォーマンスを出すエフェクト制作のポイント
 
Software Engineer- A unity 3d Game
Software Engineer- A unity 3d GameSoftware Engineer- A unity 3d Game
Software Engineer- A unity 3d Game
 
Introduction to Game Development and the Game Industry
Introduction to Game Development and the Game IndustryIntroduction to Game Development and the Game Industry
Introduction to Game Development and the Game Industry
 
Scene Graphs & Component Based Game Engines
Scene Graphs & Component Based Game EnginesScene Graphs & Component Based Game Engines
Scene Graphs & Component Based Game Engines
 
Introduction to game development
Introduction to game developmentIntroduction to game development
Introduction to game development
 
Intro to unreal with framework and vr
Intro to unreal with framework and vrIntro to unreal with framework and vr
Intro to unreal with framework and vr
 

Similar to Data Driven Game development

Introduction to Artificial Intelligence
Introduction to Artificial IntelligenceIntroduction to Artificial Intelligence
Introduction to Artificial Intelligence
Ahmed Hani Ibrahim
 
GameTrader project
GameTrader projectGameTrader project
GameTrader project
juan_aleman
 
gamedevelopment-devbatch-slideshare-160523134658 (1).pptx
gamedevelopment-devbatch-slideshare-160523134658 (1).pptxgamedevelopment-devbatch-slideshare-160523134658 (1).pptx
gamedevelopment-devbatch-slideshare-160523134658 (1).pptx
AgripinoVerderaJr2
 

Similar to Data Driven Game development (20)

XNA And Silverlight
XNA And SilverlightXNA And Silverlight
XNA And Silverlight
 
Introduction to Artificial Intelligence
Introduction to Artificial IntelligenceIntroduction to Artificial Intelligence
Introduction to Artificial Intelligence
 
Making a game "Just Right" through testing and play balancing
Making a game "Just Right" through testing and play balancingMaking a game "Just Right" through testing and play balancing
Making a game "Just Right" through testing and play balancing
 
Game programming-help
Game programming-helpGame programming-help
Game programming-help
 
20131029 design your app
20131029 design your app20131029 design your app
20131029 design your app
 
Game Design Document - Step by Step Guide
Game Design Document - Step by Step GuideGame Design Document - Step by Step Guide
Game Design Document - Step by Step Guide
 
Pong
PongPong
Pong
 
Presentation 1 22nd August 2008
Presentation 1   22nd August 2008Presentation 1   22nd August 2008
Presentation 1 22nd August 2008
 
Designing a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile gamesDesigning a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile games
 
Game Engine terminology
Game Engine terminologyGame Engine terminology
Game Engine terminology
 
PHP games
PHP gamesPHP games
PHP games
 
Game design doc template
Game design doc   templateGame design doc   template
Game design doc template
 
GameTrader project
GameTrader projectGameTrader project
GameTrader project
 
gamedevelopment-devbatch-slideshare-160523134658 (1).pptx
gamedevelopment-devbatch-slideshare-160523134658 (1).pptxgamedevelopment-devbatch-slideshare-160523134658 (1).pptx
gamedevelopment-devbatch-slideshare-160523134658 (1).pptx
 
IBM Lotus Notes Domino XPages and XPages for Mobile
IBM Lotus Notes Domino XPages and XPages for MobileIBM Lotus Notes Domino XPages and XPages for Mobile
IBM Lotus Notes Domino XPages and XPages for Mobile
 
BluePrint Mobile Framework
BluePrint Mobile FrameworkBluePrint Mobile Framework
BluePrint Mobile Framework
 
Yahoo Mobile Widgets
Yahoo Mobile WidgetsYahoo Mobile Widgets
Yahoo Mobile Widgets
 
IRJET- Game Development Project – Sparta
IRJET-  	  Game Development Project – SpartaIRJET-  	  Game Development Project – Sparta
IRJET- Game Development Project – Sparta
 
Building apps for multiple devices
Building apps for multiple devicesBuilding apps for multiple devices
Building apps for multiple devices
 
Why you need game engine1.pptx
Why you need game engine1.pptxWhy you need game engine1.pptx
Why you need game engine1.pptx
 

Recently uploaded

Recently uploaded (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 

Data Driven Game development

  • 1. Kostas Anagnostou Game developer Adjunct Lecturer in Videogame Technologies
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18. Levels of Data driven development
  • 19.
  • 20.
  • 21.
  • 22.
  • 23. Hierarchical structure of XML files Level.xml spritesheets.xml animations.xml spawners.xml bonuses.xml enemies.xml explosions.xml
  • 24.
  • 25. Sample XML definitions layout <?xml version=&quot;1.0&quot;?> <spawners> <spawner type=&quot;S1LNKamikazeeHunterChase&quot; enemytype=&quot;Kamikazee_Hunter&quot; spawn=&quot;Chase&quot; animation=“ ZigZag&quot; number=&quot;6&quot; rate=&quot;2&quot; bonus=&quot;Invisibility&quot;> </spawner> </spawners> <?xml version=&quot;1.0&quot;?> <enemies> <enemy type=&quot;Kamikazee_Hunter&quot;> <parts> <part sprite=&quot;alien_kamikazee_hunter“ shield=&quot;1&quot; weapon=&quot;EnemyKamikazee1&quot; explosion=&quot;MediumExplosion&quot;> </part> </parts> </enemy> </enemies> <?xml version=&quot;1.0&quot;?> <spritesheets> <spritesheet name=&quot;spritesheet_normal.png&quot;> <sprite name=&quot;alien_kamikazee_hunter&quot;> <frames interval=&quot;0.3&quot;> <frame x=&quot;432&quot; y=&quot;96&quot; w=&quot;48&quot; h=&quot;48&quot;></frame> <frame x=&quot;0&quot; y=&quot;144&quot; w=&quot;48&quot; h=&quot;48&quot;></frame> </frames> </sprite> </spritesheet> </spritesheets> <?xml version=&quot;1.0&quot;?> <animations> <animation name=&quot;SPath&quot; type=&quot;Bezier&quot; track=&quot;Player&quot;> <parts count=“3&quot;> <part p0=&quot;0 0&quot; p1=&quot;1 0&quot; p2=&quot;1 -0.25&quot; p3=&quot;0 -0.25&quot; duration=&quot;3&quot;></part> <part p0=&quot;0 0&quot; p1=&quot;-1 0&quot; p2=&quot;-1 -0.25&quot; p3=&quot;0 -0.25&quot; duration=&quot;3&quot;></part> <part p0=&quot;0 0&quot; p1=&quot;1 0&quot; p2=&quot;1 -0.25&quot; p3=&quot;0 -0.25&quot; duration=&quot;3&quot;></part> </parts> </animation> </animations>
  • 26. Sample XML definitions layout <?xml version=&quot;1.0&quot;?> <spawners> <spawner type=&quot;S1LNKamikazeeHunterChase&quot; enemytype=&quot;Kamikazee_Hunter&quot; spawn=&quot;Chase&quot; animation=“ SPath&quot; number=&quot;6&quot; rate=&quot;2&quot; bonus=&quot;Invisibility&quot;> </spawner> </spawners> <?xml version=&quot;1.0&quot;?> <enemies> <enemy type=&quot;Kamikazee_Hunter&quot;> <parts> <part sprite=&quot;alien_kamikazee_hunter“ shield=&quot;1&quot; weapon=&quot;EnemyKamikazee1&quot; explosion=&quot;MediumExplosion&quot;> </part> </parts> </enemy> </enemies> <?xml version=&quot;1.0&quot;?> <spritesheets> <spritesheet name=&quot;spritesheet_normal.png&quot;> <sprite name=&quot;alien_kamikazee_hunter&quot;> <frames interval=&quot;0.3&quot;> <frame x=&quot;432&quot; y=&quot;96&quot; w=&quot;48&quot; h=&quot;48&quot;></frame> <frame x=&quot;0&quot; y=&quot;144&quot; w=&quot;48&quot; h=&quot;48&quot;></frame> </frames> </sprite> </spritesheet> </spritesheets> <?xml version=&quot;1.0&quot;?> <animations> <animation name=&quot;SPath&quot; type=&quot;Bezier&quot; track=&quot;Player&quot;> <parts count=“3&quot;> <part p0=&quot;0 0&quot; p1=&quot;1 0&quot; p2=&quot;1 -0.25&quot; p3=&quot;0 -0.25&quot; duration=&quot;3&quot;></part> <part p0=&quot;0 0&quot; p1=&quot;-1 0&quot; p2=&quot;-1 -0.25&quot; p3=&quot;0 -0.25&quot; duration=&quot;3&quot;></part> <part p0=&quot;0 0&quot; p1=&quot;1 0&quot; p2=&quot;1 -0.25&quot; p3=&quot;0 -0.25&quot; duration=&quot;3&quot;></part> </parts> </animation> </animations>
  • 29.
  • 30.
  • 31.
  • 32.