21
Mobile Games mit Microsoft Azure Jürgen Gutsch

Mobile Games mit Windows Azure

Embed Size (px)

Citation preview

Page 1: Mobile Games mit Windows Azure

Mobile Games mit

Microsoft AzureJürgen Gutsch

Page 2: Mobile Games mit Windows Azure
Page 3: Mobile Games mit Windows Azure

Jürgen Gutsch

• Developer, Consultant und Trainer bei der YooApplications AG in Basel

• Stolzer Papa von drei Kindern

• Blogger, Autor von Fachartikeln

• Speaker auf Konferenzen und User Groups

• User Group Leader des .NET-Stammtisch Konstanz-Kreuzlingen

• .NET-Begeisterter Softwareentwickler

• Webentwickler

• Open Source und ALT.NET Enthusiast

• Clean Code Developer

Page 4: Mobile Games mit Windows Azure

Was wir können

Page 5: Mobile Games mit Windows Azure

Wir suchen Dich!

Die YooApps bietet fünf interessante Positionen, die es zu besetzen gilt. Trifft eines der fünf Profile unter: www.yooapps.com/jobs auf dich zu, so sende uns noch heute deine Unterlagen an [email protected]!

• Software Engineer im Bereich .Net (80-100%)

• Unity3D Game Developer (80-100%)

• Web- oder Mobile Developer (80-100%)

• Projektleiter / Kundenberater (80-100%)

• User Experience Designer / Konzepter (80-100%)

Page 6: Mobile Games mit Windows Azure

Das Game

http://www.youtube.com/watch?v=I58AQs8QS18

Page 7: Mobile Games mit Windows Azure

Das Game

Page 8: Mobile Games mit Windows Azure

Das Game

• Kräuteranbau auf einem Feld

• Pflegen und Hegen der Kräuter

• Ernten und Verarbeiten der Kräuter

• Verkaufen und Sammeln der Kräuter

• Nutzung von Gutscheincodes

• Geo-Interaktion => Felder an echten Geopositionen

• Standortabhängige Feldqualität

• Reales Wetter am Standort des Feldes

• Highscore

• Push-Benachrichtigung

Page 9: Mobile Games mit Windows Azure

Das iOS Game

Page 10: Mobile Games mit Windows Azure

Das iOS Game

Page 11: Mobile Games mit Windows Azure

Konzept

• Rundenbasiert

• Beliebig viele Runden pro Spieler

• Mehrere Felder pro Runde

• Krauter, Geräte und Felder kosten Geld

• Verkauf von Kräutern bringt Geld

• Aktionen bringen Punkte

• Ziele des Spiels:

• Von allen Kräutern eine bestimmte Menge an Ricolazu senden um echtes Kräuterzucker zu erhalten

• In der Gesamt-Highscore so weit oben wie zu sein.

Page 12: Mobile Games mit Windows Azure

Anforderungen

• Stabilität

• Ausfallsicherheit

• Skalierbarkeit

• Performance

• Wartbarkeit

• Ausführliches Logging

• Spielhistorie

Page 13: Mobile Games mit Windows Azure

Zahlen

• Über 17.500 App Downloads

• Knapp 25.500 Felder

• Über 13.000 Spieler

• Über 4.500 aktive Spieler

• Davon Über 2.500 sehr aktive Spieler(>50.000 Punkte)

• Etwa 6.000 Events pro Spielrunde und Spieler

• Ca. 54.000.000 Einträge

(Stand März 2014)

Page 14: Mobile Games mit Windows Azure

Infrastruktur

• Compute-Instanzen / Web Roles mit

• REST Schnittstelle zur Kommunikation mit den Clients

• Spiellogik zum Großteil auf dem Server

• Background Services / Worker Role

• Für Push-Nachrichten und Schädlingsberechnung

• Relationale Datenbank für Veränderbare Daten

• Nutzerdaten, Highscore

• Bestellungen (von Kräuterzucker)

• Objektdatenbank für nicht veränderbare Daten

• Spielaktionen

• Nur hinzufügen von einzelnen Daten

• Schnelles Lesen von vielen Daten

Page 15: Mobile Games mit Windows Azure

Microsoft Azure

2 Web Roles 1 Worker Roles

Table Storage

SQL Database

Windows Azure Cache

Page 16: Mobile Games mit Windows Azure

CQRS Pattern

• Die Spielrunde ist das Aggregate

• Unsere Hauptdomäne in der alle Aktionen stattfinden

• Alle Interaktionen finden in einer Spielrunde statt

• Background-Service und User führen Aktionen aus

• Azure Table Storage wird als Event Store verwendet

• Snapshots werden im Azure Cache abgelegt

• Eigentlich „Event Sourcing + Commands“ statt CQRS

• Querying findet auf dem Snapshot aus dem Eventstore statt und nicht auf einer denormalisiertenDatenbank

Page 17: Mobile Games mit Windows Azure

Exkurs: CQRS Pattern

Quelle: CAP-Theorem: http://de.wikipedia.org/wiki/CAP-Theorem

• Konsistenz: Alle Knoten sehen zur selben Zeit, dieselben Daten.

• Verfügbarkeit: Alle Anfragen an das System werden stets beantwortet.

• Partitionstoleranz: Das System arbeitet auch bei Verlust von Nachrichten, einzelner Netzknoten oder Partition des Netzes weiter.

CAP-Theorem

Page 18: Mobile Games mit Windows Azure

Exkurs: CQRS Pattern

Quelle: SQRS Journey: http://msdn.microsoft.com/en-us/library/jj591573.aspx

Page 19: Mobile Games mit Windows Azure

Exkurs: CQRS Pattern

Quelle: http://www.gridshore.nl/2009/12/21/cqrs-made-easy-with-cqrs4j

Page 20: Mobile Games mit Windows Azure

Exkurs: CQRS Pattern

Event Store

Aggregate Version Event Details

GR1 1 Field Added GEO=lat,long;Name=MyField;

GR1 2 Quadrant Plowed Q=a1,a2,a3,a4,…

GR2 1 Field Added GEO=lat,long;Name=MyField

GR1 3 Quadrant Seeded Seed=pepermint;Q=a1,a2,a3,a4

GR2 2 Quadrant Plowed Q=b2,b3,c2,c3

GR2 3 Quadrant Seeded Seed=pepermint;Q=b2,b3,c2,c3

GR3 1 Field Added GEO=lat,long;Name=MyField

GR1 4 Quadrant Weeded Q=a1,a2,a3,a4

… … … …

Page 21: Mobile Games mit Windows Azure

Fragen / Diskussion / Kontakt

Zeit für Fragen und Diskussion jetzt …

… oder jederzeit:[email protected]

Twitter: @sharpcms

FB//:juergen.gutsch

Skype//:juergen.gutsch