SlideShare a Scribd company logo
1 of 29
Vývoj her pro Windows 8
                pomocí MonoGame




Tomáš Slavíček
MVP XNA/DirectX, MS Student Partner



   @tomasslavicek     http://tomasslavicek.cz
Agenda
•   Windows 8 a MonoGame
•   DPI a rozlišení
•   vstup dotykem a myší
•   …
Agenda
•   Windows 8 a MonoGame
•   DPI a rozlišení
•   vstup dotykem a myší
•   ukládání dat, lokalizace
•   privacy policy, Windows Store

• sdílení kódu mezi WP7, Win8 a PC
Windows 8
• Windows RT
• WinRT
•   desktop PC
•   Xbox 360
•   Windows Phone 7
•   přehrávače Zune
*2004 – †2012




•   desktop PC           •   Windows 8 / RT
•   Xbox 360             •   Windows Phone 8
•   Windows Phone 7      •   PS Vita
•   přehrávače Zune      •   Android
                         •   iOS, Mac…
                         •   Linux…
MonoGame na Win8
• kompatibilní většina kódu
• nutné dále řešit:
     •   orientace zařízení, snapped mód…
     •   kontrakty (sdílení, hledání…), live tiles
     •   ukládání dat, lokalizace
     •   in-app nákupy…

     • optimalizace pro tablety 
MonoGame – problémy
• různé verze, různé chyby…
 moje verze: http://bit.ly/monogame_TS

• …
MonoGame – problémy
• různé verze, různé chyby…
  moje verze: http://bit.ly/monogame_TS

• nutné řešit myš i dotyk zvlášť (+try/catch)
• pochybná podpora gest
• „jiné“ chování objektu graphics
• …
MonoGame – problémy
• různé verze, různé chyby…
  moje verze: http://bit.ly/monogame_TS

• nutné řešit myš i dotyk zvlášť (+try/catch)
• pochybná podpora gest
• „jiné“ chování objektu graphics
• není Content Pipeline
• nejsou pokročilé funkce (omezené 3D, shadery)
• občas NotImplementedException
Instalace MonoGame
• pomocí instalátoru
 http://monogame.codeplex.com/

• ze zdrojáků
 https://github.com/mono/MonoGame
Instalace MonoGame
• pomocí instalátoru
 http://monogame.codeplex.com/

• ze zdrojáků
 https://github.com/mono/MonoGame

    • branch develop3D
    • stáhnout i ThirdParty/Libs
    • pozor na verzi SharpDX (pro Win8
      RTM!)
    • přidání šablony do VS
    • odzkoušet WACK
Windows 8
• minimálně 1366x768 (příp. 1024x…)
• tři různá DPI – 100%, 140%, 180%
• portrait, full, snapped mód
Windows 8
Možné způsoby řešení
1. hra vždy v nativním rozlišení
2. rozlišení napevno např. 1366x768
3. kombinace…
K zamyšlení
• obrázky připravit pro 3 DPI,
  nebo je roztahovat?
• jak řešit písmo (SpriteFont)?
• pozice objektů relativně, nebo absolutně?
• jak s pozicemi dotyků?

• jak přeskládat layout (na
  výšku, snapped…)?
Ukázka: nativní rozlišení
• událost Window.ClientSizeChanged
    • nastavení back bufferu
    • načtení DPI
    • zapamatování rozlišení

• vykreslení obrázku na správné pozici
• vykreslení FPS
• správná velikost písma! 3x SpriteFont
Ukázka: dotyky
• TouchCollection vs. Mouse
• v TC jsou jen dotyky prstem, ne myší!

• nutné přepočítávat podle DPI




• gesta raději nepoužívat
Roaming Storage
• soubory, nebo kolekce klíč/hodnota
• automaticky synchronizováno mezi PC
Ukázka: RoamingSettings
• vhodné ukládat:
  nastavení, postup ve hře, nejvyšší skóre…

• limit cca 100 kB
• událost DataChanged


var rs = Windows.Storage.ApplicationData.Current.RoamingSettings;
rs.Values["tutorialLaunched"] = "true";
Settings Charms
• mělo by zde být:
  nastavení, info o autorech

• pokud přístup na internet:
  privacy settings
