AutomataMP
NieR: Automata マルチプレイヤー Mod
警告
このプロジェクトは進行中です。ゲームのいくつかの重要な側面は十分にサポートされていますが、一部は十分にサポートされていません。このプロジェクトでは、誰かと一緒にストーリー全体をプレイスルーすることは (まだ) 期待しないでください。
現時点では、このプロジェクトは、友人との基本的な世界の横断と探索、またはデバッグ ルームでのプレイにのみ使用してください。クエストの同期はまだ実装されていません。ゲームの一部の部分は完全に壊れてしまいます。
特徴
マスターサーバー
- 事前にIPを知らなくても、クライアントがサーバーを検出できるようにします
スタンドアロンサーバー
- Linux または Windows で実行できる Go でコーディングされたサーバー
- ゲームの世界 (敵や他の世界の状態) を制御する「ホスト」を許可する MasterClient システム
- プレイヤー + バディだけでなく、2 人以上のプレイヤーもサポートされています
Linuxパッケージ
Arch Linux (AUR)
プレーヤーの同期
- 位置
- 回転
- アニメーション
- ポッドの発射
- ポッドプログラム
- ポッド懐中電灯
- 武器/ロードアウトの選択 (ただし、実際の武器タイプ自体ではありません)
敵の同期
- MasterClient が敵をスポーンすると、敵のスポーンを複製します。
- ネットワーク接続が想定されていない通常のクライアント側の敵を削除します
- 位置
- 回転
- 健康/生きている状態
- いくつかのアニメーション
計画されている/必要な機能
- モデルチェンジャー
- PvP
- 客室・ロビーシステム
- 部屋/ロビーに接続されていない場合のゴースト システム
歴史
この MOD は 2017 年に開発され、他のことに移るまで非常に短期間で開発されました。元のバージョンの背後にあるライブラリがオープンソース対応ではなかったため、これはオープンソース化されておらず、より早くリリースされました。
これはかなり古いコードであり、元々は公開することを意図していなかったので、コーディング標準は私の現在の設定に準拠していません。これはご容赦ください。時間の経過とともに修正される可能性があります。
2017年8月下旬
- 開発が始まりました
- たくさんのリバースエンジニアリング
- スクリプト システム (mruby?)
- エンティティシステム
- バディシステム
- アニメーション、ボタン
- enet と enetpp を追加し、これらのシステムをマルチプレイヤーに接続しました
- サーバーはスタンドアロン プログラムではなく、MOD 自体の内部で直接ホストされていました
- クライアント/サーバーは、C++ で定義された生の構造データと通信します。
- システムは関数の途中をフックし、CPU コンテキストを取得するために VEH フックを使用しました。
2017年9月上旬
- プロジェクトは放棄され、実際の動作を映したいくつかの短いビデオが記録されました
2017-09-01_06-35-26.webm
2022年7月下旬~現在
- プロジェクトが復活しました
- NieR が見出しを飾り、MOD ツールがリリースされ、私に連絡が来たことでモチベーションが高まりました。
- オープンソースに適さないコードをすべて削除し、すべてをオープンソースの同等のコードに置き換えました。
- サーバー コードは、Linux または Windows で実行できるスタンドアロン Go プロジェクトに配置されました。
- パケット構造にフラットバッファを使用するようにクライアント/サーバー コードがリファクタリングされました
- 新しいシステムは、safetyhook の MidHook を使用して、mid 関数フックを実行し、コンテキストを取得します。
- これははるかに高速で、スレッドセーフではないという欠点がありません。
- クライアント コードのリファクタリングが現在の標準に準拠し始め、実際のゲーム構造をより適切に反映するようになりました。
- トカゲ: