Microsoft Windows 8 Monogame Gaming Three Thing Game


Published on

Presentation on Windows 8 and XNA games using Monogame at University of Hull #threethinggame

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Time: 1 minWelcome
  • Time: 1 minuteWe like to talk of Windows 8 as Windows reimagined with a new interface that provides unified input across touch, mouse and keyboard whilst still preserving all the great work that we did in Windows 7Indeed, everything that runs on Windows 7 still runs on Windows 8 (in the same architecture) Windows from chipset to experience with support for a new range of capabilities, scenarios and form factorsUnprecedented user reach & engagement across a wide variety of different devicesWindows 8 makes it easy for your app to scale across desktops, laptops, tablets, All-in-ones and more.
  • Time: 2 minsSo what about Windows 8 for gaming? Windows 8 provides unparalleled reach across a range of devices, from touch and pen-centered tablets with modern sensors to high-resolution laptop and desktop PCs. These different form factors represent a unique opportunity for game publishers to enable great experiences across a variety of use cases and scenarios.Highlights new capabilities in Windows 8 that are of particular importance for games, including:Sensors—Windows 8 has support for modern sensors including light, gyroscope, accelerometer, and location.Share contracts and Device contracts—New, top-level operating-system functionality makes games more social and lets them make use of nearby devices.Windows Store – lots or commerce models including makes it easy to offer a free trial without writing any code. It's the easiest way to increase conversion rates.Ability to show game controls in different layouts on large screen sizes for an optimal gaming experience.Support for different types of user interaction, including touch, pen, keyboard, and mouse.
  • Time: 30 secsSo build up excitement and anticipation
  • Time: 30 secsWe will now highlight some important ideas/capabilities that you can access using Windows 8 and the WinRT API to make your game can embrace Microsoft design style and simultaneously improve its users’ experience.
  • Time: 1 minGames vary widely in complexity when it comes to how they handle navigation and the exposure of commands and experiences. They range from simple, lightweight puzzle games with no menus or options to richly complex strategy games with tiered menus that host myriad options. Some games only have one experience for the user—the game itself—while others can host achievement screens, leader boards, multiplayer lobbies, and more. A great Windows 8 game will make sure that navigation between those experiences is a fast, fluid, and delightful experience. The navigation pattern you choose will be informed by the type of experience your game provides, so it is strongly recommended that you review both of the patterns discussed here and understand them before continuing. If you have multiple rich experiences in your game, above and beyond the actual game itself, a hierarchical pattern would be beneficial in bringing all of your content to the top level, as opposed to burying it behind menus. This way, every time your game is played, all of your carefully crafted experiences are put in front of the player. If the game is the only experience, however, consider a flat pattern that allows users to swiftly navigate between multiple sessions in the game (for example, multiple one-on-one word games against friends). Pick the appropriate pattern to help users quickly and confidently find the content they want. Oftentimes, it is not the game itself but the other content within it that help determine which model you pursue. Lets look at these in a little more detail…
  • Time: 1 minHierarchical patternThe hierarchical pattern enables you to put all of your content in front of users, delighting them and making their first experience a complete one. On your hub you can show entry points into the game itself, such as level select, new game, or continue game, as well as recent achievements, friends lists, and other areas of content, all on the same pannable surface. Each category can present content that the user can interact with directly, and section headers that can be used as navigation points to reach a deeper view of content relevant for that category. The hub can also be used to express some of the personality of your game, as shown in the example below, where the section view of the level-selection experience changes to reflect the experience of the portion of the game you’re currently viewing. The hub also provides a way to give updated and fresh content to users each time they view it, making it alive with activity even when they aren’t playing the game itself. For instance, consider the achievements experience modeled below. It divides the achievements into categories and provides information about each individual achievement all at once, telling users what it is and how close they are to unlocking it.
  • Time 1minTalk about this
  • Time: 1 minThe flat pattern is a great way to keep your game as the front-and-center experience and support seamless switching across sessions, even if there are no other heavyweight experiences within your game. Rather than taking the user to a sparse hub, simply use the top app bar as your navigation home: present the different users' sessions there and let the user move among them. If there is a preliminary state before your game is started, consider a presenting a screen that shows the user your branding and that also provides a place to identify as a “home” within the game. You don’t need to show the top app bar when your app starts. For example, Internet Explorer in the Windows Windows Store appUI experience handles this case by taking users to the web page they were last on and relying on them to swipe downAs you can see in the image, this game does not offer any experiences beyond the game sessions themselves and the means to initiate them. Rather than trying to move this small amount of functionality into a hub, the flat pattern enables this game to put all of its content in front of its users and let them quickly and confidently navigate it. their tabs to navigate.
  • Time: 2 minsLocation: on-canvas or app barIn-game controls can be found in one of two places: on the game’s canvas itself or hidden away on an app bar that the user can invoke at will. Asking yourself two questions can help determine where to put them: Will this control be used very frequently?Is this control crucial to the playing of the game?If the answer to either question is yes, consider putting the control on the canvas itself. This will ensure that the control and also how to play the game are plainly obvious to the user, and that the user is not frustrated by constantly having to invoke the app bar just to make progress in the game. CLICKHowever, if the answer to neither question applies, consider putting your control in the app bar. This avoids cluttering the canvas with buttons and controls, and leaves plenty of space for the user to interact with the game itself. This approach reduces distractions and allows the game experience to shine through. In this app, there are no controls on the canvas. Users play the game via direct manipulation. However, when they swipe up from the bottom…CLICK…the application reveals an app bar that contains a number of controls, including ways to pause the game and to change what sort of weaponry they’re using. The game developer has determined that these commands are executed infrequently and so can be hidden most of the time. Some games may have a control that is important enough to take up space on the canvas.
  • Time: 1 minIf you’re using virtual joystick or button controls on the canvas, let the user customize the size and the position of the controls, or make them relative so that they appear wherever the user puts down his or her fingers. There is no one-size-fits-all placement that is ergonomically pleasing to all users. In-game controls and interactions with them should always be at least 20 pixels from the edges of the screen so that they do not interfere with UI elements such as charms or app bars. For a default placement of a virtual joystick control, where the thumb is when the user is holding a slate. Direct manipulation is also encouraged as a means to control a game. Multi-touch supports panning and commanding at the same time, so users can do things like move their camera and shoot at the same time. Windows 8 devices may also have sensors, such as accelerometers, that can be used to interact with the game. Consider using these when they're available, but be aware that your app must provide alternative access to that functionality for PCs that do not have these sensors.Possible options for showing ergonomics:On Screen D-PadOn Screen ButtonsGeneral swipe to chop, shoot, etcDragMulti-touch
  • Time: 1 minChanges in orientation and window sizeA game can be in one of four visual states: full screen landscape and portrait, and snapped and fill. Your game should always be playable in full, fill, or portrait states, and you are strongly encouraged to make your game playable when snapped if it makes sense to do so. For instance, a puzzle game could easily be continued while in snapped state, but a first-person shooter would be impractical to play while snapped. When your game is in fill state, it should still be playable and should simply adjust its presentation to the space provided. If focus moves from the game to the snapped app, the game should pause as expected. When your game is snapped, if it can be played (even if modifications to the game's UI are necessary), we strongly encourage you to make it playable. This practice enables multitasking and lets users continue to play your game while doing other things on their system. This approach is particularly great for lightweight, casual games that can occupy the user’s attention without necessarily occupying the entire screen. For example, a user could continue solving a puzzle or playing a board game that's in snapped view. If your game is not playable in snapped view, or if it reaches a state where further progress requires more screen space, it should be paused and should explain to the user that further action is impossible until the app is no longer in snapped view. The game should not programmatically move from snapped view to become the main app independently of user action, nor should it offer a UI that has the sole purpose of moving the game move out of snapped view. It is okay to have the game change to another view in response to user action, and it is also okay to rely on the user to change it from snapped view by using the divider. For instance, your game could offer an "unpause" button that would programmatically make the game the main app as part of resuming game play. Try not to surprise the user by moving the game out of snapped view when they do not expect it. 1366x768 min to support this.
  • Time: 1 minute (2 CLICKS)and when your app is running, it’s not necessarily making direct API calls to the OS. a lot of APIs are “brokered” and that “broker” decides what to do based on a manifest that’s part of your app.There are APIs that we can’t just allow to “happen” without the user’s consent and so your application needs to say what it’s going to try and do and the user needs to be in control of that.It therefore looks at the applications manifest fileTo determine what the app is trying to access.
  • Time: 1 minuteThe app has to declare what the app wants to do ( capabilities ) which can still be turned down by the user and it also has to declare what it can do on behalf of the operating system or other apps ( i.e. declarations ).If not declared can’t use at runtime. Protect system integrity. Privacy implications of devices. System prompts the user – make sure when you use you handle this possiblity, expect they may be blocked at runtime from lack of user consent. Some have no privacy implications (e.g. sensors) don’t need to be declared.VS provides a nice graphical container.
  • Time: 2 minsthis is a huge change and one that needs understanding.In previous Windows version, user was in control of the apps lifetime – selecting to explicity kill it and could bring system to knees if too many running simultaneously.Your win 8 app is in one of 4 lifecycle states at any given time: not running, running , suspended or terminated. As your app transitions between states, it receives lifecycle events that help you provide a consistent and high performance experience to your users. All Win 8 apps move through these states as users launch apps, switch among them, and close them. Suspend – System resources focused on the app that the user is interacting with in the foregroundInactive apps have no impact on battery life or responsiveness, they are suspended by the OSEnables instant switching between apps!User can easily register for the suspend and resume events using Windows.UI.WebUI.WebUIApplication.addEventListener(‘suspending’, ‘resuming’)Suspended apps are not scheduled by the NT KernelNo CPU, Disk or Network consumedAll threads are suspendedApps remain in memoryKernel ensures apps are not suspended in critical sections that could cause system wide deadlocksApps instantly resumed from suspend when brought to foreground5 second phase to perform all operations…Termination – System needs more memoryUser closes the appSystem shutdownApps crashApps do not get notified when they are getting terminatedThere is no event fired during termination… you should save all your stuff by “suspending” … Need to think about saving and restoring state for the users info so that if they come back to the suspended app thenit is in the same place as they left it, with data refreshed.Plenty of guidance and examples online for this.
  • Time: 30 secsThe things covered so far are must-think aboutsTo make your game stand-out then you should really think about some of the ideas coming up…
  • Time: 1minTalk about how the user can pin 0, 1 or ( possibly ) more tiles on their start screen if the app offers 2ndary tiles.Talk about how those 2ndary tiles can provide launch context into the app ( jump to ‘movies’, jump to ‘theatres’ )Talk about how those tiles can display notifications; images & text badges – glyphs and numbers cycle through them ( if the user chooses to )Talk about how these also appear on the lock screen ( under the user’s control )Tiles are the “front door” to your app. A compelling live tile will draw users back into your app even when your app is not runningSecondary tiles:Differentiator from other apps in the Store, users will prefer the app with the great live tile.Tiles created by “pinning” content from app E.g user can pin weather tiles for different locations or their favorite stocks.Exposes relevant content eg.. New sci-fi films within a digital media app, local news in news app
  • Time: 1minLetting you know when it’s your turnAnnouncing new levels being available for cut the rope
  • Time: 1 minContracts A contract is like an agreement between one or more apps. Contracts define the requirements that apps must meet to participate in these unique Windows interactions.Search contract makes your app searchable from anywhere in the systemShare - People love to share, People often need data from one app in another appShare provides a lightweight, in context experience for app to app sharing Source app fills a data package (OS dealing with brokering between apps), target app processes data packageData package- Plain text, formatted URL, image, HTML, files, custom data formatSettings contract provides quick, consistent, in-context access to settings in your appPlay-to:you can help your users play digital media to connected DLNA devices from within your app. Users tap the Connect charm and then the Play To button, confident that your app will play their media to the DLNA device.Participating in this contract makes your app easy to use and encourages users to remain in your app for longer periods of timeApp-to-app: You can help users pick files from one app directly from within another app. Users gain freedom and flexibility to choose files that are stored and presented by apps.Participating in this contract helps you increase the popularity and adoption of your app
  • Time: 1min
  • Time: 1min
  • Time: 1minAll of your game’s settings, options, and Help content should be accessible via the Settings charm. The Settings charm is where all Windows 8 applications host their settings and options, and it is the natural place for users to look when they want to adjust the game’s sound effects or toggle a color-blind mode on or off. For sound, we expect that games will want to have their own, more complex sound settings (for example, separate volume sliders for music, sound effects, and voice). Use a label to make it clear that the audio settings are specific to your game. Windows 8 provides a global volume control rather than having each application control its individual volume, but games can have multiple sound sources that users will expect to be able to tune independently. As noted earlier, Help content should also be located in the Settings charm. Initial play education, such as tutorials, should be made available to ensure that users know how to play the game. An example of this can be seen here, where the app makes the tutorial part of its initial game-play experience.
  • Time: 1minExporting images from game to be background for start screenUsing music from music app to play in background of game
  • Time: 1min
  • Time: 1min
  • Time: 30 secs
  • Time: 1 minNot every game has to support pausing. Multiplayer games typically have no concept of being paused because multiple players are active at once, and games that are driven entirely by the user, with no other external factor such as a timer or clock, gain nothing by being paused. In these cases, there is no need to enter a paused state when users navigate away from the game, and going back to the game should present users with the same experience they were in before leaving if at all possible. If that's not possible (for instance, if a multiplayer gaming session has ended), the game should clearly communicate to users what state they are currently in. For games that do have meaningful pause scenarios, consider pausing when the game loses focus (for example, upon user invocation of charms or upon the appearance of a system dialog box). If the game’s visual state has changed due to rotation or being snapped, the game should continue if it is normally playable in its new state but should be paused if it is no longer playable. Additionally, include a pause button in your game. Decide on its location along with that of the other controls as discussed earlier. However, a game should not only rely on loss of focus to determine that it should pause. Communicating paused stateCommunicate to users when the game is in a paused state, either by removing them from the in-game experience and putting them back in the central hub or by presenting a pause overlay or pause screen. Don't permit interaction with the game while it is paused, except to unpause it. For puzzle, strategy, or timed games, it is advisable to obfuscate the game canvas during the pause so that users cannot gain an unfair advantage by pausing. The next example shows a game that shows its top app bar and enables navigation while the game is paused. Make it just as easy for users to unpause a game as it is to pause it. If you have a pause overlay or pause screen, it should contain some way to unpause the game. If you take a user back to a central hub, tapping the game's app tile should return the user to the game. When users unpause your game, consider giving them a moment to orient themselves before resuming the action. A countdown is a good way to do this. Separating pause from time flowWhile games that present time-flow controls—city-builder games, for example–can "pause" the flow of time, this is not the same thing as pausing the game. Pausing is the complete cessation of user interaction with the game, though some background rendering may continue so that animations continue to play.
  • Time: 30 secs
  • Time: 30 secs
  • Time 1 min
  • Time: 1min
  • Time: 2mins
  • Time: 30 secs
  • Time: 30 secs
  • Any Q&A?
  • Microsoft Windows 8 Monogame Gaming Three Thing Game

    1. 1. signing great XNA gamesfor Windows 8Dean
    2. 2. You have your greatideas and excitinggame designs…
    3. 3. Ideas for Windows 8 Casual Games
    4. 4. great Windows 8 game willmake sure that navigationbetween all experiences is afast, fluid, and delightfulexperience
    5. 5.• Makes users first experience a complete one.• Provides a great mechanism for providing users with updates/fresh content
    6. 6.• Semantic Zoom allows a user to get a different view of your data • Navigate between different levels • Quickly show unlocked content, recently released levels, or new achievements
    7. 7.• Great way to keep your game as front-and-centre experience.• Can use the top app bar as navigation home
    8. 8.• Will the control be used very frequently?• Is the control crucial to the playing of the game?
    9. 9.• Users approach tablets and touchscreens in a variety of ways• Windows 8 accommodates a multitude of interaction variations
    10. 10.
    11. 11.
    12. 12. Game gets 5s to Game is not notified handle suspend before termination UserLaunches Game Game notified when resumed Splash screen
    13. 13. Additional Ideas for your game….
    14. 14.• At-a-glance information delivery in a natural, attractive format• Draw the user back into the app with a single tap with fresh, tailored content via Live Tiles• Send tile updates even when your app isn’t running• Secondary tiles provide an entry point into a specific experience within your app• Scenarios: game-play status, latest leaderboard positions, multi-player messages, game news
    15. 15.••••
    16. 16.
    17. 17. users with a familiar andnatural way to search for itemsacross game.Scenarios:• A friend to start a multiplayer game against.• A user name on a leader board.• An achievement.• A specific level in a game with many levels.
    18. 18. a way to connect theplayer of your game to their socialnetworks, friends, or other apps.From your game:• Sharing game levels, high scores, screenshots, custom objects etc.To your game:• Receiving in-game content, images, video etc.
    19. 19. settings charm provides afamiliar and consistent way tomodify an apps settingsMore settings menus can beadded for account managementor game specific menus.Scenarios:User-account info, helpcontent, controlmappings, notificationsettings, about app info, supportinfo etc.
    20. 20. allows your game to share it’scontent with other apps seamlessly andconsistently.• The file picker makes it easy to organize content. You can also access content from other appsScenarios:• Exporting images from game to start screen background,• using music from music app for game.
    21. 21. your experience beyondWindows 8 and push yourcontent to devices on your localnetwork.The ‘PlayTo’ feature allows relevantcontrols to be accessed on thefirst device without compromisingthe display on the other.
    22. 22.
    23. 23.• Many games may take longer than the expected couple of seconds to load.• If thats true of your game, ensure that you provide some sort of indication to the user that the game is actively loading
    24. 24.• Communicate to users when the game is in a paused state:• removing them from the in- game experience and putting them back in the central hub• or by presenting a pause overlay or pause screen
    25. 25. are a crucialcomponent for game enthusiasts.The competition factor keepsusers engaged in your game andencourages other users in theirnetwork to return and maintaintheir rankings.Utilise location services to accesslocal standings.
    26. 26. engagement beyondstandard gameplay withachievements.Utilize weight, color and size todistinguish between items that areclose to being completed.
    27. 27.• Most people have more than one Windows PC.• Make your game a continuous and consistent user experience across all their Windows 8 PCsRoaming Scenarios:• Game settings and configuration• App licenses and in-app purchases from the Windows Store
    28. 28.• Windows Azure Mobile Services makes it incredibly easy to connect scalable cloud backend to your games.• Easily store structured data in the cloud that can span both devices and users,• Integrate it with user authentication• Send out updates to clients via push notifications
    29. 29. for discovery• Spotlight, Recommend, Browse/Fil er, Search• IE10 & Deep linksUnprecedented reach• Global reach: 200+ markets,• 100+ languagesFlexible business models• Free, paid, in-app, trials• 3rd party in-app & advertising supportPricing• Developers control pricing• Up to 80% revenue share
    30. 30. http:// 8 Samples 8 Store Apps API 8 Store Apps Dev Blog 8 Store Apps Forums
    31. 31. • Good luck with the Three Thing Game!• Thank you for your enthusiasm, support and ideas!• Looking forward to seeing some great games!Post Three Thing Game:• Register for a Windows 8 Developer Store account DreamSpark members have FREE Windows Store subscription!• Build and sell great W8 store apps/games!
    32. 32. •Dominique Louis – Xamarin•Dean Ellis – Xamarin(soon)
    33. 33. Agenda  Overview  History  Games  Porting  Demos  Questions
    34. 34. XNA 4.0 Supported Platforms XNA .NET 4.0 DirectX 9/11Windows Phone 7 Windows Xbox 360
    35. 35. Introducing MonoGameOpenSource implementation of XNA 4 API 2D SpriteBatch 3D (APIs and Model Loading) Load Existing XNA compiled assets (*.xnb) Sound and Music Input (Mouse, Keyboard, Touch, Gamepad) Effects (Basic Effects & Some Custom Shaders) Write Once, Play Everywhere
    36. 36. Introducing MonoGameOnly way to get your XNA game onto Windows 8!Actively being developed and promoted by core team members Me, Dean ( Xamarin ) Tom & his team ( Sickhead Games ) Steve ( Konaju Games ) Aranda ( Gnomic Studios ) EspesHigh Code Re-use Write Once, Play Everywhere
    37. 37. Brief History of MonoGame?Project Started in June 2009 as XNATouch by JalfxI joined on October 26th 2009 ( co-incidence?? )Dec 2009 – v0.7 (2D and iOS only)Oct 2011 - v2.0 ( Added 2 platforms, Renamed to MonoGame)Dec 2011 - v2.1Feb 2012 – (3D codedrop from Flying Dev Studios)March 2012 – 2.5 (Tom and Sickhead Games)June 2012 -2.5.1 (11,000 downloads)October 2012 – 3.0 BETA(available now!)
    38. 38. Contributing Companies
    39. 39. Contributing individuals Oliver Brown Dean Ellis Tophathacker Koda Turtle Games David Lively Carl Ådahl Tom Spilman NielClancey Marshall Ward Grapes Nezz Randolph Burt Espes Danzel Javier Fernandez Nicolas Coderre Thiago Pastor Adrian Batzill Inverness Edward Rudd Akshay Arora Andre Esteve Raistlinthewiz David Leaver Jeff JohnsonJames Lupiani Christian Zangl Jorge Cantón Ferrero Mgroves Steve Sly Williams Geoff Norton Jordan Phillips Tom Gooding Dominique Louis Jamesford42 Taskbit Tapani Värjölä Deathcradle Jeremy Bell Lukas Jadaml Ádám L. Juhász Ray Batts Renaud Bédard Nicolas LeonardJhllnd Kenneth Pouncey Write Once, Play Everywhere
    40. 40. The Future Embracing XNA: APIs, Shaders etc Extend: New platforms, APIs, Features Open: You can make it better or customize it for your game XNA was a great foundation MonoGame will continue to take it to new levels Write Once, Play Everywhere
    41. 41. MonoGame Supported Platforms MonoGame Windows8 Xamarin Xamarin .NET 4.5 NET 4.0 MonoTouch Mono for Mono Android SharpDX Direct X OpenGL / OpenAL
    42. 42. Future Platforms In Progress PlayStation Mobile 2D Working In Progress Raspberry Pi 2D, 3D Google Chrome Planned Windows Phone 8 Planned Ouya Planned
    43. 43. High Code Re-use Xamarin compilers enable developers to build fully native iOS and Android games and apps in C#, that can share code with Windows apps. Through code re-use and sharing, and by unifying mobile app development in C#, Xamarin makes it possible to deliver gorgeous, performant, native apps for all major device platforms quickly
    44. 44. Games
    45. 45. Commercial games we know of iOS*  30+ Android*  15+ MacOS, Linux  10+ Windows 8 • 10+ Chrome  Bastion*Xamarin compilers makes it possible for MonoGame titles to reach iOS and Android users. Write Once, Play Everywhere
    46. 46. Windows 8 Games
    47. 47. Porting to MonoGame Project Setup  From scratch : ~30-60 minutes  With Templates : ~15 minutes Platform Specific  Resolutions  Sound/Video Minimal #ifdefs Write Once, Play Everywhere
    48. 48. Things to think aboutIts Being used in AAA games Its Extendable Its Growing(games, developers, platforms) Its In your hands Its Nnow supported by Microsoft Its Currently the only way to Windows 8 Its OpenSource Its Active Lots of examples Write Once, Play Everywhere
    49. 49. Demo
    50. 50. Why Games.... Demand Most titles in the Windows Phone apps store are entertainment and utility apps Customers are downloading more games than any other type of app Customers are willing to spend money for the privilege There is an opportunity here to give customers what they want
    51. 51. Type of Games.... Freemium games do better than paid games Action games are the best bet to turn a quick buck Strategy games dominate long-term Simulation games account for the second largest share. Opportunity to carve out a niche ( grow your fan base ) * Taken from
    52. 52. Summary Games are the #1 download and #1 money making app category Pick your niche, grow from there MonoGame provides a solution to get your cross platform game running as a Windows 8 Store App MonoGame provides a cross platform solution so that you can leverage your existing XNA development effort, across multiple marketplaces (iOS, Android, MacOS, Linux, PlayStation Mobile... (top secret) ) Follow the certification guidelines (WACK) to make your app Windows 8 Store ready
    53. 53. ContactDean EllisSite : : : @InfSpaceStudiosDominique LouisEmail : dominique@xamarin.comTwitter : @SoftSavage
    54. 54. Questions ??MonoGameSite : www.monogame.netRepo : (fork away)Twitter : @MonoGameTeamYoutube : : www.mono-project.comRepo : : www.xamarin.comTwitter : @XamarinHQ