Ukázka – přidání položky
• objekt SettingsPane
• přidávám SettingsCommand

• na každou položku navázat metodu
Privacy policy
• nutné, pokud hra přistupuje k internetu
• odkaz v Settings charms, i na Store
Ukázka: Lokalizace hry
• resources soubory .resw
  (jako na WP7, ale jiná koncovka)

• načítání přes ResourceLoader

• přepínání jazyka není úplně automatické,
  není objekt Thread
in-app nákupy
• nákup přímo ze hry
• od $1.49 USD
Sdílení kódu
• mezi Win8, desktop PC, WP7, WP8…

• odlišení direktivami
  #if WINDOWS | WP7
  #elif WIN8
  #endif


• ukázka: hra HexaLines
Integrace s XAML
• šablona XamlGame
• výhody:
    • vykreslování GUI podobně jako v Silverlightu
    • načítání vstupu z virtuální klávesnice
    • možnost odchycení události
      „aplikace byla skryta na pozadí“
Další akce
• Tipy a triky pro vývoj her v XNA
  zítra 15:15, T. Slavíček

• Seminář: vývoj her pro Win8 a WP7,
  multiplayer pomocí Windows Azure
 10. prosince 2012, T. Slavíček, T. Herceg
 http://gds2012.ceske-hry.cz/
Děkuji za pozornost!




Tomáš Slavíček
MVP XNA/DirectX, MS Student Partner



   @tomasslavicek     http://tomasslavicek.cz

More Related Content

Similar to Vývoj her v C# pro Windows 8 (MonoGame, MS Fest)

Obchodní model MMORPG her a způsoby zvyšování motivace hráčů
Obchodní model MMORPG her a způsoby zvyšování motivace hráčůObchodní model MMORPG her a způsoby zvyšování motivace hráčů
Obchodní model MMORPG her a způsoby zvyšování motivace hráčů
Martin Šmahel
 
Comfor katalog 04_2013
Comfor katalog 04_2013Comfor katalog 04_2013
Comfor katalog 04_2013
comfor_web
 

Similar to Vývoj her v C# pro Windows 8 (MonoGame, MS Fest) (14)

Hands-on-lab Vyvíjíme hry v XNA pro WP7.5
Hands-on-lab Vyvíjíme hry v XNA pro WP7.5Hands-on-lab Vyvíjíme hry v XNA pro WP7.5
Hands-on-lab Vyvíjíme hry v XNA pro WP7.5
 
Vyvíjíme hry v XNA pro Windows Phone – Seminář 1
Vyvíjíme hry v XNA pro Windows Phone – Seminář 1Vyvíjíme hry v XNA pro Windows Phone – Seminář 1
Vyvíjíme hry v XNA pro Windows Phone – Seminář 1
 
For Mobile 6/2012: Vývoj her pro Windows Phone
For Mobile 6/2012: Vývoj her pro Windows PhoneFor Mobile 6/2012: Vývoj her pro Windows Phone
For Mobile 6/2012: Vývoj her pro Windows Phone
 
Tipy a triky pro vývoj her v XNA (MS Fest)
Tipy a triky pro vývoj her v XNA (MS Fest)Tipy a triky pro vývoj her v XNA (MS Fest)
Tipy a triky pro vývoj her v XNA (MS Fest)
 
Vyvíjíme hry v XNA pro Windows Phone 7.5
Vyvíjíme hry v XNA pro Windows Phone 7.5Vyvíjíme hry v XNA pro Windows Phone 7.5
Vyvíjíme hry v XNA pro Windows Phone 7.5
 
PhoneGap Školení #1
PhoneGap Školení #1PhoneGap Školení #1
PhoneGap Školení #1
 
Bitcoin Trezor - hardware bitcoin wallet
Bitcoin Trezor - hardware bitcoin walletBitcoin Trezor - hardware bitcoin wallet
Bitcoin Trezor - hardware bitcoin wallet
 
Prototypování webových aplikací
Prototypování webových aplikacíPrototypování webových aplikací
Prototypování webových aplikací
 
Obchodní model MMORPG her a způsoby zvyšování motivace hráčů
Obchodní model MMORPG her a způsoby zvyšování motivace hráčůObchodní model MMORPG her a způsoby zvyšování motivace hráčů
Obchodní model MMORPG her a způsoby zvyšování motivace hráčů
 
