MonoGame. Wieloplatformowe gry w C# Mateusz Cicheński



Podobne dokumenty
GUI - projektowanie interfejsów

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski

BUDOWA APLIKACJI NA PLATFORMĘ IPHONE/IPAD. dr inż. Marcin Tomana

Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios

Tworzenie cross-platformowych aplikacji w Xamarin.Forms

Rozpoczynając wywód na temat MVVM należy najpierw zadań sobie kilka podstawowych pytań na temat MVVM jako wzorca projektowego :

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

NASZA MISJA. wszystkie nasze dzialania sfokusowane sa na efektywną, partnerską współprace.

Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2016/2017. Forma studiów: Niestacjonarne Kod kierunku: 11.

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

tel. (+48 81) /22 fax (+48 81) Cel przedmiotu

Programowanie dla ios

Projekt inżynierski uwagi

Materiał dystrybuowany na licencji CC-BY-SA

T-Bull S.A. Made by gamers for gamers. STRATEGIA ROZWOJU T-Bull S.A. na lata Wrocław, 19 września 2017 r.

Programowanie dla ios

Przewodnik po ING BusinessMobile

Wymagania systemowe dla Qlik Sense. Qlik Sense February 2018 Copyright QlikTech International AB. Wszelkie prawa zastrzeżone.

Technologie mobilne - opis przedmiotu

Tworzenie własnych Smart Mobile Apps dzięki MobileHMI. ICONICS Worldwide Customer Summit

INSTRUKCJA UŻYTKOWNIKA

Systemy operacyjne na platformach mobilnych

Temat 4. Storyboard i element interfejsu użytkownika Gra w kulki- część 1

Systemy operacyjne na platformach mobilnych

Aktywności są związane z ekranem i definiują jego wygląd. Dzieje się to poprzez podpięcie do aktywności odpowiedniego widoku.

Opis przedmiotu zamówienia, wymagania i warunki realizacji na dostawę Urządzeń GSM

Dlaczego Android? Uczę się Javy więc piszę.. w Androidzie. Nie mam telefonu z Androidem!

Wymagania systemowe dla Qlik Sense. Qlik Sense 3.0 Copyright QlikTech International AB. Wszelkie prawa zastrzeżone.

Czym jest wykrywanie kolizji. Elementarne metody detekcji kolizji. Trochę praktyki: Jak przygotować Visual Studio 2010 do pracy z XNA pod Windows

Wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Dzięki szkoleniu. Dni: 3. Opis: Adresaci szkolenia

Programowanie niskopoziomowe

Rys. 3. Kod elementów na stronie po dodaniu kontrolek podstawowych.

REFERAT PRACY DYPLOMOWEJ

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

Wymagania systemowe dla Qlik Sense. Qlik Sense June 2017 Copyright QlikTech International AB. Wszelkie prawa zastrzeżone.

Wymagania systemowe dla Qlik Sense. Qlik Sense 3.1 Copyright QlikTech International AB. Wszelkie prawa zastrzeżone.

2 Szkolenia i doradztwo dla pracowników systemu wspomagania oraz wdrożenie kompleksowego wspomagania w zakresie kompetencji kluczowych

APLIKACJA INTERTON INSTRUKCJA

Zarządzanie i realizacja projektów systemu Microsoft SharePoint 2010

MVVM i XAML w Visual Studio 2015 / Jacek Matulewski. Gliwice, cop Spis treści

Podręcznik szybkiej instalacji

Język JAVA podstawy. wykład 1, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Dodatkowo planowane jest przeprowadzenie oceny algorytmów w praktycznym wykorzystaniu przez kilku niezależnych użytkowników ukończonej aplikacji.

PROGRAM MICROSOFT DEVELOPER NETWORK ACADEMIC ALLIANCE MSDN AA

Fragmenty są wspierane od Androida 1.6

Tour de Mobile Jak odnieść sukces w wyścigu o własną, rozpoznawalną aplikację? Warszawa, 14 maja 2014 r.

Wyspecjalizowani w ochronie urządzeń mobilnych

CMS, CRM, sklepy internetowe, aplikacje Web

IFider. informacje pod ręką. Marcin Zyga tel

SPECYFIKACJA TECHNICZNA OPROGRAMOWANIA

Temat 3. Projektowanie interfejsu użytkonwnika Kalkulator pierwszy program dla IOS

Wymagania systemowe dla Qlik Sense. Qlik Sense June 2018 Copyright QlikTech International AB. Wszelkie prawa zastrzeżone.

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

MimioMobile Podręcznik użytkownika. mimio.com

NAZWA PRODUKTU: Ukryta Kamera Podsłuch w Ładowarce FullHD WiFi USB MicroSD S160 Cechy produktu

REACT NATIVE. Anna Maziejuk Kamil Jankowski

Wprowadzenie do QT OpenGL

xmlns:prism= c. <ContentControl prism:regionmanager.regionname="mainregion" />

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

Sieciowe Technologie Mobilne. Laboratorium 2

POLITECHNIKA ŚLĄSKA WYDZIAŁ AUTOMATYKI, ELEKTRONIKI I INFORMATYKI. Projekt inżynierski. Gra zręcznościowa z elementami edukacyjnymi.

NAZWA PRODUKTU: Ukryta Mini Kamera IP WiFi FullHD Android ios Detekcja Ruchu S163

Jakie urządzenia można podłączyć do Phantoma?

Referat Pracy Dyplomowej

Rodzina Evernote, czyli pomoc w projekcie

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI: 2 CELE LEKCJI: 2.1 Wiadomości: 2.2 Umiejętności: 3 METODY NAUCZANIA: 4 ŚRODKI DYDAKTYCZNE:

programowanie w oparciu o platformę netbeans w praktyce

Wyjaśnienia z dnia r. do treści Zapytania Ofertowego nr ZO/3/FO/POPC/2017 w odpowiedzi na pytania dotyczące Zapytania ofertowego.

Systemy wirtualnej rzeczywistości. Komponenty i serwisy

Programowanie obiektowe

Co to jest smartfon?

Przegląd i ewaluacja narzędzi do szybkiego tworzenia interfejsu użytkownika (RAD).

Zdalny dostęp SSL. Przewodnik Klienta

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt

Programowanie obiektowe i zdarzeniowe wykład 1 Wprowadzenie do programowania zdarzeniowego

RAPORT KOŃCOWY PROJEKTU

Instrukcja instalacji i obsługi oprogramowania OPTIVA Mobile Viewer 2

Programowanie dla Androida. Ubiquitous

Programowanie zespołowe

Inżynieria systemów mobilnych

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

Systemy operacyjne na platformach mobilnych

CODE::BLOCKS & VALGRIND OPRACOWAŁ MICHAŁ BETHKE

Iwona Malczewska

Kopiowanie ustawień SolidWorks

Praca z dźwiękiem Jak nagrywać pliki dźwiękowe.

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Programowanie aplikacji dla technologii mobilnych. mgr inż. Anton Smoliński

Rozdział 2. Programowanie Arduino i kodowanie społecznościowe (29)

Instrukcja obsługi. Zewnętrzny panel videodomofonowy IP. Konfiguracja i obsługa aplikacji DMSS Plus.

Airwatch - zarządzanie mobilnością. Jarosław Świechowicz jswiecho@greeneris.com

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

MVVM Light Toolkit. Julita Borkowska

Swing Application Framework czyli tam i z powrotem. Copyright Piotr Kochański & Erudis,

Android - wprowadzenie. Łukasz Przywarty

Transkrypt:

MonoGame Wieloplatformowe gry w C# Mateusz Cicheński

Plan prezentacji Założenia Alternatywy Narzędzia Różnice między WP8, ios, Android DEMO Podsumowanie

Założenia CEL: Stworzenie wieloplatformowej gry w C# Prosta gra mobilna Grafika 2D

Alternatywy I wiele innych

Narzędzia

Adobe Illustrator Alternatywnie dowolny inny program do tworzenia grafiki

MonoGame Open source Implementacja XNA 4.x Dostępne skompilowane biblioteki na większość platform

Visual Studio 2013 Dostępne w ramach MSDN lub DreamSpark Możliwość korzystania z dodatkowych narzędzi, np. ReSharper Integracja z TFS (oczywiście są też wtyczki dla SVN i GIT ) Darmowy hosting TFS/GIT na visualstudio.com

Xamarin Studio IDE dostarczane przez Xamarin W pełni zgodne z projektami utworzonymi w Visual Studio Dostępne z każdą licencją Xamarin (w tym darmową STARTER)

Xcode 6 Darmowe narzędzie od Apple Używane tylko po to, żeby opublikować aplikację w sklepie Apple

