Upload
tamir-khason
View
1.487
Download
1
Tags:
Embed Size (px)
Citation preview
Creating a GameUsing Microsoft’s Next Generation Technologies (lvl. 300)
Tamir Khason and Alex [email protected] | [email protected]
In 1 hour we will try to create…• The Street Racing Game• … which is network multiplayer game• … that runs on XBOX• … and personal computer• … with WPF• … in web browser (later iSmoke will
come)• … also it runs on Linux• … and on mobile phone
Now the time for…
• The Street Racing Game• … which is network multiplayer game• … that runs on XBOX• … and personal computer• … with WPF• … in web browser (later iSmoke will
come)• … also it runs on Linux• … and on mobile phone
XNA FrameworkOverview
Core FrameworkCore FrameworkCore FrameworkCore Framework
GraphicsGraphicsGraphicsGraphics AudioAudioAudioAudio InputInputInputInput MathMathMathMath StorageStorageStorageStorage
NetworkingNetworking Gamer ServicesGamer Services
Extended FrameworkExtended FrameworkExtended FrameworkExtended Framework
Application ModelApplication ModelApplication ModelApplication Model Content PipelineContent PipelineContent PipelineContent Pipeline
GamesGamesGamesGames
Starter KitsStarter KitsStarter KitsStarter KitsYour CodeYour CodeYour CodeYour Code Your ContentYour ContentYour ContentYour Content ComponentsComponentsComponentsComponents
PlatformPlatformPlatformPlatform
DirectXDirectXDirectXDirectX XDKXDKXDKXDK .NET Framework.NET Framework.NET Framework.NET Framework .NET CF.NET CF.NET CF.NET CF
NetworkingNetworkingNetworkingNetworking Gamer ServicesGamer ServicesGamer ServicesGamer Services
Let’s see XNA application creation
Now the time for…
• The Street Racing Game• … which is network multiplayer game• … that runs on XBOX• … and personal computer• … with WPF• … in web browser (later iSmoke will
come)• … also it runs on Linux• … and on mobile phone
Now, we’ll make it better
Core FrameworkCore FrameworkCore FrameworkCore Framework
PlatformPlatformPlatformPlatform
DirectXDirectXDirectXDirectX XDKXDKXDKXDK .NET Framework.NET Framework.NET Framework.NET Framework .NET CF.NET CF.NET CF.NET CF
NetworkingNetworkingNetworkingNetworking
Gamer ServicesGamer ServicesGamer ServicesGamer Services
WPF Base WPF Base ServicesServices
Input & EventingInput & Eventing
AccessibilityAccessibility
XAMLXAML
Data BindingData Binding
User Interface ServicesUser Interface Services
LayoutLayout
ControlsControlsApplication servicesApplication services
Deployment servicesDeployment services
AudioAudioAudioAudio
DataData
LINQLINQ XLINQXLINQ
XNA Part harvesting
• Add XNA references• Wrap Game class• Check whether the
player is logged in• …and show login
panel if not• Seek for active
session• …and join it when
found
XNA Part transplantation
• Create new game instance
• XNA services and components
• Subscribe to game events
• Run the game
XAML/WPF implantation
• Create regular WPF Window
• Create vector map and car
• Bind to resources
• And handle user’s input
WPF implantation
• Create data dependency object, wraps XNA transplants
• Mark roads on XAML vectors
• Now we can find it by using LINQ
• And even check bounds
Let’s see it running as WPF application with XNA implants
Now the time for…
• The Street Racing Game• … which is network multiplayer game• … that runs on XBOX• … and personal computer• … with WPF• … in web browser (later iSmoke will
come)• … also it runs on Linux• … and on mobile phone
But I want it anywhere!
Core FrameworkCore FrameworkCore FrameworkCore Framework
PlatformPlatformPlatformPlatform
DirectXDirectXDirectXDirectX XDKXDKXDKXDK .NET Framework.NET Framework.NET Framework.NET Framework .NET CF.NET CF.NET CF.NET CF
NetworkingNetworkingNetworkingNetworking
Gamer ServicesGamer ServicesGamer ServicesGamer Services
WPF Base WPF Base ServicesServices
Input & EventingInput & Eventing
AccessibilityAccessibility
XAMLXAML
Data BindingData Binding
User Interface ServicesUser Interface Services
LayoutLayout
ControlsControlsApplication servicesApplication services
Deployment servicesDeployment services
AudioAudioAudioAudio
DataData
LINQLINQ XLINQXLINQ
WPF Parts harvesting
• Harvest XAML “as is”
• Add small Silverlight
• Put it into ASP.NET AJAX page
• …and connect it to XAML based “server”
ASP.NET AJAX implantation
• Create Web Method to return current players list
• Access the method from ASP.NET page with circular timer
• …and update current players’ positions in XAML scene
Silverlight 1.0 implantation
• Create XAML object in JavaScript
• Create and add it to the Silverlight scene
• …and update it’s properties from JavaScript, based on server side variables
Let’s see it playing together
Will it blend on… ?
Now the time for…
• The Street Racing Game• … which is network multiplayer game• … that runs on XBOX• … and personal computer• … with WPF• … in web browser (later iSmoke will
come)• … also it runs on Linux• … and on mobile phone
Let’s see the game on … Linux
Now the time for…
• The Street Racing Game• … which is network multiplayer game• … that runs on XBOX• … and personal computer• … with WPF• … in web browser (later iSmoke will
come)• … also it runs on Linux• … and on mobile phone
… and now on … mobile phone
Now the time for…
• The Street Racing Game• … which is network multiplayer game• … that runs on XBOX• … and personal computer• … with WPF• … in web browser (later iSmoke will
come)• … also it runs on Linux• … and on mobile phone
At the end – what others do?
Resources
• Tamir’s bloghttp://blogs.microsoft.co.il/blogs/tamir
• Alex’s bloghttp://blogs.microsoft.co.il/blogs/alex_golesh
• XNA / WPF / Silverlight resources http://xna.com http://windowsclient.net http://silverlight.net
• Next sessions in TechEd IsraelDEV350 - The Hitchhiker's Guide to WPF Data Binding (Tomer Shamam)DEV432 - Building Composite WPF Applications Using Project Codename Prism (Glenn Block, Ohad Israeli)
כדאי למלא משוב!איך ממלאים?
בעקבות מייל שישלח בסיום כל יום,•, HP במתחם Business Centerב-•בעמדות האינטרנט במלונות הילטון ודן•
!Live Itמילאת משוב? מגיעה לך חולצת מלאת משוב בשלושת ימי הכנס?
מתנת כרטיס טיסה לתאילנד יש לך הזדמנות לזכות במכשיר מתנת סמסונג, מכשיר בלאק ג'ק , BTCסוכנות
HTC ,מתנת מדיה סנטר מתנת ניופאןDataSafe...ועוד
© 2007 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only.MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.