Libplanet은 분산 방식으로 멀티플레이어 온라인 게임을 만들기 위한 .NET 라이브러리입니다. 즉, 전체 게임플레이가 인증된 중앙 서버가 아닌 동일한 노드 간의 P2P 네트워크에서 발생한다는 의미입니다. 내부적으로는 블록체인의 많은 기능(예: 디지털 서명, BFT 합의, 데이터 복제)을 통합합니다.
분산형 게임을 위한 다른 솔루션에 비해 경쟁 우위가 있습니다.
Embeddable : 게임 앱은 실행 중인 다른 프로세스와 통신할 필요가 없으므로 추가 마샬링이나 프로세스 관리가 필요하지 않습니다. 평행선을 그리려면 Libplanet은 MySQL이나 PostgreSQL보다 SQLite에 더 가깝습니다.
Isomorphic : Libplanet은 .NET 라이브러리이므로 모든 게임 로직을 동일한 언어인 C#으로 작성하고 블록체인에서 실행할 수 있습니다. 글루 코드나 "스마트 계약"이 필요하지 않습니다.
토큰 독립적 : 거의 모든 블록체인 시스템과 달리 사용자에게 또 다른 암호화폐를 생성하고 처리하도록 강요하지 않습니다. 귀하의 게임은 무료로 플레이할 수 있으며 일반 게이머도 즐길 수 있습니다.
Planetarium이 완전 분산형 게임을 위한 기술을 개발하는 이유에 대해 자세히 알아보려면 블로그 게시물을 참조하세요.
모든 안정적인 릴리스에 대해 Libplanet을 .nupkg 로 압축하고 NuGet 및 GitHub 릴리스 페이지에 업로드합니다. (릴리스 페이지에서 버전 변경 로그를 찾을 수 있습니다.) 게임에서 Libplanet을 사용하려면 프로젝트에서 Libplanet 패키지에 종속성을 추가해야 합니다. Visual Studio IDE의 패키지 관리자 콘솔에서 다음 명령을 실행합니다.
Install-Package Libplanet
dotnet
CLI를 선호하는 경우 대신 다음 명령을 실행하세요.
dotnet 패키지 추가 Libplanet
NuGet 패키지를 설치하는 다양한 방법에 대한 Microsoft 문서도 참조하세요.
안정적인 릴리스 외에도 시험판 패키지도 제공합니다. 매일 및 모든 병합 커밋에 대해 .nupkg 로 압축되고 하이픈 접미사 버전 이름과 함께 NuGet에 업로드됩니다.
병합 커밋 빌드의 경우 버전 이름은 0.1.0-dev.20181231235959+a0b1c2d
와 같습니다. 여기서 20181231235959
는 빌드의 UTC 타임스탬프이고 a0b1c2d
Git 커밋 해시의 처음 7자리 16진수입니다. 일일 빌드의 경우 버전 이름은 0.1.0-nightly.20181231+a0b1c2d
와 같습니다.
안타깝게도 Unity는 현재 NuGet을 지원하지 않습니다. NuGet 패키지 시스템을 처리하는 일부 Unity 플러그인이 있는데 현재로서는 미성숙해 보입니다. Unity에서 Libplanet을 사용하려면 Libplanet.*.nupkg 파일에서 Libplanet.dll을 수동으로 추출하여 Unity 프로젝트 내에 배치해야 합니다. 우리는 Libplanet이 현재 Unity와 함께 사용하기가 쉽지 않다는 사실을 인정하고 있으며 다음 몇 가지 마이너 릴리스에서 더 나은 기능을 제공할 것을 약속합니다. 그때까지는 2020년 1월 현재 실험적인 MSBuildForUnity를 사용해 볼 수 있습니다.
소스 코드에서 Libplanet.dll 및 Libplanet.Stun.dll 어셈블리를 빌드할 수 있습니다.
다음 명령은 종속성(필수 라이브러리 패키지)을 설치하고 전체 Libplanet 솔루션을 빌드합니다.
닷넷 빌드
dotnet
명령은 .NET Core SDK와 함께 배포됩니다.
본격적으로 Libplanet 프로젝트에 코드를 기여하고 싶다면 기여자 가이드를 읽어보세요.