Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Hitman on Azure - 2017-09-02 Azure Saturday Copenhagen

51 visualizaciones

Publicado el

Slides from the 2017 Copenhagen Azure Saturday session about building the Hitman game backend and services on Microsoft Azure.
Subjects covered are Game development, Cloud Service Architecture, Actor model, Orleans and Analytics.

Publicado en: Software
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Hitman on Azure - 2017-09-02 Azure Saturday Copenhagen

  1. 1. Hitman From the box to the cloud Christian Corsano Lead Online Programmer @ccorsano Azure Saturday 2017
  2. 2. Introducing Hitman
  3. 3. Hitman • Six games for a nearly 20 years old franchise • Third person, stealth-action puzzle game • Huge sandbox levels to explore • Figure out the clockwork, take out the target • AAA title, shipping on PC, PS4 and XBoxOne
  4. 4. Game development • Creative field • AAA games • High risk multi-year project • Similar to a blockbuster hollywood movie • Hitman Absolution took 6 years • Need to innovate • Adapt faster to the market • Keep players engaged with the franchise
  5. 5. Hitman as a Service • Ever expanding, ever evolving • Digital first • Episodic • Listen and react to the community • Live content • Iterative development • Put a minimal version live and iterate
  6. 6. Backend • Extensibility • Server delivered missions • Server delivered menus • Server driven game modes • Authoritative server • Scoring • Progression • Contracts creation • Supporting services • Analytics, authorization, configuration, administration • Keep it game driven
  7. 7. Architecture
  8. 8. Azure services Agent 47’s weapons of choice WebApps ˃ Shared services & web tools CloudServices ˃ Game logic and stateful user sessions Search ˃ UGC discoverability Storage ˃ Blob, Key value storage & Queues SQL ˃ Relational storage StreamAnalytics ˃ Analytic processing DocumentDB ˃ Object storage AppInsights ˃ Service monitoring & diagnostics DataFactory ˃ Analytic pipeline orchestration HDInsight ˃ On-demand big data processing EventHub ˃ Metric events pipeline Redis Cache ˃ Managed Redis
  9. 9. Going deeper: Game services Hitman Game Client Game Cloud Service Service Web Roles Service Worker Roles Orleans Azure Search Game Service Storage Account Storage tablesResource blobs (privates) Config blobs (publics) Service blobs (privates) Azure Redis Cache Game Service SQL DB HTTPS
  10. 10. Event-based evaluation • Progression, Scoring and more • Examples: NPC Kill, Disguise, Trespassing, Shots fired • C# ”Scripts” evaluation • Bigger evaluation at the end of a session • Custom state machine definition • Executed both client & server side
  11. 11. Hitman Game Client Game Cloud Service Service Web Roles Service Worker Roles Orleans Azure Search Game Service Storage Account Storage tablesResource blobs (privates) Config blobs (publics) Service blobs (privates) Azure Redis Cache Game Service SQL DB HTTPS
  12. 12. Orleans • Open source framework • Actor model for .net • Isolated, persistent, light weight, single threaded objects • Dynamically instanciated • Blocking concurrency at the actor level • Each player is an actor • Great way to scale: run more actors ! • Isolate user sessions • Automated lifecycle
  13. 13. Service Fabric • Same approach, but fully managed • Actors running on a scalable cluster • Great development environment
  14. 14. Analytics
  15. 15. Analytics • Vital system • Business indicators • Gameplay feedback • Issues investigation • Custom assembly of Azure services • Web collector • EventHub • Stream Analytic jobs • Data Factory • HDInsights (Hadoop)
  16. 16. Data pipeline Collector Event Hub Stream processing Data Orchestration Aggregation Prepared data store Fine-grained aggregations
  17. 17. Tutorial level
  18. 18. Conclusion
  19. 19. Looking back • More than a year being live • More than one client update per month • Even more server updates • Live content coming out every week • Learnings • Azure runs great ! • Automation & process are key • Operating on a live product
  20. 20. Looking back more learnings • Beware when using small VM sizes • Port exhaustion comes quickly (~1k limit) • Be careful with HttpClient instances • CloudService load-balancing • Renegociate persistent connections regularly • ARM templates are great • Once you find examples and documentation
  21. 21. Looking forward • Hitman is a platform • More live updates to come
  22. 22. Q & A
  23. 23. ØVRIGE SPONSORER SPECIAL SPONSORER

×