Libplanet
Libplanet 是一个用于以去中心化方式创建多人在线游戏的 .NET 库,这意味着整个游戏玩法发生在对等节点之间的点对点网络上,而不是在授权的中央服务器上。 在底层,它整合了 blockchain 的许多功能(例如, digital signature、BFT 共识、数据复制)。
与其他去中心化游戏解决方案相比,它具有竞争优势:
-
可嵌入:游戏应用无需与另一个运行中的进程通信,因此不需要额外的序列化或进程管理。 打个比方,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.dll 和 Libplanet.Stun.dll 程序集。
以下命令安装依赖项(所需的库包)并 构建整个 Libplanet 解决方案:
dotnet build
请注意,dotnet 命令随 .NET Core SDK 一起分发。
如果您想认真为 Libplanet 项目贡献代码, 请阅读我们的 贡献者指南。