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
另请参阅 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
命令与 .NET Core SDK 一起分发。
如果您想真诚地向 Libplanet 项目贡献代码,请阅读我们的贡献者指南。