- Notifications
You must be signed in to change notification settings - Fork153
Blockchain in C#/.NET for on-chain, decentralized gaming
License
planetarium/libplanet
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Libplanet is a .NET library for creating multiplayer online game indecentralized fashion, which means the whole gameplay occurs on apeer-to-peer network among equal nodes rather than an authorized centralserver. Under the hood, it incorporates many features (e.g.,digital signature,BFT consensus, data replication) of ablockchain.
It has competitive advantages over other solutions for decentralized gaming:
Embeddable: A game app does not have to communicate with another runningprocess, hence it doesn't require extra marshaling or processes management.To draw a parallel, Libplanet is closer to SQLite than MySQL or PostgreSQL.
Isomorphic: Libplanet is a .NET library, so every game logic can bewritten in the same language, C#, and run on the blockchain. No gluecode or "smart contracts" are needed.
Token-independent: Unlike almost every blockchain system, it does notforce users to create and deal with yet-another-cryptocurrency. Yourgame can be free to play, and enjoyed by regular gamers.
To learn more about why Planetarium is creating technology for fullydecentralized games, please refer to ourblog post.
For every stable release, we pack Libplanet into a.nupkg andupload it toNuGet and GitHubreleases page.(You can find the changelog for versions fromreleases page.)To use Libplanet in your game, your project needs to add a dependencytoLibplanet package. On Visual Studio IDE, run the following commandin Package Manager Console:
Install-Package Libplanet
If you preferdotnet
CLI run the following command instead:
dotnet add package Libplanet
See also Microsoft's docs ondifferent ways to install NuGet package.
In addition to stable releases, we also provide pre-release packages.For every day and every merge commit, it is packed into a.nupkgand uploaded toNuGet with a hyphen-suffixed version name.
For a merge commit build, a version name looks like0.1.0-dev.20181231235959+a0b1c2d
where20181231235959
is a UTC timestamp ofthe build anda0b1c2d
is the first 7 hexadecimals of the Git commit hash.For a daily build, a version name is like0.1.0-nightly.20181231+a0b1c2d
.
Unfortunately, Unity currently does not support NuGet. There are some Unityplug-ins to deal with NuGet package system, and these seem immature at present.To use Libplanet on Unity, you need to manually extractLibplanet.dllfromLibplanet.*.nupkg file and place it inside of your Unity project.We are acknowledging the fact Libplanet is currently not very usable togetherwith Unity, and promise to make it better in the next few minor releases.Until then, you could tryMSBuildForUnity which is experimental as ofJanuary 2020.
You could buildLibplanet.dll andLibplanet.Stun.dll assembliesfrom the source code.
The following command installs dependencies (required library packages) andbuilds the whole Libplanet solution:
dotnet build
Note thatdotnet
command is distributed together with.NET Core SDK.
If you'd like to contribute code to the Libplanet project in earnest,please read ourcontributor guide.
About
Blockchain in C#/.NET for on-chain, decentralized gaming
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Uh oh!
There was an error while loading.Please reload this page.