  Online games with modifiable virtual environments (MVEs) have become highly
popular over the past decade. Among them, Minecraft -- supporting hundreds of
millions of users -- is the best-selling game of all time, and is increasingly
offered as a service. Although Minecraft is architected as a distributed
system, in production it achieves this scale by partitioning small groups of
players over isolated game instances. From the approaches that can help other
kinds of virtual worlds scale, none is designed to scale MVEs, which pose a
unique challenge -- a mix between the count and complexity of active in-game
constructs, player-created in-game programs, and strict quality of service.
Serverless computing emerged recently and focuses, among others, on service
scalability. Thus, addressing this challenge, in this work we explore using
serverless computing to improve MVE scalability. To this end, we design,
prototype, and evaluate experimentally Servo, a serverless backend architecture
for MVEs. We implement Servo as a prototype and evaluate it using real-world
experiments on two commercial serverless platforms, of Amazon Web Services
(AWS) and Microsoft Azure. Results offer strong support that our serverless MVE
can significantly increase the number of supported players per instance without
performance degradation, in our key experiment by 40 to 140 players per
instance, which is a significant improvement over state-of-the-art commercial
and open-source alternatives. We release Servo as open-source, on Github:
https://github.com/atlarge-research/opencraft
