Mobile Games mit Windows Azure

1.591 Aufrufe

Veröffentlicht am

Im letzten Jahr entstand für einen großen Kunden ein Mobile Game für iOS, das serverseitig auf Windows Azure basiert. Zum Einsatz kommen dabei Computer-Instanzen, Backup, Table Storage, SQL Database. Die Spiel-Logik wurde serverseitig mit CQRS umgesetzt, das für Azure ideal einsetzbar ist. Der Vortrag gibt einen Einblick in die Architektur und zeigt den Einsatz der gewählten Azure-Komponenten.

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.591
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
5
Aktionen
Geteilt
0
Downloads
2
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Mobile Games mit Windows Azure

  1. 1. Mobile Games mit Microsoft Azure Jürgen Gutsch
  2. 2. 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
  3. 3. Was wir können
  4. 4. 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 jobs@yooapps.com! • 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%)
  5. 5. Das Game http://www.youtube.com/watch?v=I58AQs8QS18
  6. 6. Das Game
  7. 7. 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
  8. 8. Das iOS Game
  9. 9. Das iOS Game
  10. 10. 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 Ricola zu senden um echtes Kräuterzucker zu erhalten • In der Gesamt-Highscore so weit oben wie zu sein.
  11. 11. Anforderungen • Stabilität • Ausfallsicherheit • Skalierbarkeit • Performance • Wartbarkeit • Ausführliches Logging • Spielhistorie
  12. 12. 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)
  13. 13. 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
  14. 14. Microsoft Azure 2 Web Roles 1 Worker Roles Table Storage SQL Database Windows Azure Cache
  15. 15. 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 denormalisierten Datenbank
  16. 16. 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
  17. 17. Exkurs: CQRS Pattern Quelle: SQRS Journey: http://msdn.microsoft.com/en-us/library/jj591573.aspx
  18. 18. Exkurs: CQRS Pattern Quelle: http://www.gridshore.nl/2009/12/21/cqrs-made-easy-with-cqrs4j
  19. 19. 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 … … … …
  20. 20. Fragen / Diskussion / Kontakt Zeit für Fragen und Diskussion jetzt … … oder jederzeit: juergen@gutsh-online.de Twitter: @sharpcms FB//:juergen.gutsch Skype//:juergen.gutsch

×