ITADN
planetarium/libplanet
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Libplanet

Discord Build Status (CircleCI) Codecov NuGet NuGet (prerelease)

Libplanet 是一个用于以去中心化方式创建多人在线游戏的 .NET 库,这意味着整个游戏玩法发生在对等节点之间的点对点网络上,而不是在授权的中央服务器上。 在底层,它整合了 blockchain 的许多功能(例如, digital signatureBFT 共识、数据复制)。

与其他去中心化游戏解决方案相比,它具有竞争优势:

  • 可嵌入:游戏应用无需与另一个运行中的进程通信,因此不需要额外的序列化或进程管理。 打个比方,Libplanet 更接近 SQLite 而不是 MySQL 或 PostgreSQL。

  • 同构:Libplanet 是一个 .NET 库,因此所有游戏逻辑都可以用同一种语言 C# 编写,并在区块链上运行。 无需胶水 代码或“智能合约”。

  • 代币无关:与几乎所有区块链系统不同,它不强制用户创建和处理另一种加密货币。 你的 游戏可以免费游玩,并被普通玩家享受。

要了解为什么 Planetarium 正在为完全去中心化的游戏创建技术,请参阅我们的 blog post

NuGet

对于每个稳定版本,我们都会将 Libplanet 打包为 .nupkg 并 上传到 NuGet 和 GitHub releases 页面。 (您可以在 releases 页面找到版本变更日志。) 要在您的游戏中使用 Libplanet,您的项目需要添加对 Libplanet 包的依赖项。 在 Visual Studio IDE 中,请在 Package Manager Console 中运行以下命令:

Install-Package Libplanet

如果您更喜欢使用 dotnet CLI,请运行以下命令:

dotnet add package Libplanet

另请参阅 Microsoft 关于安装 NuGet 包的不同方式的文档。

除了稳定版本外,我们还提供预发布包。 对于每一天和每一个合并提交,它都会被打包为 .nupkg 并上传到 NuGet,版本名称带有连字符后缀。

对于合并提交构建,版本名称形如 0.1.0-dev.20181231235959+a0b1c2d,其中 20181231235959 是构建的 UTC 时间戳, a0b1c2d 是 Git 提交哈希的前 7 位十六进制数。 对于每日构建,版本名称形如 0.1.0-nightly.20181231+a0b1c2d

不幸的是,Unity 目前不支持 NuGet。 有一些 Unity 插件用于处理 NuGet 包系统,但这些目前似乎尚不成熟。 要在 Unity 中使用 Libplanet,您需要手动从 Libplanet.*.nupkg 文件中提取 Libplanet.dll 并将其放置在您的 Unity 项目中。 我们承认 Libplanet 目前与 Unity 一起使用时可用性不高,并承诺在接下来的几个次要版本中改进。 在此之前,您可以尝试 MSBuildForUnity,截至 2020 年 1 月,它仍处于实验阶段。

构建

您可以从源代码构建 Libplanet.dllLibplanet.Stun.dll 程序集。

以下命令安装依赖项(所需的库包)并 构建整个 Libplanet 解决方案:

dotnet build

请注意,dotnet 命令随 .NET Core SDK 一起分发。

如果您想认真为 Libplanet 项目贡献代码, 请阅读我们的 贡献者指南