TON 블록체인을 활용한 게임 개발
튜토리얼 내용
이 튜토리얼에서는 게임에 TON 블록체인을 추가하는 방법을 알아보겠습니다. 예제로, Phaser로 작성된 Flappy Bird 클론을 사용하고 단계별로 GameFi 기능을 추가할 것입니다. 이해하기 쉽도록 튜토리얼에서는 짧은 코드 조각과 의사코드를 사용할 것입니다. 또한 더 잘 이해할 수 있도록 실제 코드 블록에 대한 링크도 제공합니다. 전체 구현은 데모 저장소에서 확인할 수 있습니다.
다음 기능들을 구현할 예정입니다:
- 업적. 사용자에게 SBT로 보상합시다. 업적 시스템은 사용자 참여를 높이는 훌륭한 도구입니다.
- 게임 화폐. TON 블록체인에서는 자체 토큰(jetton)을 쉽게 발행할 수 있습니다. 토큰은 게임 내 경제를 만드는 데 사용될 수 있습니다. 사용자는 게임 코인을 획득하여 나중에 사용할 수 있습니다.
- 게임 상점. 사용자가 게임 내 화폐나 TON 코인을 사용하여 게임 내 아이템을 구매할 수 있게 할 것입니다.
준비사항
GameFi SDK 설치
먼저, 게임 환경을 설정하겠습니다. 이를 위해 assets-sdk
를 설치해야 합니다. 이 패키지는 개발자가 블록체인을 게임에 통합하는 데 필요한 모든 것을 준비하도록 설계되었습니다. 이 라이브러리는 CLI나 Node.js 스크립트에서 사용할 수 있습니다. 이 튜토리얼에서는 CLI 방식을 사용하겠습니다.
npm install -g @ton-community/assets-sdk@beta
마스터 지갑 생성
다음으로, 마스터 지갑을 생성해야 합니다. 마스터 지갑은 jetton, 컬렉션, NFT, SBT를 발행하고 결제를 받는 데 사용할 지갑입니다.
assets-cli setup-env
몇 가지 질문을 받게 됩니다:
필드 | 힌트 |
---|---|
Network | 테스트 게임이므로 testnet 을 선택하세요. |
Type | 마스터 지갑으로 사용하기에 가장 좋고 성능이 좋은 옵션이므로 highload-v2 타입을 선택하세요. |
Storage | NFT /SBT 파일을 저장하는 데 사용될 스토리지입니다. Amazon S3 (중앙화) 또는 Pinata (탈중앙화) 중에서 선택할 수 있습니다. Web3 게임에 더 적합한 탈중앙화 스토리지를 사용하기 위해 이 튜토리얼에서는 Pinata 를 사용하겠습니다. |
IPFS gateway | 자산 메타데이터를 로드할 서비스: pinata , ipfs.io 또는 다른 서비스 URL을 입력하세요. |
스크립트는 생성된 지갑 상태를 볼 수 있는 링크를 출력합니다.
보시다시피 지갑은 아직 실제로 생성되지 않았습니다. 지갑이 실제로 생성되려면 약간의 자금을 입금해야 합니다. 실제 시나리오에서는 지갑 주소를 사용하여 원하는 방식으로 입금할 수 있습니다. 우리의 경우 Testgiver TON Bot을 사용할 것입니다. 5개의 테스트 TON 코인을 받기 위해 봇을 열어주세요.
잠시 후 지갑에 5 TON이 표시되고 상태가 Uninit
으로 변경됩니다. 지갑이 준비되었습니다. 첫 사용 후에는 상태가 Active
로 변경됩니다.
게임 내 화폐 발행
사용자에게 보상할 게임 내 화폐를 만들어보겠습니다:
assets-cli deploy-jetton
몇 가지 질문을 받게 됩니다:
필드 | 힌트 |
---|---|
Name | 토큰 이름, 예: Flappy Jetton |
Description | 토큰 설명, 예: A vibrant digital token from the Flappy Bird universe. |
Image | 준비된 jetton 로고를 다운로드하고 파일 경로를 지정하세요. 물론 다른 이미지를 사용할 수도 있습니다. |
Symbol | FLAP 또는 사용하고 싶은 약어를 입력하세요. |
Decimals | 화폐의 소수점 이하 자릿수입니다. 우리의 경우 0 으로 하겠습니다. |
스크립트는 생성된 jetton 상태를 볼 수 있는 링크를 출력합니다. 상태는 Active
가 될 것입니다. 지갑 상태도 Uninit
에서 Active
로 변경됩니다.
SBT를 위한 컬렉션 생성
예시로, 데모 게임에서는 첫 번째와 다섯 번째 게임에 대해 사용자에게 보상을 할 것입니다. 따라서 사용자가 관련 조건(첫 번째와 다섯 번째 게임 플레이)을 달성했을 때 SBT를 넣을 두 개의 컬렉션을 발행할 것입니다:
assets-cli deploy-nft-collection
필드 | 첫 번째 게임 | 다섯 번째 게임 |
---|---|---|
Type | sbt | sbt |
Name | Flappy First Flight | Flappy High Fiver |
Description | 당신의 첫 Flappy Bird 게임 여정을 기념합니다! | 다섯 번째 플레이를 기념하는 Flappy High Fiver NFT입니다! |
Image | 이미지를 다운로드할 수 있습니다 |