Novinky v Mango a Tango, propojení Silverlight a XNA na Windows Phone
Novinky v Mango a Tango, propojení Silverlight a XNA na Windows Phone Novinky v Mango a Tango, propojení Silverlight a XNA na Windows Phone
Novinky v Mango a Tango, propojení Silverlight a XNA na Windows Phone
 
Vývoj pro Microsoft Surface a HoloLens
Vývoj pro Microsoft Surface a HoloLensVývoj pro Microsoft Surface a HoloLens
Vývoj pro Microsoft Surface a HoloLens
 
Programování her v XNA pro Windows Phone 7
Programování her v XNA pro Windows Phone 7Programování her v XNA pro Windows Phone 7
Programování her v XNA pro Windows Phone 7
 
Comfor katalog 04_2013
Comfor katalog 04_2013Comfor katalog 04_2013
Comfor katalog 04_2013
 
Vyvíjíme hry v XNA pro Windows Phone – Seminář 2
Vyvíjíme hry v XNA pro Windows Phone – Seminář 2Vyvíjíme hry v XNA pro Windows Phone – Seminář 2
Vyvíjíme hry v XNA pro Windows Phone – Seminář 2
 

More from Tomáš Slavíček (6)

Jak prodávat a propagovat mobilní aplikaci
Jak prodávat a propagovat mobilní aplikaciJak prodávat a propagovat mobilní aplikaci
Jak prodávat a propagovat mobilní aplikaci
 
UX - MS Fest 2014 - Navrhujeme aplikace pro lidi, ne pro sebe - Tomáš Slavíček
UX - MS Fest 2014 - Navrhujeme aplikace pro lidi, ne pro sebe - Tomáš SlavíčekUX - MS Fest 2014 - Navrhujeme aplikace pro lidi, ne pro sebe - Tomáš Slavíček
UX - MS Fest 2014 - Navrhujeme aplikace pro lidi, ne pro sebe - Tomáš Slavíček
 
UX Monday: Easy Phone - telefon pro seniory, Tomáš Slavíček
UX Monday: Easy Phone - telefon pro seniory, Tomáš SlavíčekUX Monday: Easy Phone - telefon pro seniory, Tomáš Slavíček
UX Monday: Easy Phone - telefon pro seniory, Tomáš Slavíček
 
Easy phone
Easy phoneEasy phone
Easy phone
 
Fotografické API a rozšířená realita pro Windows Phone
Fotografické API a rozšířená realita pro Windows PhoneFotografické API a rozšířená realita pro Windows Phone
Fotografické API a rozšířená realita pro Windows Phone
 
Vývoj her v XNA - seminář 2
Vývoj her v XNA - seminář 2Vývoj her v XNA - seminář 2
Vývoj her v XNA - seminář 2
 

