「cloudpack」などのクラウドサービスを提供するアイレットは、クラウド活用を考えるゲーム開発者に向けたセミナー「Diarkisエンジン -他にはない強みとは-」を7月6日に実施しました。
セミナーでは、Diarkisの代表取締役CEOの高橋信頼氏と、アイレットのカスタマー支援事業部で事業部長を務める本田卓氏が登壇。Diarkisの開発するリアルタイム・ネットワーク・エンジン「Diarkisエンジン」をテーマに、ゲーム開発に使用される際の特徴や機能カスタマイズなど、開発における解説・紹介が行われました。本稿では、セミナーの模様について、レポートをお届けします。
アイレット公式サイト

登壇者情報
●高橋信頼氏
Diarkis 代表取締役CEO。リアルタイム通信技術を中心に開発を続け、シリコンスタジオやコロプラで多くのメジャータイトルの大規模ネットワークシステムを手がけてきた。新しいエンジン「Diakris」を使って新しい「リアルタイム」な通信を幅広い分野に提供し、これからの新しいコミュニケーションを作り上げられるような環境を提供することを目指す。

●本田卓氏
アイレット カスタマー支援事業部 事業部長。Amazon Web ServicesやGoogle Cloud Platformを利用する際の運用・保守の代行サービスなどを展開する「cloudpack」を提供。バックアップや24時間365日の監視、技術的な問い合わせに対するサポートまで、クラウドサービスを快適に使う手伝いをしている。

Diarkisの分散スケールの概念と“6つのプロダクト”について
ユーザー間の通信を分散・仲介することで、数百万の大規模ユーザーを接続する、大規模リアルタイム通信エンジンである「Diarkis」。高橋氏はDiarkisの設計理念について、「1サーバー単位で処理ができるクライアント数を増やすことを中心とする設計ではなく、並列に分散することによってパフォーマンスのスケールアウトと耐障害性を両立させることにあります」と紹介。クラスターの仕組みになっているため、例えサーバー障害が起きても、接続を切り替えるだけでサービスの継続ができる仕組みになっていると言います。

Diarkisの開発環境は、サーバー側はGoあるいはC/C++で開発することが可能で、クライアント側はC#、C++に対応したSDKと、WebSocketにはJavascriptのSDKの提供が行われています。Diarkisが提供するC++やCクライアントSDKを、それぞれのコンソールのSDKと組み合わせることで、スマホゲームはもちろん、PlayStationやニンテンドースイッチ、Xboxといったコンシューマーゲームの製作ができるようになります。
また、メトリックスAPIを使った分析と監視もでき、サーバーノードごとのクライアントの同時接続数やパケットの送受信数などのメトリクスを取得するためのAPIも提供しており、開発や導入支援や技術支援といったサポートについても、全て国内で行われているそうです。

では、Diarkisは具体的にどのような機能を有しているのでしょうか。主なものは、以下の6つです。
1.Diarkis Room
仮想空間の中に、ユーザー間でパケットのリアルタイムの通信をやり取りが可能な「ルーム」を定義することができます。仮想的に区切られた空間の中で特定のユーザー同士が遊ぶゲームを簡単に作ることができるため、例えば4対4でのチーム戦や、大規模バトルロイヤルのようなゲームの製作が可能です。
マルチユーザーのFPSなど低遅延の実装に適した機能で耐障害性と低遅延性を両立させた機能があり、オンデマンドでクラスター内の別ポッドにルームを移動する機能も持ちます。
2.Diarkis MatchMaker
レベルやランキングなどのユーザーの属性に基づいて、他のユーザーやルームなどをマッチさせる機能。数十万を超えるマッチメイキング処理を、高速で同時に行うことができます。
3.Diarkis Field
仮想空間の中でユーザーの座標を元にお互いの視界に入る・入らないという判定を行い、視界に入ると判定されると自動的にパケットのやり取りが可能となり、お互いが見える状態にすることができます。大規模MMOアプリに適切な機能です。これまでのようにサーバごとにMMO ワールドを分割する必要がないという特徴を持っています。
4.Diarkis Group
通信プロトコルの異なるクライアントも同一のグループに参加することができる、ユーザー間のチャットなどに適した機能です。ルームと違い、人数制限がありません。
5.Diarkis P2P
DiarkisサーバクラスタがSTUNサーバとTURNサーバとして機能することで、クライアント同士の直接通信(P2P)による低遅延通信を実現します。格闘ゲームのように1フレーム単位で調整する必要があるゲームの製作に役立ちます。
6.Diarkis TimedData
サーバ側で定期的に処理を発生するスケジューラーの役割を持つほか、時間の経過によって変化する数値や状態を管理し、時限性のイベントなどを行うことができます。