Narzędzia potencjalne koszty WINDOWS PHONE ANDROID ios Xamarin.Android licencja $99 (edu) Business $999 Komputer od Apple Mac Mini $599 Mac Air $999 Xamarin.iOS licencja $99 (edu) Business $999

Developer account potencjalne koszty WINDOWS PHONE ANDROID ios DreamSpark/MSDN free Normalnie - 19 EUR Google Play - $25 App Store - $99 / year

Wspólny kod aplikacji Pipeline czcionki, tekstury, dźwięki Pipeline

Różnice między WP8, ios, Android Różne rozdzielczości urządzeń Cykl życia aplikacji dla ios, Windows Phone i Android jest zupełnie inny Brak niektórych bibliotek w projekcie wzorcowym MonoGame np. SharpDX.XAudio2.dll (zależy od wersji instalatora)

Różne rozdzielczości

Różne rozdzielczości *dane pochodzą z: www.iosres.com

Różne rozdzielczości 4:3 3:2 16:10 5:3 16:9

Różne rozdzielczości rozwiązanie Ustalenie rozdzielczości renderowania Skalowanie Letterboxing Zamiast czarnych pasków tło związane z grą

Cykl życia aplikacji

Cykl życia aplikacji

Cykl życia aplikacji

Cykl życia aplikacji

Cykl życia aplikacji rozwiązanie Windows Phone i ios są bardzo podobne, nie trafiłem na problemy Android aplikacja po przejściu w stan Background traci m.in. kontekst Open GL, co oznacza, że jeśli nie zrobimy czegoś dodatkowo, to trzeba będzie ponownie wczytać tekstury co z kolei wiąże się z ponownym oczekiwaniem na załadowanie się aplikacji trzeba samodzielnie oprogramować logikę ekranu ładowania ale MonoGame potrafi przywrócić tekstury, musimy tylko zapewnić aktualność referencji

github.com/hrkm/rpg_monogame [DEMO]

Układ projektów projekt XNA, wymaga VS2010 (ale można skorzystać z narzędzia Pipeline) Wszystkie pliki *.cs znajdują się w InfiniteSnake, pozostałe projekty je tylko linkują. (za wyjątkiem plików specyficznych dla platformy, np. Activity dla Androida)

Podpięcie gry Windows Phone 8 public GamePage() { InitializeComponent(); } _game = XamlGame<Game1>.Create("", this);

Podpięcie gry Windows Store App static void Main() { var factory = new MonoGame.Framework.GameFrameworkViewSource<Game1>(); Windows.ApplicationModel.Core.CoreApplication.Run(factory); }

Podpięcie gry Android protected override void OnCreate(Bundle bundle) { base.oncreate(bundle); Game.Activity = this; _game = new Game1(); SetContentView(_game.Window); _game.run(); }

Podpięcie gry ios public override bool FinishedLaunching(UIApplication app, NSDictionary options) { game = new Game1(); game.run(); } return true;

Efekt końcowy różne platformy w kodzie Lepiej stworzyć interfejs, który byłby implementowany per platforma. Alternatywnie klasę bazową nadpisywaną przez implementacje per platforma.

Efekt końcowy Windows Phone 8

Efekt końcowy Windows Store

Efekt końcowy ios

Efekt końcowy Wspólny kod dla wszystkich wersji Modyfikacje dla poszczególnych systemów dyrektywy preprocesora głównie sposób zapisywania danych w pamięci urządzenia na potrzeby ios dostosowana rozdzielczość i tekstury brak letterboxa Gra dostępna za darmo: Google Play (https://play.google.com/store/apps/details?id=com.mcichenski.infinitesnake) [2-3h] Windows Phone Store (http://www.windowsphone.com/s?appid=5d87cf2f-bb48-4076-8a07-6094b8a83a44) [5 dni] [8h] Windows Store (http://apps.microsoft.com/windows/app/infinite-snake/63a366d7-f76e-482d-aff1-bdfa3a4ebbd8) [5 dni] [8h] ios iphone, ipad (https://itunes.apple.com/tr/app/infinite-snake/id795354975) [10 dni][7 dni]

Podsumowanie Da się. Wiele komercyjnych produkcji powstało przy użyciu takiej kombinacji narzędzi (przynajmniej jeśli chodzi o stronę programistyczną) Bastion, Fez, Transistor, TowerFall: Ascension

Pytania? [mateusz.cichenski@cs.put.poznan.pl] bit.ly/oop2014