Libplanet est une bibliothèque .NET permettant de créer des jeux en ligne multijoueurs de manière décentralisée, ce qui signifie que l'ensemble du jeu se déroule sur un réseau peer-to-peer entre des nœuds égaux plutôt que sur un serveur central autorisé. Sous le capot, il intègre de nombreuses fonctionnalités (par exemple, signature numérique, consensus BFT, réplication des données) d'une blockchain.
Il présente des avantages compétitifs par rapport aux autres solutions de jeu décentralisé :
Intégrable : une application de jeu n'a pas besoin de communiquer avec un autre processus en cours d'exécution, elle ne nécessite donc pas de marshaling ou de gestion de processus supplémentaire. Pour faire un parallèle, Libplanet est plus proche de SQLite que de MySQL ou PostgreSQL.
Isomorphique : Libplanet est une bibliothèque .NET, donc chaque logique de jeu peut être écrite dans le même langage, C#, et exécutée sur la blockchain. Aucun code de colle ou « contrats intelligents » n'est nécessaire.
Indépendant du jeton : contrairement à presque tous les systèmes blockchain, il n'oblige pas les utilisateurs à créer et à gérer une autre crypto-monnaie. Votre jeu peut être gratuit et apprécié par les joueurs réguliers.
Pour en savoir plus sur les raisons pour lesquelles Planetarium crée une technologie pour les jeux entièrement décentralisés, veuillez consulter notre article de blog.
Pour chaque version stable, nous emballons Libplanet dans un fichier .nupkg et le téléchargeons sur la page des versions NuGet et GitHub. (Vous pouvez trouver le journal des modifications pour les versions sur la page des versions.) Pour utiliser Libplanet dans votre jeu, votre projet doit ajouter une dépendance au package Libplanet . Sur Visual Studio IDE, exécutez la commande suivante dans la console du gestionnaire de packages :
Install-Package Libplanet
Si vous préférez dotnet
CLI, exécutez plutôt la commande suivante :
dotnet ajouter le package Libplanet
Consultez également la documentation de Microsoft sur les différentes manières d'installer le package NuGet.
En plus des versions stables, nous proposons également des packages de pré-version. Pour chaque jour et chaque validation de fusion, il est emballé dans un fichier .nupkg et téléchargé sur NuGet avec un nom de version suivi d'un trait d'union.
Pour une version de validation de fusion, un nom de version ressemble à 0.1.0-dev.20181231235959+a0b1c2d
où 20181231235959
est un horodatage UTC de la version et a0b1c2d
correspond aux 7 premières décimales du hachage de validation Git. Pour une version quotidienne, un nom de version ressemble à 0.1.0-nightly.20181231+a0b1c2d
.
Malheureusement, Unity ne prend actuellement pas en charge NuGet. Il existe des plug-ins Unity pour gérer le système de packages NuGet, et ceux-ci semblent immatures pour le moment. Pour utiliser Libplanet sur Unity, vous devez extraire manuellement Libplanet.dll du fichier Libplanet.*.nupkg et le placer dans votre projet Unity. Nous reconnaissons le fait que Libplanet n'est actuellement pas très utilisable avec Unity, et promettons de l'améliorer dans les prochaines versions mineures. D'ici là, vous pouvez essayer MSBuildForUnity qui est expérimental depuis janvier 2020.
Vous pouvez créer des assemblys Libplanet.dll et Libplanet.Stun.dll à partir du code source.
La commande suivante installe les dépendances (packages de bibliothèque requis) et construit l'intégralité de la solution Libplanet :
construction dotnet
Notez que la commande dotnet
est distribuée avec le SDK .NET Core.
Si vous souhaitez sérieusement contribuer au code du projet Libplanet, veuillez lire notre guide du contributeur.