Softwarearchitektur eines modernen Onlinespieles - PHPUnconference 2013
Nächste SlideShare
Wird geladen in ...5
×

Das gefällt Ihnen? Dann teilen Sie es mit Ihrem Netzwerk

Teilen

Softwarearchitektur eines modernen Onlinespieles - PHPUnconference 2013

  • 514 Views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Sind Sie sicher, dass Sie...
    Ihre Nachricht erscheint hier
    Be the first to comment
No Downloads

Views

Gesamtviews
514
Bei Slideshare
514
Aus Einbettungen
0
Anzahl an Einbettungen
0

Aktionen

Geteilt
Downloads
2
Kommentare
0
Gefällt mir
1

Einbettungen 0

No embeds

Inhalte melden

Als unangemessen gemeldet Als unangemessen melden
Als unangemessen melden

Wählen Sie Ihren Grund, warum Sie diese Präsentation als unangemessen melden.

Löschen
    No notes for slide

Transcript

  • 1. • Crossplatform – Browser, Android, Ios • Echtzeit – Das Spiel läuft unaufhörlich weiter – Schnelle Information über Statusänderungen • Multiplayer – Spieler können einander beeinflussen – Schnelle Information über Beeinflussungen
  • 2. DB DB DB Globaler Redis Pub-Sub Websocket vNodeJS Redis Push-Pull Webserver PHP WorkerPHP WorkerPHP Worker vNodeJS Redis Push-Pull Webserver PHP WorkerPHP WorkerPHP Worker
  • 3. Worker Dispatcher Controller Repository Domain ObjekteDomain Service Redis Event Dispatcher Redis DB Views
  • 4. • Daemon – Abarbeiten zeitgesteuerter Spielereignisse – Arbeitet nicht selbst, erstellt Messages • Cronjobs – Werden über den Daemon abgehandelt
  • 5. • Sockets ersetzen Sessions • Zusätzliche Daten am Socket – Connection ID, Player ID, Spielwelt, Etc. – Gesetzt durch Messages von PHP – Zusätzliche Indizes • In Messages zwischen Node & PHP enthalten – Node  PHP: alle am senden Socket gespeicherte Daten – PHP  Node: eine Kombination der Daten auf die alle verbundenen Sockets gematcht werden • Weiterleitung passender Messages – Interne Daten werden entfernt
  • 6. • API-Test – Beschreibung – Eingehender Nachricht – Ausgehende Nachrichten • Basierend auf Fixtures • Nur auf PHP-Ebene • Rollback nach jedem Test • Dienen gleichzeitig als Dokumentation – Dokumentation ist zwangsweise immer aktuell