自社プロジェクト・開発中
Rosmino
ゼロから構築された、オンラインで競技性のあるクロスプラットフォームのドミノプラットフォームです。クライアントワークではなく、私たち自身のプロジェクトです——その進捗はこちらです。
Rosminoとは
Rosminoは、カジュアルゲームではなくeスポーツのように感じられることを目指したドミノプラットフォームです:1対1戦とペア戦、競技ランキング、昇格・降格のあるリーグ、シングルエリミネーション方式のトーナメント、殿堂入りのある公式選手権、さらに初心者からグランドマスターまでの難易度を持つAI対戦を備えています。単一のプロジェクトがAndroid、iPhone/iPad、Windows、macOS、そしてWebブラウザ向けにビルドされます。
このようなエンジンをゼロから構築するとはどういうことか?
ここでの「エンジン」は、他のスタジオのゲームに関わる仕事の中で機密扱いとなる部分ではありません——文字通り、私たちが一つひとつ組み上げているものであり、自分たちのものだからこそ詳しく語ることができます。核となるのは、グラフィックエンジンにもネットワークにも一切依存しない、純粋なC#製のルールライブラリで、これがまったく同じ形で3つの異なる場所にコンパイルされます:クライアント(ローカルでの予測とアニメーション用)、対戦サーバー(唯一の信頼できる情報源)、そして将来的には、実際のプレイヤーより先にバランスの問題を見つけるために何百万もの対戦を自動的にプレイするシミュレーターです。対戦の状態が直接変更されることは決してありません——不変のイベントの並びを順に適用することで再構築されます。そのため、1つの完全な対戦は文字通りその履歴から再現可能であり、これはリプレイ、監査、そして紛争解決にまさに必要な性質です。クライアントは即座に感じられるようローカルで手をあらかじめ予測できますが、結果を決定することは決してありません——それは常に同じルールセットに照らしてサーバー側で検証されます。そのため、改造されたクライアントであっても、対戦にとって本当に重要な部分で不正をすることはできません。
ドミノそのもののルール——牌の枚数、終了条件、得点計算、1対1かペアかというモード——は、設定可能な「ルールセット」インターフェースの背後にあります。そのため新しいバリエーションを追加するというのは、クラスを1つ追加することであり、エンジンを書き直すことではありません。その上のレイヤーでは、サーバーは初日からバージョン管理されたメッセージでWebSocket経由で各クライアントと通信しています。これは、誰かがまだインストールしている古いバージョンのアプリを壊すことなく、後からプロトコルを進化させられるようにするためです。
フェーズごとの進捗
プロジェクトは計21フェーズで進行しており、現時点で12フェーズが完了しています——「デモで動く」という意味ではなく、それぞれのフェーズで実際に最初から最後まで本物の対戦をプレイして検証済みという意味です。ルールエンジンには90を超える自動テストのスイートがあり、カバレッジはほぼ100%に達しています。クライアントは5つのプラットフォームすべてでビルドされ、動作します。WebSocket経由で通信する本物の権威あるサーバーが存在し、本物の再接続機能も備えています。自動マッチメイキングは本物のキューの上で動作し、待ち時間が長くなるほど許容レーティング幅を広げていきます。アカウントは本物で、本物のログイン機能があります。ランキングは各対戦後に本物のElo方式のシステムで計算されます。リーグには本物の昇格・降格・保護機能があります。トーナメントは手動介入なしに、ラウンドごとに本物のシングルエリミネーション表を生成します。そして選手権——準々決勝・準決勝・決勝という固定フェーズで構成され、ランキングによる出場資格と本物の殿堂を備えたもの——が競技システムを締めくくっています。
直近のフェーズでは、本当に競技性のあるAIが追加されました:初心者からグランドマスターまでの7段階の難易度があり、各相手がどの牌を持っているかを本物の推論で読み取り、本物の探索で最善手を選びます——ランダムな手は決して打ちません。シミュレーション対戦では、グランドマスターが初心者に20戦17勝、中級者が初心者に60戦48勝という結果になりました——単に「わざと多く間違える」のではなく、本物の実力の勾配です。同じAIは、対戦中に切断した人間のプレイヤーがいれば、復帰するまで自動的にその席を引き継ぎます。
まだ残っているのは:ソーシャルシステム、観戦とリプレイ、不正防止システムの強化、管理パネル、ゲームの最終的なアート——現時点では完成した画像が1枚もないため、このページにはまだスクリーンショットが表示されていません——そして最後に、最適化、本物の負荷テスト、そしてクロスプラットフォームでのリリースです。これらのいずれにも発表された日程はまだありません。
すでに実現していること