ms fest 2013: vývoj her v c# a monogame pro wp, ios a android
DESCRIPTION
Přednáška o vývoji her v MonoGame, 14.10.2013 v Brně na akci MS Fest 2013 http://www.ms-fest.cz/brno/program/nedele , přednášející Tomáš SlavíčekTRANSCRIPT
![Page 1: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/1.jpg)
Multiplatformní vývoj herpomocí MonoGame
Tomáš Slavíček
@tomasslavicek
![Page 2: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/2.jpg)
Agenda
frameworky a MonoGame
Xamarin
praktická ukázka
omezení a specifika platforem
tipy a triky
a jak to bylo s XNA…
![Page 3: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/3.jpg)
Herní framework / engine
jednoduchost, rychlost použití
více platforem
cena
komunita
1.
![Page 4: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/4.jpg)
Míra abstrakce
vlastní řešení framework engine
![Page 5: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/5.jpg)
Mobilní platformy
WP, Android, iOS,
PS Vita…
Unity?
XNA + MonoGame?
něco dalšího?
![Page 6: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/6.jpg)
vs.
desktop PC
Xbox 360
Windows Phone 7
přehrávače Zune
![Page 7: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/7.jpg)
vs.
desktop PC
Xbox 360
Windows Phone 7
přehrávače Zune
![Page 8: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/8.jpg)
vs.
desktop PC
Xbox 360
Windows Phone 7
přehrávače Zune
Windows 8 / RT
Windows Phone 8
iOS, Mac
Android, Ouya
PlayStation
Linux…
![Page 9: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/9.jpg)
MonoGame
velmi aktivní projekt
open-source
kompatibilní většina kódu s XNA
je zdarma*
![Page 10: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/10.jpg)
MonoGame
velmi aktivní projekt
open-source
kompatibilní většina kódu s XNA
je zdarma*
Android a iOS nutné
mít licenci Xamarin
![Page 11: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/11.jpg)
MonoGame (XNA)
nadstavba DirectX / OpenGL, jazyk C#
herní smyčka, Content Pipeline,
operace s vektory…
![Page 12: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/12.jpg)
Hry v MonoGame
![Page 13: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/13.jpg)
Hry v MonoGame
![Page 14: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/14.jpg)
Hry v MonoGame
![Page 15: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/15.jpg)
Hry v MonoGame
![Page 16: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/16.jpg)
Hry v MonoGame
![Page 17: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/17.jpg)
Aplikace v MonoGame
![Page 18: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/18.jpg)
Schéma MonoGame2.
![Page 19: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/19.jpg)
Xamarin
Mono pro Android, iOS, Mac
placený produkt
nástroje:
Xamarin Studio, návrh UI…
pro Mac i Windows
![Page 20: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/20.jpg)
Xamarin
pro MonoGame zatím nelze FREE :(
![Page 21: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/21.jpg)
Xamarin
$299 za každou platformu
licence napořád, podpora 1 rok
slevy: studenti $99, univerzity $79
![Page 22: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/22.jpg)
Xamarin.Android (MonoDroid)
Mono je runtime „vedle Dalvika“, psané v C
aplikace kompilovány just-in-time
![Page 23: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/23.jpg)
Xamarin.Android (MonoDroid)
možno volat „.NET funkce“, Android API,
binding na Java knihovny…
př. volání Flurry, ScoreLoop…
![Page 24: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/24.jpg)
Xamarin.iOS (MonoTouch)
aplikace kompilovány
do strojového kódu platformy
opět možný binding na externí knihovny
![Page 25: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/25.jpg)
Xamarin.iOS (MonoTouch)
nutné mít Mac!
![Page 26: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/26.jpg)
Xamarin.iOS (MonoTouch)
ale lze vyvíjet i z Visual Studia!
Mac stačí mít ve skříni
![Page 27: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/27.jpg)
Xamarin – integrace do VS
![Page 28: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/28.jpg)
Xamarin – integrace do VS
![Page 29: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/29.jpg)
Instalace MonoGame
pomocí instalátoruhttp://monogame.codeplex.com/
ze zdrojákůhttps://github.com/mono/MonoGame
3.
![Page 30: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/30.jpg)
Instalace MonoGame
pomocí instalátoruhttp://monogame.codeplex.com/
ze zdrojákůhttps://github.com/mono/MonoGame
3.
branch develop
stáhnout i ThirdParty/Libs
pozor na verzi SharpDX
přidat referenci do Visual Studia
![Page 31: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/31.jpg)
Instalace MonoGame
aby fungovala Content Pipeline:
nainstalovat:
Xamarin Studio + Content Pipeline Addin
nebo
Visual Studio Professional / Ultimate +
Windows Phone 7.1 SDK (= XNA 4.0) +
Games for Windows Marketplace Client
MonoGame, Xamarin.iOS / Xamarin.Android
![Page 32: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/32.jpg)
Ukázka
založení projektu
koexistence XNA a MonoGame
sdílení kódu mezi platformami
#if #endif
![Page 33: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/33.jpg)
MonoGame omezení
Content Pipelinetextury pro iOS: jiná komprese
občas mezery
render do textury (RenderTarget)
ukládání do .png s průhledností
pokročilejší věci
not implemented exception (u TouchCollection…)
4.
![Page 34: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/34.jpg)
Další omezení
Win Phone 8změna rozlišení / orientace
chyba back button
Win 8nejde vyhlazování hran
jinak vstup myš / prsty
pozor na DPI
bit.ly/win8_monogame
![Page 35: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/35.jpg)
Nutné řešit zvlášť
platformově specifické věci
message boxy, systémové dialogy
in-app purchases, kontrakty, live-tiles…
ukládání dat
lokalizace do jazyků
logování chyb
Flurry, ScoreLoop…
![Page 36: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/36.jpg)
Nevýhody MonoGame
hra nejde naklikat…můžeme se ale dostat hluboko
složitější portacenejde jen kliknout na „exportovat“
open-source :(občas nutné bojovat…
![Page 37: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/37.jpg)
A výhody…
open-source :)můžeme si cokoliv upravit
množství návodů a komunitaXNA = MonoGame
![Page 38: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/38.jpg)
Materiály
rozcestník na SmartMania.czbit.ly/xna_smartmania
![Page 39: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/39.jpg)
Tipy a triky
jen malá ochutnávka!
zájem o podrobnější seminář?
5.
![Page 40: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/40.jpg)
Tipy a triky
IsolatedStorageSettings
pro Android (string položky):
pastebin.com/6SpigxFq
![Page 41: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/41.jpg)
IsolatedStorageSettings
pro ostatní platformy:
třída z projektu MoonLight
![Page 42: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/42.jpg)
Textury bez Content Pipeline
přímo ze streamu (rychlejší, menší soubory)
viz článek Jake Poznanski
bit.ly/sm_tipy_triky
![Page 43: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/43.jpg)
Textury bez Content Pipeline
textury cachovat!
![Page 44: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/44.jpg)
Textury bez Content Pipeline
a pozor na obnovu po reaktivaci!
př. Android:
event Game1.GraphicsDevice.DeviceReset
všechny textury = null
znovu zavolat LoadContent
ale čekat až „lazy“ v Update!
![Page 45: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/45.jpg)
Obnova po reaktivaci
![Page 46: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/46.jpg)
Ne celý Content hned!
načíst jen to, co se aktuálně kreslí…
v LoadContent jen označit assetName
např. do texture.Tag
lazy načíst až v Draw
![Page 47: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/47.jpg)
Další tipy
načítat textury ve správném DPIpř. 100%, 150%, 200% a 400% (Full HD)
…stejně tak SpriteFonty
pozastavovat vykreslování
SupressDraw
pozastavovat herní smyčku :)
![Page 48: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/48.jpg)
Další tipy
určení DPI, rozlišení, typ mobilu / tabletu
iOS: pastebin.com/1ZYZQgjD
Android: pastebin.com/Kc0szXSt
![Page 49: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/49.jpg)
Shrnutí
MonoGame „nástupce XNA“
mobilní hry
Android / iOS: Xamarin
jazyk C#, velké možnosti…
![Page 50: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/50.jpg)
A jak to bylo s XNA?6.
![Page 51: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/51.jpg)
A jak to bylo s XNA?
![Page 52: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/52.jpg)
A jak to bylo s XNA?
blogusa.tumblr.com
![Page 53: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/53.jpg)
A jak to bylo s XNA?
George Clingerman, xnadevelopment.com
![Page 54: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android](https://reader030.vdocuments.mx/reader030/viewer/2022020207/559523c21a28abcf318b4658/html5/thumbnails/54.jpg)
Díky za pozornost!prostor pro dotazy
Tomáš Slavíček mail @
tomasslavicek.cz@tomasslavicek