Libplanet は、分散方式でマルチプレイヤー オンライン ゲームを作成するための .NET ライブラリです。つまり、ゲームプレイ全体が、認可された中央サーバーではなく、同等のノード間のピアツーピア ネットワーク上で発生します。 内部的には、ブロックチェーンの多くの機能 (デジタル署名、BFT コンセンサス、データ複製など) が組み込まれています。
分散型ゲームの他のソリューションに比べて、次のような競争上の利点があります。
埋め込み可能: ゲーム アプリは別の実行中のプロセスと通信する必要がないため、追加のマーシャリングやプロセス管理は必要ありません。同様のことを言えば、Libplanet は MySQL や PostgreSQL よりも SQLite に近いです。
同型: Libplanet は .NET ライブラリであるため、すべてのゲーム ロジックを同じ言語である C# で記述し、ブロックチェーン上で実行できます。接着コードや「スマート コントラクト」は必要ありません。
トークン非依存: ほとんどすべてのブロックチェーン システムとは異なり、ユーザーに別の暗号通貨の作成と処理を強制しません。ゲームは無料でプレイでき、一般のゲーマーも楽しめます。
プラネタリウムが完全分散型ゲームのテクノロジーを開発している理由について詳しくは、ブログ投稿を参照してください。
すべての安定リリースでは、Libplanet を.nupkgにパックし、NuGet および GitHub のリリース ページにアップロードします。 (リリース ページからバージョンの変更ログを見つけることができます。) ゲームで Libplanet を使用するには、プロジェクトでLibplanetパッケージに依存関係を追加する必要があります。 Visual Studio IDE のパッケージ マネージャー コンソールで次のコマンドを実行します。
Install-Package Libplanet
dotnet
CLI を使用する場合は、代わりに次のコマンドを実行します。
dotnet パッケージ Libplanet を追加
NuGet パッケージをインストールするさまざまな方法に関する Microsoft のドキュメントも参照してください。
安定版リリースに加えて、プレリリース パッケージも提供します。毎日およびすべてのマージ コミットについて、 .nupkgにパックされ、ハイフン接尾辞のバージョン名を付けて NuGet にアップロードされます。
マージ コミット ビルドの場合、バージョン名は0.1.0-dev.20181231235959+a0b1c2d
のようになります。20181231235959 はビルドの UTC タイム20181231235959
、 a0b1c2d
は Git コミット ハッシュの最初の 7 桁の 16 進数です。毎日のビルドの場合、バージョン名は0.1.0-nightly.20181231+a0b1c2d
のようになります。
残念ながら、Unity は現在 NuGet をサポートしていません。 NuGet パッケージ システムに対応する Unity プラグインがいくつかありますが、現時点では未熟なようです。 Unity で Libplanet を使用するには、 Libplanet.*.nupkgファイルからLibplanet.dll を手動で抽出し、Unity プロジェクト内に配置する必要があります。私たちは、Libplanet が現在 Unity と組み合わせてあまり使いにくいという事実を認識しており、今後のいくつかのマイナー リリースで改善することを約束します。それまでは、2020 年 1 月の時点で実験段階である MSBuildForUnity を試すことができます。
ソース コードからLibplanet.dllおよびLibplanet.Stun.dllアセンブリを構築できます。
次のコマンドは、依存関係 (必要なライブラリ パッケージ) をインストールし、Libplanet ソリューション全体を構築します。
ドットネットビルド
dotnet
コマンドは .NET Core SDK と一緒に配布されることに注意してください。
Libplanet プロジェクトに本格的にコードを貢献したい場合は、貢献者ガイドをお読みください。