このプロジェクトについて
FOnlineは、Fallout 1/2/TacticsやArcanumの古典的な等尺スタイルのオンラインマルチプレイヤーRPGを構築するためのMITライセンスのC++20エンジンです。2006年から継続的に開発されており、コミュニティのマルチプレイヤーRPGを支えており、現在の例としてLast Frontierが挙げられています。
設計はマルチプレイヤー優先です。権威サーバー、複製されたエンティティ状態、クライアント/サーバー分離は後付けではなくエンティティモデルの中核です。単一のコードベースから、サーバー、クライアント、マップエディタ、コンテンツパイプライン、およびデスクトップ、モバイル、ブラウザ向けのパッケージングを生成します。
READMEに記載されている機能領域:
- マルチプレイヤーコア: エンティティマネージャ、クライアント検証、信頼できない入力の堅牢なパースを備えた権威サーバーランタイム。生成された型安全なプロパティラッパーと自動複製を備えた共有エンティティ/プロパティ/プロトタイプモデル。TCPソケット、Asioベースのサーバー、ブラウザプレイ用WebSockets、順序付きUDP、テスト用インプロセストランスポートを含むプラグ可能なトランスポート。JSONファイル、SQLite、MongoDB、またはインメモリを単一のデータベースファサードの背後で扱い、非同期コミットキューとリカバリログを備えたプラグ可能な永続化。再開可能なファイル転送とサーバー側更新バックエンドを備えた組み込みクライアント自動アップデータ。
- スクリプティング: バックエンド中立のスクリプトシステム上のAngelScriptゲームプレイスクリプティング。ネイティブAPIは///@アノテーションからのコード生成によってスクリプトへエクスポートされ、メソッド、プロパティ、イベント、リモート呼び出し、列挙型を同期させます。null許容性はスクリプト/ネイティブ境界を越えて強制されます。スクリプトデバッグはネイティブデバッグと並行してサポートされます。
- レンダリング: OpenGL、Direct3D、Vulkan、SDL_GPUバックエンドに加え、サーバーおよびCI用のヘッドレス/ヌルモード。エフェクトはGLSLで一度記述し、glslangを通じてSPIR-Vへコンパイルされ、SPIRV-Cross経由でバックエンドごとに変換されます。3Dキャラクターモデル(FBX)、パーティクル、動画再生、モダン(Ogg/Vorbis)およびクラシックなFallout形式のオーディオを備えたスプライトベースの等尺ワールド。ウィンドウ、ボーダーレスフルスクリーン、マルチクライアント仮想ウィンドウモードとImGui開発者オーバーレイ。
- ワールドとマップ: 距離、方向、近傍のための共有ヘルパーを備えた六角形および正方形グリッドジオメトリモード。サーバー権威向けに設計された経路探索、線トレース、移動コンテキスト、ブロッキングモデル。
- コンテンツパイプラインとツール: ベイキングパイプラインは、プロトタイプ、マップ、ダイアログ、ローカライズテキスト、エフェクト、画像、モデル、スクリプトをバージョン付きランタイムリソースパックへ変換します。PNG/TGAに加えてクラシックな2Dアセット形式(Fallout FRM、Arcanum ART、その他のレガシー形式)をインポートします。エンジン自体で構築されたインタラクティブツールには、ヘッドレス自動化を備えたマップエディタ、コンテンツエディタ、アセットエクスプローラ、パーティクルエディタが含まれます。
- エンジニアリング品質: スイートごとに生成されたターゲットを持つCatch2ユニットテスト、サニタイザ実行、カバレッジ。すべてのClangツールチェーンで-Werrorとして強制されるClang Thread Safety Analysis。厳格なスマートポインタとnull許容性の語彙。常時有効なスタックトレース、決定論的な例外安全性ルール、OOM時に終了するアロケーションモデル。Tracyプロファイラ統合。
アーキテクチャ: エンジンは再利用可能なサブモジュールです。ゲームリポジトリはそれをEngine/として追加し、ステージングされたCMakeパイプラインを自身の設定に向け、プロジェクト名のビルドターゲットを得ます。ゲームはコンテンツ、スクリプト、設定、ブランディング、リリースポリシーを所有します。プロトタイプ、マップ、ダイアログ、ローカライズ、GUIなどのコンテンツはプレーンテキストアセットとして作成され、ランタイムパックへベイクされます。サポート対象はWindows、Linux、macOS、Android、iOS、Web(WebAssembly)です。READMEは、すべての機能がすべてのプラットフォームで同等に成熟しているわけではないと注記しています。
リポジトリ構成: Source/(Applications、Client、Server、Common、Frontend、Scripting、Tools、Essentials、Tests)、BuildTools/(ステージングされたCMakeパイプライン、コード生成、ツールチェーン、パッケージング)、Resources/、ThirdParty/(ベンダー化されたSDL、AngelScript、Asio、ImGui、glslang、SPIRV-Cross、Tracyなど)、Docs/。維持されているドキュメントは、アーキテクチャ、エンティティモデル、マップと移動、ネットワーキング、永続化、クライアントおよびサーバーランタイム、レンダリング、スクリプティング、null許容性、ビルドとベイキングパイプライン、ツール、テスト、例外安全性、スマートポインタ、スレッド安全性解析、プラットフォームデバッグを扱っています。
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.