Vývoj her v C# pro Windows 8 (MonoGame, MS Fest)

  • 1. Vývoj her pro Windows 8 pomocí MonoGame Tomáš Slavíček MVP XNA/DirectX, MS Student Partner @tomasslavicek http://tomasslavicek.cz
  • 2. Agenda • Windows 8 a MonoGame • DPI a rozlišení • vstup dotykem a myší • …
  • 3. Agenda • Windows 8 a MonoGame • DPI a rozlišení • vstup dotykem a myší • ukládání dat, lokalizace • privacy policy, Windows Store • sdílení kódu mezi WP7, Win8 a PC
  • 4. Windows 8 • Windows RT • WinRT
  • 5. desktop PC • Xbox 360 • Windows Phone 7 • přehrávače Zune
  • 6. *2004 – †2012 • desktop PC • Windows 8 / RT • Xbox 360 • Windows Phone 8 • Windows Phone 7 • PS Vita • přehrávače Zune • Android • iOS, Mac… • Linux…
  • 7. MonoGame na Win8 • kompatibilní většina kódu • nutné dále řešit: • orientace zařízení, snapped mód… • kontrakty (sdílení, hledání…), live tiles • ukládání dat, lokalizace • in-app nákupy… • optimalizace pro tablety 
  • 8. MonoGame – problémy • různé verze, různé chyby… moje verze: http://bit.ly/monogame_TS • …
  • 9. MonoGame – problémy • různé verze, různé chyby… moje verze: http://bit.ly/monogame_TS • nutné řešit myš i dotyk zvlášť (+try/catch) • pochybná podpora gest • „jiné“ chování objektu graphics • …
  • 10. MonoGame – problémy • různé verze, různé chyby… moje verze: http://bit.ly/monogame_TS • nutné řešit myš i dotyk zvlášť (+try/catch) • pochybná podpora gest • „jiné“ chování objektu graphics • není Content Pipeline • nejsou pokročilé funkce (omezené 3D, shadery) • občas NotImplementedException
  • 11. Instalace MonoGame • pomocí instalátoru http://monogame.codeplex.com/ • ze zdrojáků https://github.com/mono/MonoGame
  • 12. Instalace MonoGame • pomocí instalátoru http://monogame.codeplex.com/ • ze zdrojáků https://github.com/mono/MonoGame • branch develop3D • stáhnout i ThirdParty/Libs • pozor na verzi SharpDX (pro Win8 RTM!) • přidání šablony do VS • odzkoušet WACK
  • 13. Windows 8 • minimálně 1366x768 (příp. 1024x…) • tři různá DPI – 100%, 140%, 180% • portrait, full, snapped mód
  • 15. Možné způsoby řešení 1. hra vždy v nativním rozlišení 2. rozlišení napevno např. 1366x768 3. kombinace…
  • 16. K zamyšlení • obrázky připravit pro 3 DPI, nebo je roztahovat? • jak řešit písmo (SpriteFont)? • pozice objektů relativně, nebo absolutně? • jak s pozicemi dotyků? • jak přeskládat layout (na výšku, snapped…)?
  • 17. Ukázka: nativní rozlišení • událost Window.ClientSizeChanged • nastavení back bufferu • načtení DPI • zapamatování rozlišení • vykreslení obrázku na správné pozici • vykreslení FPS • správná velikost písma! 3x SpriteFont
  • 18. Ukázka: dotyky • TouchCollection vs. Mouse • v TC jsou jen dotyky prstem, ne myší! • nutné přepočítávat podle DPI • gesta raději nepoužívat
  • 19. Roaming Storage • soubory, nebo kolekce klíč/hodnota • automaticky synchronizováno mezi PC
  • 20. Ukázka: RoamingSettings • vhodné ukládat: nastavení, postup ve hře, nejvyšší skóre… • limit cca 100 kB • událost DataChanged var rs = Windows.Storage.ApplicationData.Current.RoamingSettings; rs.Values["tutorialLaunched"] = "true";
  • 21. Settings Charms • mělo by zde být: nastavení, info o autorech • pokud přístup na internet: privacy settings
  • 22. Ukázka – přidání položky • objekt SettingsPane • přidávám SettingsCommand • na každou položku navázat metodu
  • 23. Privacy policy • nutné, pokud hra přistupuje k internetu • odkaz v Settings charms, i na Store
  • 24. Ukázka: Lokalizace hry • resources soubory .resw (jako na WP7, ale jiná koncovka) • načítání přes ResourceLoader • přepínání jazyka není úplně automatické, není objekt Thread
  • 25. in-app nákupy • nákup přímo ze hry • od $1.49 USD
  • 26. Sdílení kódu • mezi Win8, desktop PC, WP7, WP8… • odlišení direktivami #if WINDOWS | WP7 #elif WIN8 #endif • ukázka: hra HexaLines
  • 27. Integrace s XAML • šablona XamlGame • výhody: • vykreslování GUI podobně jako v Silverlightu • načítání vstupu z virtuální klávesnice • možnost odchycení události „aplikace byla skryta na pozadí“
  • 28. Další akce • Tipy a triky pro vývoj her v XNA zítra 15:15, T. Slavíček • Seminář: vývoj her pro Win8 a WP7, multiplayer pomocí Windows Azure 10. prosince 2012, T. Slavíček, T. Herceg http://gds2012.ceske-hry.cz/
  • 29. Děkuji za pozornost! Tomáš Slavíček MVP XNA/DirectX, MS Student Partner @tomasslavicek http://tomasslavicek.cz