このプロジェクトについて
Lightyearは、Bevyゲームエンジンでサーバー権威型マルチプレイヤーゲームを作成するためのネットワーキングライブラリです。WebTransport経由でWebAssemblyと互換性があり、Rustクレートとして配布されています(Bevy 0.19にはlightyear = "0.30")。
はじめに:リポジトリにはサンプル、simple_boxサンプルを再現するチュートリアル、さらなるドキュメントとして作業中のbookが用意されています。
リポジトリ構成:ワークスペースのクレートはcrates/以下に役割ごとにまとめられており、ディレクトリ名はlightyear_接頭辞を省きますが、Cargoパッケージ名には接頭辞が残ります。グループにはio(aeronet、link、udp、crossbeam、websocket、webtransportなどの低レベルリンクとバックエンド)、connection(connection、raw_connection、netcode、steam)、core(トップレベルのlightyearクレートとcore、sync、utils、frame interpolation)、inputs(inputs、inputs_native、input_bei、inputs_leafwing)、replication(replication、prediction、interpolation)、transport(serialization、transport、message)、integration(AvianなどのBevyエコシステム統合)、およびplatform、deterministic、tools、testsクレートがあります。
READMEに記載されている機能:
- トランスポート非依存のIO:UDPソケットに加え、WebSocket、Steam、WebTransportをサポートするaeronet。
- シリアライゼーション:デフォルトのシリアライザはpostcardで、カスタムシリアライゼーション関数を提供することも可能。
- メッセージパッシング:異なる順序保証と信頼性保証を持つチャネル、および約1200バイトを超えるメッセージのパケット断片化。
- 入力処理:プレイヤー入力はクライアントで毎ティックバッファリングされ、ティックNのクライアント入力はサーバーのティックNで処理されます。入力は各パケットに直近のフレームを含めることでパケットロスから保護されます。leafwing-input-managerおよびbevy-enhanced-input向けのオプション統合があります。
- 決定論的レプリケーション:入力のみがレプリケートされ、シミュレーションが決定論的である場合にサポートされます。lockstepおよびprediction/rollbackと互換性があります。
- ワールドレプリケーション:レプリケーション、インタレスト管理、事前スポーンおよび関連機能にbevy_repliconを使用します。
- 高度なレプリケーション:ロールバック付きクライアントサイド予測、スナップショット補間、設定可能な入力遅延、優先度ベース送信による帯域幅管理、予測エンティティと補間エンティティ間の相互作用に対するラグ補償。
- トポロジ:クライアントサーバー、P2P、およびクライアントがサーバーとして動作するホストクライアントモード。
- サンプル:機能やavianなどの他のBevyクレートとの統合を網羅する多数のサンプル。
READMEには関連プロジェクトも記載されています。これにはlightyear-templateスタータープロジェクトやLumina、cycles.ioなどのゲーム、およびLightyearバージョンとBevyバージョンの対応表(0.28-0.30はBevy 0.19、0.26-0.27は0.18、0.25は0.17、0.20-0.24は0.16、0.18-0.19は0.15、0.16-0.17は0.14、0.10-0.15は0.13、0.1-0.9は0.12)が含まれます。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.