[cz] MonoGame framework, mDevCamp 2013

30
Multiplatformní vývoj her pomocí MonoGame Tomáš Slavíček MVP XNA/DirectX, MS Student Partner @tomasslavicek http://tomasslavicek.cz

description

Slajdy k přednášce o frameworku MonoGame, na konferenci mDevCamp 2013, Tomáš Slavíček

Transcript of [cz] MonoGame framework, mDevCamp 2013

Page 1: [cz] MonoGame framework, mDevCamp 2013

Multiplatformní vývoj herpomocí MonoGame

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

@tomasslavicek http://tomasslavicek.cz

Page 2: [cz] MonoGame framework, mDevCamp 2013

Agenda

• herní frameworky – můj pohled

• XNA a MonoGame

• Xamarin

• praktická ukázka

• vady, nevýhody? :)

Page 3: [cz] MonoGame framework, mDevCamp 2013

Herní framework / engine

• jednoduchost použití, rychlost vývoje

• multiplatformnost

• náročnost portace

mezi platformami

• cena, poplatky

• komunita

Page 4: [cz] MonoGame framework, mDevCamp 2013

XNA Framework

• pro PC, Xbox 360, Windows Phone 7…

• nadstavba DirectX,

jazyk C#

• herní smyčka, Content Pipeline

operace s vektory…

Page 5: [cz] MonoGame framework, mDevCamp 2013

Herní smyčka

• sada připravených metod

Page 6: [cz] MonoGame framework, mDevCamp 2013

MonoGame

• opensource implementace XNA

• iOS, Android, Mac, Linux,

Windows 8, Ouya…

• nad DirectX i OpenGL

Page 7: [cz] MonoGame framework, mDevCamp 2013

MonoGame – hry

Page 8: [cz] MonoGame framework, mDevCamp 2013

MonoGame – hry

Page 9: [cz] MonoGame framework, mDevCamp 2013

MonoGame – hry

Page 10: [cz] MonoGame framework, mDevCamp 2013

MonoGame – hry

Page 11: [cz] MonoGame framework, mDevCamp 2013

MonoGame – hry

Page 12: [cz] MonoGame framework, mDevCamp 2013

• desktop PC

• Xbox 360

• Windows Phone 7

• přehrávače Zune

• Windows 8 / RT

• Windows Phone 8

• iOS, Mac

• Android, Ouya

• PlayStation

• Linux…

*2004 – †2012

Page 13: [cz] MonoGame framework, mDevCamp 2013

MonoGame

• kompatibilní většina kódu s XNA

• velmi aktivní projekt

• je zdarma*

Page 14: [cz] MonoGame framework, mDevCamp 2013

MonoGame

pro Android a iOS je nutné

mít licenci na Xamarin

• kompatibilní většina kódu s XNA

• velmi aktivní projekt

• je zdarma*

Page 15: [cz] MonoGame framework, mDevCamp 2013

Xamarin

• vývoj v C# pro iOS, Android a Mac

• implementace Mono

Page 16: [cz] MonoGame framework, mDevCamp 2013

Xamarin

• vývoj v C# pro iOS, Android a Mac

• implementace Mono

• vlastní nástroje: Xamarin Studio, návrh

UI…

• přístup k nativním API

• vývoj na Mac i Windows

Page 17: [cz] MonoGame framework, mDevCamp 2013

Xamarin.Android

• Mono je runtime „vedle Dalvika“

• vykonáváno just-in-time

• možné volat .NET funkce, Android API

i binding na Java knihovny

Page 18: [cz] MonoGame framework, mDevCamp 2013

Xamarin.iOS

• aplikace kompilovány přímo

do strojového kódu platformy

• opět možný binding na externí knihovny

(Flurry, TapJoy…)

• lze i z Visual Studia na Windows!

Page 19: [cz] MonoGame framework, mDevCamp 2013

Xamarin – ceny

• pro MonoGame zatím nelze FREE

Page 20: [cz] MonoGame framework, mDevCamp 2013

Xamarin – ceny

• $299 za 1 platformu (Android, iOS…)

• licence napořád, podpora jen na rok

• možnost slev:

• studenti: $99, univerzity: $79

Page 21: [cz] MonoGame framework, mDevCamp 2013

MonoGame – instalace

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

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

Page 22: [cz] MonoGame framework, mDevCamp 2013

MonoGame – instalace

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

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

• branch develop

• stáhnout i ThirdParty/Libs

• pozor na verzi SharpDX

• přidat referenci do Visual Studia

Page 23: [cz] MonoGame framework, mDevCamp 2013

Konečně ukázka :)

• projekt pro iOS

• stejný benchmark

Page 24: [cz] MonoGame framework, mDevCamp 2013

MonoGame vs. XNA

• není Content Pipeline

• content pro iOS se musí kompilovat zvlášť

Page 25: [cz] MonoGame framework, mDevCamp 2013

MonoGame vs. XNA

• není Content Pipeline

• content pro iOS se musí kompilovat zvlášť

• občas ještě mezery

• render do textury, průhlednost, pokročilejší 3D…

• chyby… (ale řeší je)

Page 26: [cz] MonoGame framework, mDevCamp 2013

MonoGame vs. XNA

• není Content Pipeline

• content pro iOS se musí kompilovat zvlášť

• občas ještě mezery

• render do textury, průhlednost, pokročilejší 3D…

• chyby… (ale řeší je)

• nutné řešit platformově specifické věci

• message boxy, in-appy…

Page 27: [cz] MonoGame framework, mDevCamp 2013

(Ne)výhody

• pořád ještě docela low-level

• nejde hra „naklikat“ :)

• můžeme ale zase docela hluboko…

Page 28: [cz] MonoGame framework, mDevCamp 2013

(Ne)výhody

• pořád ještě docela low-level

• nejde hra „naklikat“ :)

• můžeme ale zase docela hluboko…

• složitější portace

• nejde jen kliknout „exportuj pro iPhone“

Page 29: [cz] MonoGame framework, mDevCamp 2013

Další materiály

• rozcestník na SmartMania.czhttp://bit.ly/xna_smartmania

Page 30: [cz] MonoGame framework, mDevCamp 2013

Děkuji za pozornost!

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

@tomasslavicek http://tomasslavicek.cz