SlideShare a Scribd company logo
1 of 37
Developing WP7 Appswith Silverlight José Luis Latorre Microsoft MVP, UX Specialist & Brainsiders CEO http://silverlightguy.com
Generalni sponzori: Organizatori: Glavni sponzori: Generalni medijski sponzor: Sponzori: Medijski sponzori: Strateški partneri: Službena PR agencija:
Gameswith Silverlight? Why?
Silverlight is for games? Concretely, Silverlight isgood for casual gamesthatdoesn’trequireintensivegraphiccapabilities.  Wehavethefactthat: Playerslove casual games (simple & easyto pick up and putdown). Phone platforms are great for this Silverlight isgreat for this.
Why Silverlight   Compelling Cross-Platform User Experience Flexible object-oriented model Fully managed code to improve encapsulation and centralization Declarative presentation language (Xaml) Role specific tools Rapid application development  Good performance
Whatkind of games? Word games Desk games Turn based strategy games Pictorial games Platform games Touch interaction games If this is what you want to write there might be no need to learn XNA..
The Game Loop
Game Loop I ,[object Object]
 Executes once per frame
 It handles all the game logic, animation, Collisions, manages input, applies game logic, etc.
 Optimal game loop in Silverlight is usually implemented with CompositionTarget.Rendering, which executes once per rendered frame.
