XOPSオンライン再現版のテストプレイイベントを開催します

要約

2月4日(土) 21時より、私Mandaが開発したXOPSオンライン(1.9f2)の再現版を使用するテストプレイのイベントを開催します。本家exeからも接続できますが、原則としてSATが公開する再現版クライアントから接続をお願いします(敵味方HP表示モードが本家では使えないため、不利になる場合もあります)。

イベント内容

  • 日時: 2023年2月4日(土) 21:00~
  • 鯖設定: 武器ショットガンのみ、武器グレネードのみ、敵味方HP表示モード、弾速変更、着弾爆発など
    (鯖設定はMandaの気分によって随時適当に変更します)
  • 再現版クライアントの追加機能: DirectX9化、ピクセルフォグ化、可変解像度、入力バグ解消
  • 接続先: xopsevent.owo.jp (PORT 1092)
    なお、SAT配布版を利用する方は入力不要ですぐ接続されます。

再現版クライアントのダウンロードはこちらから (OneDrive)

展開したデータすべてをxopsolt19~のフォルダに移動してから実行してください。

【重要】操作不可能バグの対処方法

本家XOPSに存在する操作バグがSAT配布版でも存在していることが確認されました。この現象が確認された場合は以下の方法に従って対処してください。

「Windows 10 May 2020 Update」の新しいIMEに問題、入力などさまざまなタスクに影響

今回のイベントはテストを兼ねています。プレイ中に不具合や本家との差異を見つけましたらご報告ください。クラッシュ時にはデバッグ用のファイルが生成されますので、アップロードしていただけると助かります。なおオンライン版の改造についてはnine-two様に了承を得ています。

概要

2022年10月末に「XOPS 0.975t を完全再現するゲームの開発に成功しました」という記事を発表しましたが、オンライン版(1.9f2)についても解析によりソースコードを再現することに成功しました。

0.975t 再現版についてはテストプレイでほぼ差異なく再現できたことを確認済ですが、オンライン再現版のテストプレイは私個人だけでは難しく、xopsplayerの皆さんのご協力が必要なためこのイベントを企画しました。ただし本家と同じゲーム内容ではイベントとして面白みに欠けるため、簡易的に改造を施して所有武器とマップ上の武器がショットガンのみ、グレネードのみのモードを実装しました。ぜひご参加ください。

今後の予定

再現した1.9f2のコードをベースに、2020年XMASに開催したAVX(爆破モード,Unity製)を移植します。

画像: AVX (Alliance of valiant xopsplayers)
XOPS 0.975tの解析資料

SATクリスマス企画2022として、本家XOPSに関する解析資料を公開します。

SATでは既に発表している通り、ゲームエンジンを用いて本家XOPSとまったく同様の体験を得られるFPSゲームの開発を目指すプロジェクトを進めています。今回、その過程で本家XOPSを解析するうえで得られた情報を解析資料として公開します。基本的には0.975tを解析の対象としていますが、一部その他のバージョンの情報も含まれています。

解析資料の内容は以下の通りです;

  • 関数
  • 定数と変数
  • 構造体
  • 未定義の人の種類と各種パラメータ
  • 未定義の武器の各種パラメータ(全てのバージョン)
  • 未定義の小物の各種パラメータ
  • モデルやテクスチャの基本テーブル

具体的な内容は以下のリンクをご覧ください;

なお、今回の資料の利用により生じた損失や損害などについてはいかなる場合においても一切の責任をSATは負いません。特に未定義の内容については本家XOPSでは本来想定されていない動作であることにご留意ください。

使用例として、このページのアイキャッチ画像にもなっているパソコンマンを紹介します。

後者の”謎人間資料”には未定義の武器に関する情報が揃っています。そのうちの”バージョン別武器”のタブを開いていただくと、全ての未定義の武器を持ったときに適用される腕モデルが記述されています。ざっと眺めていただくだけでもかなり興味深い内容になっているのが分かりますが、特に0.975tの部分を眺めていると

  • 武器番号 -31 の腕モデルが pc2
  • 武器番号 -12 の腕モデルが pc3_wide

となっているのに気づきます。これは武器を持った瞬間にその人の腕モデルがパソコンになることを意味しており、非常に面白い挙動です。実はこの武器は初期状態で装填されている弾を発砲した瞬間にゲームが落ちてしまうので、人に持たせるためには一筋縄ではいかず、実用上ではもう一工夫必要なのですが、このようにアドオン制作にも非常に有用な資料となっているので、(あくまでご自身の責任となりますが)是非ご活用ください。パソコンマンはこちらのyosiが個人的に制作したパッケージに収録されている”LABO_DEF”というミッションに登場します。

今後ともSATをよろしくお願いします

XOPS 0.975t を完全再現するゲームの開発に成功しました
これはXOPSのファンにより再現されたプロジェクトであり、公式のものではありません。

SATチームは数ヶ月にわたる本家XOPSのプログラム解析の結果、XOPS 0.975t を完全に再現するゲームの開発に成功しました。

注: 本件は[-_-;](みかん)氏の「OpenXOPS」と関係はなく、OpenXOPSのコードも含んでいません。

(上記動画では本家XOPSと異なることをわかりやすくするため、追加で実装したデバッグ情報の描画機能を利用しています。)

今後の計画について

今回XOPSのプログラム解析により得られたソースコードは非公開です。ただ、このコードを参考に一からコードを書き直し、オープンソース版XOPSを開発・公開します。なお、本家XOPS開発者のnine-two氏よりXOPSを再現するプロジェクトの開発とそれに伴うプログラム解析について了承いただいております。

スケジュール(目標)

  1. 2022年内-2023年初頭: C++ & DirectX 9版 XOPSオフライン
    (この時代にあえてDirectX 9を採用する理由は、本家XOPSが使用している固定機能パイプラインが使える最後のDirectXのバージョンのためです。)
  2. 2023年内: ゲームエンジン使用 XOPSオフライン
    (ゲームエンジンに移植する理由は、改造にかかるコスト(技術力・時間)を削減させるためです。)
  3. 2023年~: ゲームエンジン版XOPSにオンライン機能(チームデスマッチ、CO-OP)を追加
    (XOPSOLT 1.9f2 を解析することはせずに独自で対戦機能を追加することを検討中です。)

余裕があればオープンソース版のブロック・ポイントエディタも開発したいと考えています。

補足事項

実際は「完全再現」というのはやや誇張気味で、現時点でいくつかの差異があります。

  • 謎人間などの未定義動作を利用したミッションの再現に失敗します。オープンソース版では可能な限り再現を試みる予定です。
  • 解析のミスに起因する本家の挙動との差異が存在する可能性があります。
  • 浮動小数点数の扱いの違いで本家とわずかに誤差が発生しますが、コンパイラの最適化にも起因する上、誤差はプレイヤーが認識することができないレベルのため修正しません。

未知の挙動について

解析の過程で、未知と思われる興味深い発見がありました。

  • pd1から読み込めるポイント数は最大256個
    SATメンバーのyosiがすでに公表しています。
  • ゾンビの誘導性能が4種類すべて微妙に異なる
  • ブロックの着弾音はhit1.wavが流れる可能性が2/3、hit3.wavは1/3