+ All Categories
Home > Technology > MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android

MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android

Date post: 02-Jul-2015
Category:
Upload: tomas-slavicek
View: 523 times
Download: 2 times
Share this document with a friend
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íček
54
Multiplatformní vývoj her pomocí MonoGame Tomáš Slavíček @tomasslavicek
Transcript
Page 1: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android

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

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

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

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

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

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

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

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

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

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

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

Hry v MonoGame

Page 13: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android

Hry v MonoGame

Page 14: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android

Hry v MonoGame

Page 15: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android

Hry v MonoGame

Page 16: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android

Hry v MonoGame

Page 17: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android

Aplikace v MonoGame

Page 18: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android

Schéma MonoGame2.

Page 19: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android

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

Xamarin

pro MonoGame zatím nelze FREE :(

Page 21: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android

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

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

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

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

Xamarin.iOS (MonoTouch)

nutné mít Mac!

Page 26: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android

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

Xamarin – integrace do VS

Page 28: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android

Xamarin – integrace do VS

Page 29: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Textury bez Content Pipeline

textury cachovat!

Page 44: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android

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

Obnova po reaktivaci

Page 46: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android

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

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

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

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

A jak to bylo s XNA?6.

Page 51: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android

A jak to bylo s XNA?

Page 52: MS Fest 2013: Vývoj her v C# a MonoGame pro WP, iOS a Android

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

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

Díky za pozornost!prostor pro dotazy

Tomáš Slavíček mail @

tomasslavicek.cz@tomasslavicek


Recommended