Diarkisのカスタムロジックについて
Synamonが提供しているビジネスVRプラットフォーム「NEUTRANS」のリアルタイムエンジンに、Diarkisを実際に導入したという本田氏。その経緯について、「DiarkisはLinux上で動くほか、スケーリングや障害に強いという利点があります。さらに、国内の製品のため、開発のサポートで安心感がありました」と振り返ります。
ただし、Diarkisのルーム情報はUDPサーバーで管理されているため、Synamon側のHTTPサーバー情報を渡す手段がなかったことから、Synamon側のHTTPサーバーへ、Diarkisからイベント通知を行うよう、カスタムロジックを組み込んだと本田氏は言います。

カスタムロジックを組み込む際のプログラミングについて、本田氏は「ドキュメントがしっかりとまとまっており、細かいところはDiarkisさんが迅速丁寧に答えてくれたので、特に問題は起きませんでした」と、サポートの手厚さについてコメント。「Go言語を使用するためビルドが必要ですが、ビルドはサーバーにソースコードを置いてビルド先のディレクトリを指定するだけです。あとはバイナリをサーバーに再配置してプログラムを再起動するだけで済み、1バイナリなので扱いがとても楽でした」と続けました。


また、Go言語の習得コストについて、本田氏は「Diarkisがライブラリとして通信データの型の変換等も用意しているため結局実装コストは低い」とし、「バイナリ出力も1バイナリとシンプルなので、ビルドからテストまでの工程が短く、ビルド自体も数秒で行うことができます。カスタムのサンプルも用意されているのでとっつきやすかったです」と振り返りました。

最後に、高橋氏が「これからリアルタイムの通信ありきのゲームが、当たり前の世界になってくると思います。昔からゲームを作っていた方の中には、ネットワークがよく分からないと後ろ向きがちになってしまう方もいらっしゃるかもしれませんが、実際にやってみると割と楽しいところがありますので、ぜひチャレンジしていただければと思います」、本田氏からは「(Diarkisは)自分が作りたいゲームを実現することができるエンジンだと思います。ぜひ活用していただいて、良いビジネスを展開していただければと思います。Diarkisのインフラ運用や開発についてお悩みの方は、ぜひ弊社にご相談ください」と挨拶し、セミナーのまとめとしました。
質疑応答
セミナーの最後のパートでは、登壇者が視聴者からの質疑に応答する時間が設けられており、Diarkisにおけるゲーム制作などの質問が寄せられました。
――Diarkisが対応しているプラットフォームについて教えてください。
高橋信頼氏(以下、敬称略):スマホ向け(Android/iOS)はもちろん、PlayStationやニンテンドースイッチ、Xboxのゲームも開発できます。また、PC版に関しては、現在PC版を販売する上で主流となっているSteamというプラットフォームに特化したAPIを用意しているわけではないのですが、SDKを組み込んでいただければあまり複雑な開発をしなくても対応させることが可能です。
――Diarkisを活用したゲームを海外展開する際に、開発者側で何か設定を行う必要はあるのでしょうか?
高橋:世界中どこでデプロイしていただいても大丈夫ですし、プレイヤーがどこの国からアクセスしても同じような体験を提供できます。海外のデベロッパーと協業することもあると思いますが、直接英語でのサポートも対応しますのでご安心ください。
――イベント用のVRアプリの制作を検討しています。数万人規模のイベントVRアプリ上でのイベントを考えた場合、ボトルネックはクライアント側になるのでしょうか。また、リアルタイム通信サーバーのサービスについて、Diarkisの強みについて教えてください。
高橋:イベント用のVRアプリではクライアント側で描画する必要があるため、それぞれのマシンのスペックに左右されることになります。一番良いマシンスペックに合わせた設計にはできないため、クライアント側で描画の数をある程度抑える必要があります。
ちなみに、数万人規模のイベントを行う場合、Diarkisの「フィールド」という機能が役立ちます。この機能は自分の座標を元に周りの人達だけを描画できるほか、複数のサーバに分散できるため、人数が多くなってきた時に自動でスケールできるような仕組みを採用できます。
本田卓氏:他のリアルタイム通信エンジンからDiarkisへの載せ替えをサポートしたこともありますが、2週間から3週間ぐらいの期間で、簡単に載せ替えが可能でした。他社サービスとの大きな違いは、クラウドだと利用量が増えれば増えるほど費用が変わってくるというところが大きいですね。端的に言えばDiarkisさんのエンジンの方が、ユーザー数が増えた時のコストを抑える事ができると思います。
ゲーム開発において、「Diarkisエンジン」の導入がいかに有用かが分かる講演となった本セミナー。Diarkis公式サイトでは、リアルタイム通信アプリ「Diarkis Cloud」をダウンロードできるトライアルのサービスが展開中です。
また、アイレットでは、本セミナーの事例のように、Diarkisを活用した様々な開発支援やインフラの運用サポートを手掛けています。アイデアはあるけれどノウハウや具体的なイメージが掴めないといった開発者の方はぜひ一度お問い合わせをしてみてはいかがでしょう?
アイレット お問い合わせページ両氏が指摘するように、今後もますますゲームの成功に不可欠となる「リアルタイム通信」。「Diarkisエンジン」とアイレットのサポートで開発されたゲームが世界中でヒットとなる日もそう遠くはないかもしれません。
アイレット公式サイト