+ All Categories
Home > Technology > GDS 2013: MonoGame pro Android a iOS, tipy a triky

GDS 2013: MonoGame pro Android a iOS, tipy a triky

Date post: 27-Jun-2015
Category:
Upload: tomas-slavicek
View: 214 times
Download: 4 times
Share this document with a friend
Description:
Slajdy z konference GDS 2013 (ČR, 10.11.2013), MonoGame pro Android a iOS, tipy a triky; Tomáš Slavíček
61
Multiplatformní vývoj her pomocí MonoGame Tomáš Slavíček @tomasslavicek
Transcript
Page 1: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Multiplatformní vývoj herpomocí MonoGame

Tomáš Slavíček @tomasslavicek

Page 2: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Agenda

frameworky a MonoGame

Xamarin

krátká ukázka

omezení a specifika platforem

tipy a triky

Page 3: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Herní framework / engine

jednoduchost použití

více platforem

cena

komunita

1.

Page 4: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Míra abstrakce

vlastní řešení framework engine

Page 5: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Mobilní platformy

Unity

XNA + MonoGame

něco dalšího?

Page 6: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Jak je na tom XNA?

Page 7: GDS 2013: MonoGame pro Android a iOS, tipy a triky

vs.

desktop PC

Xbox 360

Windows Phone 7

přehrávače Zune

Page 8: GDS 2013: MonoGame pro Android a iOS, tipy a triky

vs.

desktop PC

Xbox 360

Windows Phone 7

přehrávače Zune

*2004 –

†2012

Page 9: GDS 2013: MonoGame pro Android a iOS, tipy a triky

vs.

desktop PC

Xbox 360

Windows Phone 7

přehrávače Zune

*2004 –

†2012

Windows 8 / RT

Windows Phone 8

iOS, Mac

Android, Ouya

PlayStation

Linux…

Page 10: GDS 2013: MonoGame pro Android a iOS, tipy a triky

MonoGame

velmi aktivní projekt

open-source

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

je zdarma*

Page 11: GDS 2013: MonoGame pro Android a iOS, tipy a triky

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 12: GDS 2013: MonoGame pro Android a iOS, tipy a triky

MonoGame (XNA)

herní smyčka, Content Pipeline,

operace s vektory…

Page 13: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Hry v MonoGame

Page 14: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Hry v MonoGame

Page 15: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Hry v MonoGame

Page 16: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Hry v MonoGame

Page 17: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Hry v MonoGame

Page 18: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Aplikace v MonoGame

Page 19: GDS 2013: MonoGame pro Android a iOS, tipy a triky

MonoGame technicky

Page 20: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Xamarin

Mono pro Android, iOS, Machttp://xamarin.com

= MonoTouch, MonoDroid

nástroje:

pro Mac i Windows

2.

Page 21: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Xamarin

UI na Android / iOS:

přes Xamarin Studio, nebo MonoGame

Page 22: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Xamarin

placený produkt

pro MonoGame zatím nelze FREE :(

Page 23: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Xamarin

$299 za každou platformu

licence napořád, podpora 1 rok

slevy: studenti $99, univerzity $79

Page 24: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Xamarin.Android (MonoDroid)

Mono je runtime „vedle Dalvika“, psané v C

aplikace kompilovány just-in-time

Page 25: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Xamarin.Android (MonoDroid)

možno volat „.NET funkce“, Android API,

binding na Java knihovny…

př. volání Flurry, ScoreLoop…

Page 26: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Xamarin.iOS (MonoTouch)

aplikace kompiloványdo strojového kódu platformy

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

Page 27: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Xamarin.iOS

nutné mít Mac! :)

Page 28: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Xamarin.iOS

ale lze vyvíjet i z Visual Studia! (pouze v Pro)

Mac stačí mít ve skříni

Page 29: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Xamarin – integrace do VS

Page 30: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Xamarin – integrace do VS

Page 31: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Instalace MonoGame

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

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

3.

branch developstáhnout i ThirdParty/Libs

Page 32: GDS 2013: MonoGame pro Android a iOS, tipy a triky

MonoGame

Content Pipeline

přes XNA, nebo MonoGame

Xamarin Studio + Content Pipeline AddinneboVisual Studio +Windows Phone 7.1 SDK (= XNA 4.0)

MonoGameXamarin.iOS / Xamarin.Android

Page 33: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Ukázka

založení projektu

koexistence XNA a MonoGame

sdílení kódu mezi platformami

#if #endif

Page 34: GDS 2013: MonoGame pro Android a iOS, tipy a triky

MonoGame omezení