Final Hardware will execute 30 Frames Per Second
For details on deciding the Game Loop implementation, check http://nokola.com/ and its ”GameLoopsInSilverlight.docx” document. ,[object Object]
Game loop III protectedDateTimelastTick;     public Page() { InitializeComponent(); CompositionTarget.Rendering += new EventHandler(CompositionTarget_Rendering); lastTick = DateTime.Now; } void CompositionTarget_Rendering(object sender, EventArgs e) { DateTimenow = DateTime.Now; TimeSpanelapsed = now - lastTick; lastTick = now;     //Game Logicgoeshere }
Sprites The game characters can be represented by Sprites, which are usually represented by an image and a position on the game surface. So they have: Image. Position. Vector of movement. Other details, depending on the game.
Animated Sprites An animated sprite is the natural evolution as it can show an animation instead of a still image, which is good if the player is walking, to show a walking animation.  So they have, additionally from the Sprite: An animation or sequence of images, also called Frames. Speed of the animation ( frames per second) Number of Frames.
Game character A game character derives from a sprite or animated sprite and represents a game element, the player, an enemy, bonus, obstacle, etc.. It usually has its own logic and is tied to events that determine its behavior.
Sprite, Camera, Action (link to demo) Note: This demo isderivedfrom a samplefrom Andy Bealieu.
Collisions I If two sprites (or animated sprites) collide, for example the player and a enemy, something must happen!! For this, we must know if there is a collision between both sprites. Usually a calculation of the bounding boxes will be enough.
Collisions II First, we need the bounding boxes of the two elements we want to discover if they have collided: public static RectUserControlBounds(FrameworkElement control) { Point ptTopLeft = new Point(Convert.ToDouble(control.GetValue(Canvas.LeftProperty)), Convert.ToDouble(control.GetValue(Canvas.TopProperty))); Point ptBottomRight = new Point(Convert.ToDouble(control.GetValue(Canvas.LeftProperty)) + control.Width, Convert.ToDouble(control.GetValue(Canvas.TopProperty)) + control.Height); returnnew Rect(ptTopLeft, ptBottomRight); }
Collisions III Next we validate if both bounding boxes overlap each other: public static boolRectIntersect(Rectangle rectangle1, Rectangle rectangle2) { return (((double)rectangle1.GetValue(Canvas.LeftProperty) <= (double)rectangle2.GetValue(Canvas.LeftProperty) + rectangle2.Width)         && ((double)rectangle1.GetValue(Canvas.LeftProperty) + rectangle1.Width >= (double)rectangle2.GetValue(Canvas.LeftProperty))         && ((double)rectangle1.GetValue(Canvas.TopProperty) <= (double)rectangle2.GetValue(Canvas.TopProperty) + rectangle2.Height)         && ((double)rectangle1.GetValue(Canvas.TopProperty) + rectangle1.Height >= (double)rectangle2.GetValue(Canvas.TopProperty))); }
Input
Input via Buttons Back – Start – Search Only NOT usable for Games!
Input via Touch ,[object Object]
ManipulationStarted
ManipulationDelta
ManipulationCompleted
Supported in Emulator
Requires Multitouch Monitor,[object Object]
 Can be faked using Mouse Input + Perspective Transform-Z -X +X +Z -Y
Alltogethernow!! – A shootinggame (link to demo) Note: This demo isderivedfroma greatsamplefromMatthew Casperson.
Otherpoints
Performance Statistics ,[object Object],A – Render Thread Framerate B – UI Thread Framerate C – Amount of Video Memory Used D – Total # of Textures Used E – Total # of Intermediate Textures Used ,[object Object]
Tinted items are NOT being cached by GPU,[object Object]
StoryBoardAnimations

More Related Content

What's hot

Run and jump tutorial (part 1) actors
Run and jump tutorial (part 1)   actorsRun and jump tutorial (part 1)   actors
Run and jump tutorial (part 1) actorsMuhd Basheer
 
Final design
Final designFinal design
Final designBek999
 
Introduction to Game Programming: Using C# and Unity 3D - Chapter 7 (Preview)
Introduction to Game Programming: Using C# and Unity 3D - Chapter 7 (Preview)Introduction to Game Programming: Using C# and Unity 3D - Chapter 7 (Preview)
Introduction to Game Programming: Using C# and Unity 3D - Chapter 7 (Preview)noorcon
 
Scratch for kids syllabus for 5 hours by bibek pandit
Scratch for kids syllabus for 5 hours by bibek panditScratch for kids syllabus for 5 hours by bibek pandit
Scratch for kids syllabus for 5 hours by bibek panditBibekPandit2
 
Introduction to Game Programming: Using C# and Unity 3D - Chapter 2 (Preview)
Introduction to Game Programming: Using C# and Unity 3D - Chapter 2 (Preview)Introduction to Game Programming: Using C# and Unity 3D - Chapter 2 (Preview)
Introduction to Game Programming: Using C# and Unity 3D - Chapter 2 (Preview)noorcon
 
Artificial intelligence games
Artificial intelligence gamesArtificial intelligence games
Artificial intelligence gamesSujithmlamthadam
 
Game Playing in Artificial Intelligence
Game Playing in Artificial IntelligenceGame Playing in Artificial Intelligence
Game Playing in Artificial Intelligencelordmwesh
 
Task two workflow by tom crook
Task two workflow by tom crookTask two workflow by tom crook
Task two workflow by tom crookTomCrook
 
Artificial intelligence In Modern-Games.
Artificial intelligence In Modern-Games. Artificial intelligence In Modern-Games.
Artificial intelligence In Modern-Games. Nitish Kavishetti
 
libGDX: User Input and Frame by Frame Animation
libGDX: User Input and Frame by Frame AnimationlibGDX: User Input and Frame by Frame Animation
libGDX: User Input and Frame by Frame AnimationJussi Pohjolainen
 
Game playing in artificial intelligent technique
Game playing in artificial intelligent technique Game playing in artificial intelligent technique
Game playing in artificial intelligent technique syeda zoya mehdi
 
Introduction To 3D Gaming
Introduction To 3D GamingIntroduction To 3D Gaming
Introduction To 3D GamingClint Edmonson
 
Pre production
Pre productionPre production
Pre productionliamrig95
 
Project on ai gaming
Project on ai gamingProject on ai gaming
Project on ai gamingRoshan Panday
 
A guide to make your own film animation short film
A guide to make your own film animation short filmA guide to make your own film animation short film
A guide to make your own film animation short filmAnimation Kolkata
 
Chapt 5 behaviors and attributes
Chapt 5   behaviors and attributesChapt 5   behaviors and attributes
Chapt 5 behaviors and attributesMuhd Basheer
 

What's hot (20)

Run and jump tutorial (part 1) actors
Run and jump tutorial (part 1)   actorsRun and jump tutorial (part 1)   actors
Run and jump tutorial (part 1) actors
 
Final design
Final designFinal design
Final design
 
Introduction to Game Programming: Using C# and Unity 3D - Chapter 7 (Preview)
Introduction to Game Programming: Using C# and Unity 3D - Chapter 7 (Preview)Introduction to Game Programming: Using C# and Unity 3D - Chapter 7 (Preview)
Introduction to Game Programming: Using C# and Unity 3D - Chapter 7 (Preview)
 
Scratch for kids syllabus for 5 hours by bibek pandit
Scratch for kids syllabus for 5 hours by bibek panditScratch for kids syllabus for 5 hours by bibek pandit
Scratch for kids syllabus for 5 hours by bibek pandit
 
Introduction to Game Programming: Using C# and Unity 3D - Chapter 2 (Preview)
Introduction to Game Programming: Using C# and Unity 3D - Chapter 2 (Preview)Introduction to Game Programming: Using C# and Unity 3D - Chapter 2 (Preview)
Introduction to Game Programming: Using C# and Unity 3D - Chapter 2 (Preview)
 
AI Lecture 5 (game playing)
AI Lecture 5 (game playing)AI Lecture 5 (game playing)
AI Lecture 5 (game playing)
 
GameMaker Workflow
GameMaker WorkflowGameMaker Workflow
GameMaker Workflow
 
Artificial intelligence games
Artificial intelligence gamesArtificial intelligence games
Artificial intelligence games
 
Game Playing in Artificial Intelligence
Game Playing in Artificial IntelligenceGame Playing in Artificial Intelligence
Game Playing in Artificial Intelligence
 
Task two workflow by tom crook
Task two workflow by tom crookTask two workflow by tom crook
Task two workflow by tom crook
 
Artificial intelligence In Modern-Games.
Artificial intelligence In Modern-Games. Artificial intelligence In Modern-Games.
Artificial intelligence In Modern-Games.
 
libGDX: User Input and Frame by Frame Animation
libGDX: User Input and Frame by Frame AnimationlibGDX: User Input and Frame by Frame Animation
libGDX: User Input and Frame by Frame Animation
 
Kinect Swords (2011 Version)
Kinect Swords (2011 Version)Kinect Swords (2011 Version)
Kinect Swords (2011 Version)
 
Adversarial search
Adversarial search Adversarial search
Adversarial search
 
Game playing in artificial intelligent technique
Game playing in artificial intelligent technique Game playing in artificial intelligent technique
Game playing in artificial intelligent technique
 
Introduction To 3D Gaming
Introduction To 3D GamingIntroduction To 3D Gaming
Introduction To 3D Gaming
 
Pre production
Pre productionPre production
Pre production
 
Project on ai gaming
Project on ai gamingProject on ai gaming
Project on ai gaming
 
A guide to make your own film animation short film
A guide to make your own film animation short filmA guide to make your own film animation short film
A guide to make your own film animation short film
 
Chapt 5 behaviors and attributes
Chapt 5   behaviors and attributesChapt 5   behaviors and attributes
Chapt 5 behaviors and attributes
 

Viewers also liked

iaa 2009 + vicente perez, mikel larios, mikel sanz
iaa 2009 + vicente perez, mikel larios, mikel sanziaa 2009 + vicente perez, mikel larios, mikel sanz
iaa 2009 + vicente perez, mikel larios, mikel sanzvicente46
 
Daily Bike Commute Sf Bay Area
Daily Bike Commute Sf Bay AreaDaily Bike Commute Sf Bay Area
Daily Bike Commute Sf Bay Areaguest77208866
 
Úkrania
ÚkraniaÚkrania
Úkraniajanusg
 
01. Negotiating Presentation For The Seminar Generic 2009 September Beta Rele...
01. Negotiating Presentation For The Seminar Generic 2009 September Beta Rele...01. Negotiating Presentation For The Seminar Generic 2009 September Beta Rele...
01. Negotiating Presentation For The Seminar Generic 2009 September Beta Rele...Pozzolini
 
Introduction To OpenMI
Introduction To OpenMIIntroduction To OpenMI
Introduction To OpenMIJan Gregersen
 
Collierville Photography
Collierville PhotographyCollierville Photography
Collierville Photographychuck1229
 
Voting Lobbying And Agencies
Voting Lobbying And AgenciesVoting Lobbying And Agencies
Voting Lobbying And Agenciesmtoto
 
Edf Ht 42 01 016 A Programme Mecazir RéSultats Des Essais D
Edf Ht 42 01 016 A  Programme Mecazir RéSultats Des Essais DEdf Ht 42 01 016 A  Programme Mecazir RéSultats Des Essais D
Edf Ht 42 01 016 A Programme Mecazir RéSultats Des Essais Dguestc31bf2d
 
Velvet Revolution Party, New York 2008
Velvet Revolution Party, New York 2008Velvet Revolution Party, New York 2008
Velvet Revolution Party, New York 2008eva.klanduchova
 
Central Asian countries
Central Asian countriesCentral Asian countries
Central Asian countriesinvestoralist
 
Iia 2009 International Conference Securing Global Talent Mary Anne Burke
Iia 2009 International Conference  Securing Global Talent Mary Anne BurkeIia 2009 International Conference  Securing Global Talent Mary Anne Burke
Iia 2009 International Conference Securing Global Talent Mary Anne Burkemaryanneburke
 
Emotional design
Emotional designEmotional design
Emotional designKarla Feria
 
Преподавание информационных технологий в ВУЗе: как вырастить специалиста-прак...
Преподавание информационных технологий в ВУЗе: как вырастить специалиста-прак...Преподавание информационных технологий в ВУЗе: как вырастить специалиста-прак...
Преподавание информационных технологий в ВУЗе: как вырастить специалиста-прак...Grigoriy Pechenkin
 

Viewers also liked (20)

iaa 2009 + vicente perez, mikel larios, mikel sanz
iaa 2009 + vicente perez, mikel larios, mikel sanziaa 2009 + vicente perez, mikel larios, mikel sanz
iaa 2009 + vicente perez, mikel larios, mikel sanz
 
Daily Bike Commute Sf Bay Area
Daily Bike Commute Sf Bay AreaDaily Bike Commute Sf Bay Area
Daily Bike Commute Sf Bay Area
 
Úkrania
ÚkraniaÚkrania
Úkrania
 
01. Negotiating Presentation For The Seminar Generic 2009 September Beta Rele...
01. Negotiating Presentation For The Seminar Generic 2009 September Beta Rele...01. Negotiating Presentation For The Seminar Generic 2009 September Beta Rele...
01. Negotiating Presentation For The Seminar Generic 2009 September Beta Rele...
 
Kubo kubu
Kubo kubuKubo kubu
Kubo kubu
 
Introduction To OpenMI
Introduction To OpenMIIntroduction To OpenMI
Introduction To OpenMI
 
Collierville Photography
Collierville PhotographyCollierville Photography
Collierville Photography
 
levantera
levanteralevantera
levantera
 
Voting Lobbying And Agencies
Voting Lobbying And AgenciesVoting Lobbying And Agencies
Voting Lobbying And Agencies
 
Caims 2009
Caims 2009Caims 2009
Caims 2009
 
2009.05 CRM Quidgest - Jose Torres
2009.05 CRM Quidgest - Jose Torres2009.05 CRM Quidgest - Jose Torres
2009.05 CRM Quidgest - Jose Torres
 
Edf Ht 42 01 016 A Programme Mecazir RéSultats Des Essais D
Edf Ht 42 01 016 A  Programme Mecazir RéSultats Des Essais DEdf Ht 42 01 016 A  Programme Mecazir RéSultats Des Essais D
Edf Ht 42 01 016 A Programme Mecazir RéSultats Des Essais D
 
Velvet Revolution Party, New York 2008
Velvet Revolution Party, New York 2008Velvet Revolution Party, New York 2008
Velvet Revolution Party, New York 2008
 
Imagenes
ImagenesImagenes
Imagenes
 
Central Asian countries
Central Asian countriesCentral Asian countries
Central Asian countries
 
Proceso Matriz
Proceso MatrizProceso Matriz
Proceso Matriz
 
Job quitting
Job quittingJob quitting
Job quitting
 
Iia 2009 International Conference Securing Global Talent Mary Anne Burke
Iia 2009 International Conference  Securing Global Talent Mary Anne BurkeIia 2009 International Conference  Securing Global Talent Mary Anne Burke
Iia 2009 International Conference Securing Global Talent Mary Anne Burke
 
Emotional design
Emotional designEmotional design
Emotional design
 
Преподавание информационных технологий в ВУЗе: как вырастить специалиста-прак...
Преподавание информационных технологий в ВУЗе: как вырастить специалиста-прак...Преподавание информационных технологий в ВУЗе: как вырастить специалиста-прак...
Преподавание информационных технологий в ВУЗе: как вырастить специалиста-прак...
 

Similar to Md2010 jl-wp7-sl-game-dev

Silverlight as a Gaming Platform
Silverlight as a Gaming PlatformSilverlight as a Gaming Platform
Silverlight as a Gaming Platformgoodfriday
 
Game engine terminology/glossary
Game engine terminology/glossaryGame engine terminology/glossary
Game engine terminology/glossarygordonpj96
 
The Ring programming language version 1.7 book - Part 53 of 196
The Ring programming language version 1.7 book - Part 53 of 196The Ring programming language version 1.7 book - Part 53 of 196
The Ring programming language version 1.7 book - Part 53 of 196Mahmoud Samir Fayed
 
The Ring programming language version 1.2 book - Part 36 of 84
The Ring programming language version 1.2 book - Part 36 of 84The Ring programming language version 1.2 book - Part 36 of 84
The Ring programming language version 1.2 book - Part 36 of 84Mahmoud Samir Fayed
 
Joshua meyer y1 gd engine_terminology
Joshua meyer y1 gd engine_terminologyJoshua meyer y1 gd engine_terminology
Joshua meyer y1 gd engine_terminologyJoshCollege
 
Production RPG Maker.
Production RPG Maker. Production RPG Maker.
Production RPG Maker. Jordi Martos
 
The Ring programming language version 1.4 book - Part 14 of 30
The Ring programming language version 1.4 book - Part 14 of 30The Ring programming language version 1.4 book - Part 14 of 30
The Ring programming language version 1.4 book - Part 14 of 30Mahmoud Samir Fayed
 
Galactic Wars XNA Game
Galactic Wars XNA GameGalactic Wars XNA Game
Galactic Wars XNA GameSohil Gupta
 
daryl bates engine terminology finished
daryl bates engine terminology finisheddaryl bates engine terminology finished
daryl bates engine terminology finishedDarylBatesGames
 
Vwl art pipeline explained----2
Vwl art pipeline explained----2Vwl art pipeline explained----2
Vwl art pipeline explained----2Marx Myth
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminologyShaz Riches
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminologyShaz Riches
 
Game development with Cocos2d-x Engine
Game development with Cocos2d-x EngineGame development with Cocos2d-x Engine
Game development with Cocos2d-x EngineDuy Tan Geek
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminologyJordanianmc
 
The Ring programming language version 1.5.3 book - Part 58 of 184
The Ring programming language version 1.5.3 book - Part 58 of 184The Ring programming language version 1.5.3 book - Part 58 of 184
The Ring programming language version 1.5.3 book - Part 58 of 184Mahmoud Samir Fayed
 

Similar to Md2010 jl-wp7-sl-game-dev (20)

intern.pdf
intern.pdfintern.pdf
intern.pdf
 
Unity
UnityUnity
Unity
 
Silverlight as a Gaming Platform
Silverlight as a Gaming PlatformSilverlight as a Gaming Platform
Silverlight as a Gaming Platform
 
Game engine terminology/glossary
Game engine terminology/glossaryGame engine terminology/glossary
Game engine terminology/glossary
 
The Ring programming language version 1.7 book - Part 53 of 196
The Ring programming language version 1.7 book - Part 53 of 196The Ring programming language version 1.7 book - Part 53 of 196
The Ring programming language version 1.7 book - Part 53 of 196
 
The Ring programming language version 1.2 book - Part 36 of 84
The Ring programming language version 1.2 book - Part 36 of 84The Ring programming language version 1.2 book - Part 36 of 84
The Ring programming language version 1.2 book - Part 36 of 84
 
Joshua meyer y1 gd engine_terminology
Joshua meyer y1 gd engine_terminologyJoshua meyer y1 gd engine_terminology
Joshua meyer y1 gd engine_terminology
 
CreateJS
CreateJSCreateJS
CreateJS
 
Production RPG Maker.
Production RPG Maker. Production RPG Maker.
Production RPG Maker.
 
Sprite js vs craftyjs
Sprite js vs craftyjsSprite js vs craftyjs
Sprite js vs craftyjs
 
The Ring programming language version 1.4 book - Part 14 of 30
The Ring programming language version 1.4 book - Part 14 of 30The Ring programming language version 1.4 book - Part 14 of 30
The Ring programming language version 1.4 book - Part 14 of 30
 
Galactic Wars XNA Game
Galactic Wars XNA GameGalactic Wars XNA Game
Galactic Wars XNA Game
 
daryl bates engine terminology finished
daryl bates engine terminology finisheddaryl bates engine terminology finished
daryl bates engine terminology finished
 
Vwl art pipeline explained----2
Vwl art pipeline explained----2Vwl art pipeline explained----2
Vwl art pipeline explained----2
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminology
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminology
 
Game development with Cocos2d-x Engine
Game development with Cocos2d-x EngineGame development with Cocos2d-x Engine
Game development with Cocos2d-x Engine
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminology
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminology
 
The Ring programming language version 1.5.3 book - Part 58 of 184
The Ring programming language version 1.5.3 book - Part 58 of 184The Ring programming language version 1.5.3 book - Part 58 of 184
The Ring programming language version 1.5.3 book - Part 58 of 184
 

Recently uploaded

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
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...Drew Madelung
 
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 RobisonAnna Loughnan Colquhoun
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Recently uploaded (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
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...
 
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
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

Md2010 jl-wp7-sl-game-dev

  • 1.
  • 2. Developing WP7 Appswith Silverlight José Luis Latorre Microsoft MVP, UX Specialist & Brainsiders CEO http://silverlightguy.com
  • 3.
  • 4. Generalni sponzori: Organizatori: Glavni sponzori: Generalni medijski sponzor: Sponzori: Medijski sponzori: Strateški partneri: Službena PR agencija:
  • 6. Silverlight is for games? Concretely, Silverlight isgood for casual gamesthatdoesn’trequireintensivegraphiccapabilities. Wehavethefactthat: Playerslove casual games (simple & easyto pick up and putdown). Phone platforms are great for this Silverlight isgreat for this.
  • 7. Why Silverlight Compelling Cross-Platform User Experience Flexible object-oriented model Fully managed code to improve encapsulation and centralization Declarative presentation language (Xaml) Role specific tools Rapid application development Good performance
  • 8. Whatkind of games? Word games Desk games Turn based strategy games Pictorial games Platform games Touch interaction games If this is what you want to write there might be no need to learn XNA..
  • 10.
  • 11. Executes once per frame
  • 12. It handles all the game logic, animation, Collisions, manages input, applies game logic, etc.
  • 13. Optimal game loop in Silverlight is usually implemented with CompositionTarget.Rendering, which executes once per rendered frame.
  • 14. Final Hardware will execute 30 Frames Per Second
  • 15.
  • 16. Game loop III protectedDateTimelastTick; public Page() { InitializeComponent(); CompositionTarget.Rendering += new EventHandler(CompositionTarget_Rendering); lastTick = DateTime.Now; } void CompositionTarget_Rendering(object sender, EventArgs e) { DateTimenow = DateTime.Now; TimeSpanelapsed = now - lastTick; lastTick = now; //Game Logicgoeshere }
  • 17. Sprites The game characters can be represented by Sprites, which are usually represented by an image and a position on the game surface. So they have: Image. Position. Vector of movement. Other details, depending on the game.
  • 18. Animated Sprites An animated sprite is the natural evolution as it can show an animation instead of a still image, which is good if the player is walking, to show a walking animation. So they have, additionally from the Sprite: An animation or sequence of images, also called Frames. Speed of the animation ( frames per second) Number of Frames.
  • 19. Game character A game character derives from a sprite or animated sprite and represents a game element, the player, an enemy, bonus, obstacle, etc.. It usually has its own logic and is tied to events that determine its behavior.
  • 20. Sprite, Camera, Action (link to demo) Note: This demo isderivedfrom a samplefrom Andy Bealieu.
  • 21. Collisions I If two sprites (or animated sprites) collide, for example the player and a enemy, something must happen!! For this, we must know if there is a collision between both sprites. Usually a calculation of the bounding boxes will be enough.
  • 22. Collisions II First, we need the bounding boxes of the two elements we want to discover if they have collided: public static RectUserControlBounds(FrameworkElement control) { Point ptTopLeft = new Point(Convert.ToDouble(control.GetValue(Canvas.LeftProperty)), Convert.ToDouble(control.GetValue(Canvas.TopProperty))); Point ptBottomRight = new Point(Convert.ToDouble(control.GetValue(Canvas.LeftProperty)) + control.Width, Convert.ToDouble(control.GetValue(Canvas.TopProperty)) + control.Height); returnnew Rect(ptTopLeft, ptBottomRight); }
  • 23. Collisions III Next we validate if both bounding boxes overlap each other: public static boolRectIntersect(Rectangle rectangle1, Rectangle rectangle2) { return (((double)rectangle1.GetValue(Canvas.LeftProperty) <= (double)rectangle2.GetValue(Canvas.LeftProperty) + rectangle2.Width) && ((double)rectangle1.GetValue(Canvas.LeftProperty) + rectangle1.Width >= (double)rectangle2.GetValue(Canvas.LeftProperty)) && ((double)rectangle1.GetValue(Canvas.TopProperty) <= (double)rectangle2.GetValue(Canvas.TopProperty) + rectangle2.Height) && ((double)rectangle1.GetValue(Canvas.TopProperty) + rectangle1.Height >= (double)rectangle2.GetValue(Canvas.TopProperty))); }
  • 24. Input
  • 25. Input via Buttons Back – Start – Search Only NOT usable for Games!
  • 26.
  • 31.
  • 32. Can be faked using Mouse Input + Perspective Transform-Z -X +X +Z -Y
  • 33. Alltogethernow!! – A shootinggame (link to demo) Note: This demo isderivedfroma greatsamplefromMatthew Casperson.
  • 35.
  • 36.
  • 38. Perspective 3D (PlaneProjections) – but only if they are applied by Storyboard animations.
  • 39. Uses Video Card for Transform, Rotate, Scale, Rectangular Clip
  • 40.
  • 42. Monetization Try and buy Detailed product description Screen shots Reviews & ratings Related apps Optional game content rating More apps by developer
  • 43. Monetization 70% revenue share Trial API Credit card & mobile operator billing Paid, ad funded and free apps
  • 44. Deployment Process Develop & Debug Submit& Validate Certify & Sign Windows Phone Application Deployment Service Marketplace
  • 46. Good resources http://www.andybeaulieu.com http://www.farseergames.com/blog/ http://blogs.silverarcade.com/silverlight-games-101/ http://forums.silverlight.net/ http://laumania.net/?tag=/game+development http://expression.microsoft.com/en-us/dd835381.aspx http://www.bluerosegames.com/brg/silverlight_game_development.aspx http://Silverlightguy.com
  • 47. Cool games, samples & tuts http://silverarcade.com/games/InnoveWare/quakelight http://dobbschallenge2.com/ http://silverarcade.com/games/ddtmm/vsa http://www.mashooo.com/SilverlightGames/Tire_Storm.aspx http://dl.dropbox.com/u/2681028/CodeplexData/WriteableBitmapEx/BlitSample/TestPage.html http://www.brighthub.com/internet/web-development/articles/14494.aspx
  • 48.

Editor's Notes

  1. 2.1