Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)

5,570 views

Published on

Albion Online is a cross-platform sandbox MMO RPG game. This talk takes you behind the (technical) scenes. We will take a look at the structure of the server farm and its inner workings, the databases, the threading and message processing model and many other interesting implementation aspects. On the client side, Albion uses the well-known Unity game engine. The second part of the talk will describe how we use Unity (and which features we do not use, which is just as important!)

Published in: Software
  • I have always found it hard to meet the requirements of being a student. Ever since my years of high school, I really have no idea what professors are looking for to give good grades. After some google searching, I found this service ⇒ www.HelpWriting.net ⇐ who helped me write my research paper. The final result was amazing, and I highly recommend ⇒ www.HelpWriting.net ⇐ to anyone in the same mindset as me.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Hi there! I just wanted to share a list of sites that helped me a lot during my studies: .................................................................................................................................... www.EssayWrite.best - Write an essay .................................................................................................................................... www.LitReview.xyz - Summary of books .................................................................................................................................... www.Coursework.best - Online coursework .................................................................................................................................... www.Dissertations.me - proquest dissertations .................................................................................................................................... www.ReMovie.club - Movies reviews .................................................................................................................................... www.WebSlides.vip - Best powerpoint presentations .................................................................................................................................... www.WritePaper.info - Write a research paper .................................................................................................................................... www.EddyHelp.com - Homework help online .................................................................................................................................... www.MyResumeHelp.net - Professional resume writing service .................................................................................................................................. www.HelpWriting.net - Help with writing any papers ......................................................................................................................................... Save so as not to lose
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THE BOOK INTO AVAILABLE FORMAT (New Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full doc Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download doc Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THE can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THE is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBOOK .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, CookBOOK, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, EBOOK, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THE Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THE the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THE Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Got a new Iphone 6 in just 7 days completing surveys and offers! Now I'm just a few days away from completing and receiving my samsung tablet! Highly recommended! Definitely the best survey site out there! ▲▲▲ http://t.cn/AieX2Loq
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Sex in your area is here: ❶❶❶ http://bit.ly/39mQKz3 ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)

  1. 1. Software Architecture of an MMO David Salz david@sandbox-interactive.com
  2. 2. Who am I?  David Salz  15 years in the industry  CTO, Co-Founder of Sandbox Interactive  35 people  based in Berlin  we only do Albion Online!
  3. 3. In this talk:  What is Albion Online?  Middleware + Design Decisions  Server Architecture  How we use Unity (and how not)
  4. 4. Albion Online  Sandbox MMORPG  Cross-Platform (Windows/OSX/Linux/Android/iOS)  One World (no „Shards“ or „Servers“, not even for different platforms)  Player-Driven Economy (everything is player-crafted)  No Character Classes („you are what you wear“)  Strong focus on PvP + Guilds  Hardcore („Full Loot“ in PVP Areas)  Pay-to-play model  4 years in the making  Currently in Closed Beta w/ 80.000+ „founding“ players  „Release“ in Q4/2016
  5. 5. Albion Online  The initial pitch (2012)  Play-crafted equipment, buildings  One World (like EVE Online)  Guild vs. Guild Territotorial conquest  Top-Down perspective + Combat (like League of Legends)  Simple graphics, „can even be 2D“  PVP focus, no PVE, no Mobs, no Dungeons  Release in 2013 
  6. 6. Middleware Selection  Engine Selection  Unity made sense – inexpensive, accessible  Cross-Platform was a „target of opportunity“  Database Selection  One world  need a very scalable database, NoSQL  Cassandra sounded suitable  still use SQL for query-heavy problems  Networking Middleware  Photon!  can use C# on server (like in Unity!)  works with all Unity platforms
  7. 7. Apache Cassandra  NoSQL Database  Originally developed by Facebook  Open Source (Apache-License)  Java  Concept: everything is a hash table  in-memory (as much as possible)  optimized for high throughput  scales horizontally (just add servers)  redundant (no single point of failure)  CQL: SQL-like language (w/ massive restrictions – it‘s NoSQL)
  8. 8. Apache Cassandra  funny story from public Alpha Test…  all buildings disappeared during lunch break  found this in Cassandra Changelog:  W(  lesson learned: careful with cutting edge technology * Fix possible loss of 2ndary index entries during compaction (CASSANDRA-6517)
  9. 9. Apache Cassandra  Cassandra uses timestamps to resolve conflicts between database nodes  also requires exact time sync beween servers  i.e. ntp service
  10. 10. Hosting  Hosted with Softlayer  good, but quite expensive  bare-metal machines only  currently: 8x 10-Core Intel Xeon, 32 GB RAM  Should be able to handle ~15k CCUs  Originally:  Hosted across 2 Datacenters (better ping for players)  Worked, but bad idea! (inter-server disconnects, latency)
  11. 11. Networking  Photon  UDP-based protocol (reliable/unreliable as needed)  TCP for chat, inter-server communication  use only basic message functionality (no Photon frameworks)  mostly simple messages, in rare cases JSON content  Had to implement secure TCP-reconnect abilities  Chat  Tried IRC…  … was only trouble (difficult to secure, customize)  Implemented own system in a couple of days
  12. 12. Consequences  Server needs to work without Unity  Ideally, client works without Unity, too!  think: tools, stress-test-bots!  Use Unity only as rendering front-end  cannot rely on Unity features for basic functions!  levels / game objects  collision  pathfinding
  13. 13. Separation ObjectFactory ObjectViewFactory Object +Position +… +RequestAction() ObjectView +Renderer +AnimationCtrl +HandleInput() destroyed changed …etc.. created Object +Position +… +RequestAction() Server Client Unity-Client Interest-Management changed …etc.. obj-enter obj-leave
  14. 14. Server
  15. 15. Server Farm Game Server Game Server Game Server Login Server World Server Marketplace Server GoldMarket Server Statistics Server Ranking Server BackOffice Server Chat Server Client Connect to different game server depending on location in game world Game DB (Cassandra) Accounts DB (Postgres) Market DB (Postgres) GoldMarket DB (Postgres)
  16. 16.  Todo: screenshot of gold market
  17. 17.  Todo: screenshot of marketplace
  18. 18. Game Servers / World Server  game world split into unique „clusters“ of ~ 1 km²  current world: ~600, next world: x2  distributed among game servers  player changes servers when travelling  handoff done through database (even on same server)  Instances are dynamically created  world server coordinates this  World Server  responsible for everything „global“  guilds, parties, coordination of guild battles etc.
  19. 19. Threading Model (Game Server) IO ThreadIO ThreadNetwork IO Thread Event Queue Logging IO Thread Event Scheduler Cluster Thread Event Queue Event Scheduler Cluster Thread Pathfinding Thread Database IO Thread Cluster Thread makes request Events / Results get put into Event Queue Cluster polls Events from Queue and Scheduler
  20. 20. Threading Model  Game logic for one game area („cluster“) is single-threaded  Interactions between game objects too complicated otherwise; would require lots of locking  Objects „sleep“ whenever possible (especially mobs)  All IO (Network, Database, Logging) and other „heavy lifting“ (pathfinding) offloaded to worker threads  Instances (Player islands, instanced dungeons) are combined in thread pools  Other servers (chat, rankings) are completely multi-threaded
  21. 21. There is no spoon!  There is no game loop!  i.e. no Update() or Tick() functions for game objects  Gameplay thread processes events in order of arrival  Events are:  Network input, i.e. player commands  Timers (Event Scheduler)  If an object needs a tick (Mobs do), it creates a recurring timer  Results from DB queries (asynchronous)  Results from pathfinding  …
  22. 22. Interest Management  Players should only „see“ (network-wise) what‘s on their screen  important to reduce traffic…  … and prevent cheating!  Find objects a player can „see“ (and update when things move)  Objects send messages to all players that „see“ them  Needs to be efficient!  ~500 mobs / cluster  > 10.000 interactive objects (mostly trees )  up to 300 players
  23. 23. Interest Management grid based hash (10x10m cells) ● cells contain list of objects inside ● list is updated by object itself when moving ● cells fire events: ● ObjectEnteredCell() ● ObjectLeftCell()player ● objects also fire events ● ObjectMoved() ● ObjectDestroyed() ● EventFired()
  24. 24. Interest Management player Interest area Moves with player Subscribe to objects when they enter inner area Unsubscribe when they leave outer area Tell player when: ● an object enters / leaves interest area ● an object in the area fires an event
  25. 25. Logging infrastructure Game Server Game Server Game Server Log File Log File Log File Logstash Agent Redis Elasic Search Kibana  track errors, generate statistics  classic ELK stack (Elastic Search, Logstash, Kibana)  kind of unreliable for us  Also use Cassandra Counters a lot! Logstash Agent Logstash Agent Own tools
  26. 26. Kibana
  27. 27. Kibana
  28. 28. Client
  29. 29. Level Design  Zones built in Unity (Unity scenes)  Consist only of Unity prefabs („tiles“)  ~ 30.000 / level  Collision is painted for each tile  Level gets exported to XML format  level loading independed from Unity (for server, client)  in Unity: instantiate prefabs  actually faster and more controllable!
  30. 30. Level consists of „tiles“ (Unity prefabs) Tile has 3d collider (for mouse picking + ground height definition) 2d collision is painted per tile (blocks movement / blocks shots / blocks placement etc.) Ground tile Object (non-ground) tile
  31. 31. Collision  TODO: pictures, demo Collision of all tiles is blended together
  32. 32. Unity Features we (don‘t) use…  Do:  Editor: cool and customizable (but often too slow)  Sound: yes, but want to switch to Wwise or FMOD  Mechanim: now, after a long struggle (memory usage!)  Not or very limited:  Scenes – only to load GUIs (but not levels)  Collision/Physics – only raycasts @ ground  GUI – use modified NGUI instead  Network – use Photon instead  Baked light – scenes way too large
  33. 33. Unity troubles  funny story…  64 bit editor came just in time for us  32bit editor was no longer able to build our project  used > 2.7 GB RAM during build with is the max for win32 processes  headless was still working!
  34. 34. Character rendering  Character + Equipment gets baked into one mesh  want 1 draw call / character (well, + special effects)  real-time  parts of character mesh hidden depending on equipment  Only one material for character + all equipment items  Only one texture; also use vertex colors, specular  Limit number of characters drawn (esp. on mobile)
  35. 35.  Todo: characters picture
  36. 36. Debugging  Can run and debug complete environment locally on developers machine  Human-readable network log file  Server and client errors caught in log files  Searchable, with context  Public staging system  Community can preview patches, updates  QA freelancers from the community  Frequently mirror live database to public staging system  Can download live database to developer machines
  37. 37.  TODO: screenshot of network log file
  38. 38. Cheaters  people started using memory debuggers and packet sniffers pretty much on day 1  Absolute server authority is king!  Includes what information you reveal to client!  only one serious cheat ever found  mistake on our side –“believed“ data from client without proper check  Gold Sellers / Account Stealing  adding email verification greatly improved this
  39. 39. Cheaters  .NET code very accessible for analysis  camera hacks (minior problem because of interest management)  found internal tools , cheats in code (not working on live)  extracted data from client  maps, player rankings  cool community projects!  Users built bots directly into client   Difficult to prevent  Obfuscation – helps, but not much  We are doing more integrity checks now!  Future: Unity IL2CPP ?
  40. 40. Future Challenges  Growing player base…  Want a more diverse world  exploring more modular level design right now  Keeping iOS / Android version in sync with server  ability to download data files without patching  clients support old server / server supports old clients
  41. 41. Thank you! Questions / Comments? david@sandbox-interactive.com We are hiring! https://albiononline.com/en/jobs

×