Content Pipelinekompilace fontů a textur (přes XNA nebo

MG)

textury pro iOS: jiná komprese

není nutné používat

4.

Page 35: GDS 2013: MonoGame pro Android a iOS, tipy a triky

MonoGame omezení

občas mezery

render do textury (RenderTarget)

ukládání do .png s průhledností

pokročilejší věci (3D grafika)

not implemented exception (u TouchCollection…)

Page 36: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Další omezení

Win Phone 8

změna rozlišení / orientace?

chyba back button

TouchCollection == null ?

Page 37: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Další omezení

Win 8nejde vyhlazování hran

jinak vstup myš / prsty

pozor na DPI

pohlídat si WACK

bit.ly/win8_monogame

Page 38: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Nutné řešit zvlášť

platformově specifické věci

message boxy, systémové dialogyin-app purchases, kontrakty, live-tiles…

ukládání dat

lokalizace do jazyků

Flurry, ScoreLoop

Android: logování chyb

Page 39: GDS 2013: MonoGame pro Android a iOS, tipy a triky

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 40: GDS 2013: MonoGame pro Android a iOS, tipy a triky

A výhody…

open-source :)můžeme si cokoliv upravit

množství návodů a komunitaXNA = MonoGame

Page 41: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Materiály o XNA / MG

rozcestník na SmartMania.czbit.ly/xna_smartmania

Page 42: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Tipy a triky

jen malá ochutnávka!

zájem o podrobnější seminář?

5.

Page 43: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Např. ukládání dat

IsolatedStorageFile – již v Xamarinu

IsolatedStorageSettings

WP: nativně

Win8, iOS: třída z projektu MoonLight

Android: jinak…

Page 44: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Tipy a triky

IsolatedStorageSettingspro Android (string položky):

pastebin.com/6SpigxFq

Page 45: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Textury bez Content Pipeline

přímo ze streamu (rychlejší, menší soubory)viz článek Jake Poznanski bit.ly/sm_tipy_triky

Page 46: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Textury bez Content Pipeline

textury cachovat!

Page 47: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Textury bez Content Pipeline

a pozor na obnovu po reaktivaci!

př. Android:

event Game1.GraphicsDevice.DeviceReset

všechny textury = nullznovu zavolat LoadContent

ale čekat až „lazy“ v Update!

Page 48: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Obnova po reaktivaci

Page 49: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Ne celý Content hned!

načíst jen to, co se aktuálně kreslí…

v LoadContent jen označit assetNamenapř. do texture.Taglazy načíst až v Draw

Page 50: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Další tipy

načítat textury ve správném DPIpř. 100%, 150%, 200% a 400% (Full HD)

…stejně tak SpriteFonty

není řešeno automaticky

Page 51: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Více rozlišení

pomocný objekt SpriteHelper

interně: pevná šířka displeje

výběr textury / scale na displej automaticky

Page 52: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Další tipy

pozastavovat vykreslováníSupressDraw

pozastavovat herní smyčku :)

Page 53: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Pozastavení herní smyčky

nic se neděje nic nekreslit

rozběhnout:kliknul / drží prst (příp. spustil animaci)

nastal asynchronní event

zastavit:

pustil prst / skončila animace

Page 54: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Pozastavení herní smyčky

úprava MonoGame

AndroidGameWindow Pause(), Resume()

Game.Tick vynulovat elapsed time

TouchPanel.AddEvent TouchChanged(), obnovit

smyčku

Page 55: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Další tipy

určení DPI, rozlišení, typ mobilu / tabletu

iOS: pastebin.com/1ZYZQgjD

Android: pastebin.com/Kc0szXSt

Page 56: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Shrnutí

MonoGame „nástupce XNA“

mobilní hry

Android / iOS: Xamarin

jazyk C#, velké možnosti…

Page 57: GDS 2013: MonoGame pro Android a iOS, tipy a triky

A jak to bylo s XNA?6.

Page 58: GDS 2013: MonoGame pro Android a iOS, tipy a triky

A jak to bylo s XNA?

Page 59: GDS 2013: MonoGame pro Android a iOS, tipy a triky

A jak to bylo s XNA?

blogusa.tumblr.com

Page 60: GDS 2013: MonoGame pro Android a iOS, tipy a triky

A jak to bylo s XNA?

George Clingerman, xnadevelopment.com

Page 61: GDS 2013: MonoGame pro Android a iOS, tipy a triky

Díky za pozornost!prostor pro dotazy

Tomáš Slavíček mail @ tomasslavicek.cz

@tomasslavicek


Recommended