+ All Categories
Home > Technology > Vývoj her v C# pro Windows 8 (MonoGame, MS Fest)

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

Date post: 29-Dec-2014
Category:
Upload: tomas-slavicek
View: 922 times
Download: 1 times
Share this document with a friend
Description:
 
29
Vývoj her pro Windows 8 pomocí MonoGame Tomáš Slavíček MVP XNA/DirectX, MS Student Partner @tomasslavicek http://tomasslavicek.cz
Transcript
Page 1: Vývoj her v C# pro Windows 8 (MonoGame, MS Fest)

Vývoj her pro Windows 8pomocí MonoGame

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

@tomasslavicek http://tomasslavicek.cz

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

Agenda

• Windows 8 a MonoGame• DPI a rozlišení• vstup dotykem a myší• …

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

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

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

Windows 8

• Windows RT• WinRT

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

• desktop PC• Xbox 360• Windows Phone 7• přehrávače Zune

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

• desktop PC• Xbox 360• Windows Phone 7• přehrávače Zune

• Windows 8 / RT• Windows Phone 8• PS Vita• Android• iOS, Mac…• Linux…

*2004 – †2012

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

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

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

MonoGame – problémy

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

• …

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

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

• …

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

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

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

Instalace MonoGame

• pomocí instalátoruhttp://monogame.codeplex.com/

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

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

Instalace MonoGame

• pomocí instalátoruhttp://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

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

Windows 8

• minimálně 1366x768 (příp. 1024x…)• tři různá DPI – 100%, 140%, 180%• portrait, full, snapped mód

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

Windows 8

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

Možné způsoby řešení

1. hra vždy v nativním rozlišení2. rozlišení napevno např. 1366x7683. kombinace…

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

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…)?

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

Ukázka: nativní rozlišení

• událost Window.ClientSizeChanged

• vykreslení obrázku na správné pozici• vykreslení FPS• správná velikost písma! 3x SpriteFont

• nastavení back bufferu• načtení DPI• zapamatování rozlišení

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

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

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

Roaming Storage

• soubory, nebo kolekce klíč/hodnota• automaticky synchronizováno mezi PC

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

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";

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

Settings Charms

• mělo by zde být:nastavení, info o autorech

• pokud přístup na internet:privacy settings

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

Ukázka – přidání položky

• objekt SettingsPane• přidávám SettingsCommand

• na každou položku navázat metodu

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

Privacy policy

• nutné, pokud hra přistupuje k internetu

• odkaz v Settings charms, i na Store

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

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

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

in-app nákupy

• nákup přímo ze hry• od $1.49 USD

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

Sdílení kódu

• mezi Win8, desktop PC, WP7, WP8…

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

• ukázka: hra HexaLines

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

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í“

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

Další akce

• Tipy a triky pro vývoj her v XNAzí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. Herceghttp://gds2012.ceske-hry.cz/

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

Děkuji za pozornost!

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

@tomasslavicek http://tomasslavicek.cz


Recommended