私は現在、Scalaで書かれているわりと古めのゲーム用サーバーに、いろいろ機能追加したり不具合修正したりする仕事をしています(オマケとして、Nodeで管理ツール(イベントやお知らせの編集、プレイヤーの個別情報の閲覧や設定)やKPIツール(各種統計をとってビジュアライズする、ゲーム運用の生命線となるツール)を書いたり、PythonやGoでテストクライアントを書いたりもしています)。 このサーバーシステム、これまでのいくつかのゲームタイトルでおおむね順調に稼働していた実績を買われ、差分開発ということで別のゲームへの流用を打診いただき、ふたつ返事でOKさせていただいて機能追加をしてきたものです。 で、簡易的な負荷試験で見つかった問題を改善し、臨んだクローズドβテストでは何も問題なく左うちわ。 しかし、大量のプレイヤーが参入したオープンβテストで、これがもう、壮絶過ぎる大破産を迎えてしまいました。
![【ポエム】Scala製ゲームサーバーのあれやこれやを大チューニングした](https://cdn-ak-scissors.b.st-hatena.com/image/square/b34987831823692c9f23005ca57978f7d9c7a07c/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JUUzJTgwJTkwJUUzJTgzJTlEJUUzJTgyJUE4JUUzJTgzJUEwJUUzJTgwJTkxU2NhbGElRTglQTMlQkQlRTMlODIlQjIlRTMlODMlQkMlRTMlODMlQTAlRTMlODIlQjUlRTMlODMlQkMlRTMlODMlOTAlRTMlODMlQkMlRTMlODElQUUlRTMlODElODIlRTMlODIlOEMlRTMlODIlODQlRTMlODElOTMlRTMlODIlOEMlRTMlODIlODQlRTMlODIlOTIlRTUlQTQlQTclRTMlODMlODElRTMlODMlQTUlRTMlODMlQkMlRTMlODMlOEIlRTMlODMlQjMlRTMlODIlQjAlRTMlODElOTclRTMlODElOUYmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPTIzZjNjNjJjNjEyMmUyZTBhY2VhOTU1OWJlOGZmYTE3%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDB5b25lemF3YWl6dW1pJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz0xZjI0ZmU1YjVmZDY1M2JiMGE2YzE3MjVkNzJmNjUyYg%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3Dac6118774a934578cfb61c34e4ee684a)