Sui 게임플레이를 향상시키는 다이내믹 NFT

다음은 가변적이고 표현력이 풍부한 NFT를 통해 가능한 속도, 확장성, 풍부한 상호작용을 보여주는 두 가지 짧은 게임 프리 알파 프로토타입입니다.

Sui 게임플레이를 향상시키는 다이내믹 NFT

다음은 가변적이고 표현력이 풍부한 NFT를 통해 가능한 속도, 확장성, 풍부한 상호작용을 보여주는 두 개의 짧은 게임 프리 알파 프로토타입입니다. 첫 번째 프로토타입인 Sui Monstar는 지금 플레이할 수 있습니다.

Sui 및 게임

웹 3.0을 빠르게 도입할 수 있는 첫 번째 업종 중 하나로 게임이 거론되고 있습니다. 하지만 기존의 웹3 게임은 게임이라기보다는 투자로 간주되며, 사용자 유지율은 게임 자체보다는 시장 상황에 영향을 받습니다.

그렇다면 기존 웹3.0 게임에는 무엇이 부족할까요? 첫째, 성공적인 웹 3.0 게임은 웹 1.0이나 웹 2.0 게임과는 완전히 다른 경험을 제공해야 합니다. 웹 3.0 게임이 진정으로 빛을 발하려면 소유권을 확인할 수 있는 동적이고 컴포저블한 완전 온체인 디지털 자산의 이점을 의미 있게 활용해야 합니다. 이러한 기능은 놀랍고 상상력이 풍부한 게임플레이와 생태계를 강화하여 엄청난 가치와 참여를 창출할 수 있습니다.

둘째, 훌륭한 게임에는 숙련된 게임 개발자와 빌더, 즉 게임을 제작하고 사용자 중심의 재미있는 경험을 만드는 방법을 아는 사람들이 필요합니다. 웹3에서 게임을 개발하고자 하는 인재는 많지만 플랫폼의 한계와 새로운 프로그래밍 언어를 배워야 하는 어려움으로 인해 창의성이 저해되고 있습니다.

Sui저희는 게임 개발자가 플랫폼 성능이나 수수료에 제한을 받지 않고 상상하는 모든 경험을 만들 수 있어야 한다고 생각합니다. 중요한 것은 훌륭한 게임을 개발하기 위해 게임 개발자가 스마트 컨트랙트 작성 전문가가 될 필요는 없다는 것입니다. 오히려 게이머를 위한 멋진 게임을 만드는 데 집중해야 합니다.

스마트 계약 옵션

Move 에서 의미 있는 경험을 구축하기 위해 이동 전문 지식이 필요하지 않습니다( Sui). 개발자와 크리에이터가 게임에서 Sui 을 쉽게 사용할 수 있도록 일반적인 사용 사례와 게임 에셋 관련 기능을 다루는 게임 SDK를 출시할 예정입니다.

방법

게임 개발 스튜디오인 Geniteam에서 제작한 이 프로토타입은 Unity SDK와 Sui API.

이 협업에 참여한 지니팀의 개발자들은 스마트 컨트랙트 개발자도 아니고 Move 개발자도 아닙니다. 저희는 이들의 의견을 바탕으로 데이터 모델을 만들고 간단한 API를 공유했습니다. 이러한 API를 통해 지니팀은 변경 가능한 완전한 온체인 NFT를 발행하고, 다른 온체인 자산을 소유하고, 다른 애플리케이션으로 자유롭게 전송할 수 있었습니다.

이 개념 증명 빌드는 Sui 을 통해 게임 개발자를 위한 기능을 시연하기 위한 것입니다. 앞으로 몇 달 안에 추가 기능을 공개할 때 게임 커뮤니티의 창의적인 인재들이 어떤 아이디어를 내놓을지 기대됩니다. 각 버그가 수정될 때마다 게임 개발자가 SDK에서 원하는 것이 무엇인지에 대한 인사이트를 얻었습니다. Sui 는 다양한 수준의 스마트 컨트랙트 전문 지식을 가진 모든 수준의 개발자가 액세스할 수 있는 SDK를 구축하기 위해 최선을 다하고 있습니다.

" Sui SDK로 작업하는 과정은 매우 순조로웠습니다. 이 SDK는 이해하고 구현하기 쉬웠습니다. 미스텐 랩스 팀은 SDK 구현에 관한 저희의 피드백을 주저하지 않았습니다. 우리 팀과의 시너지 효과는 흠잡을 데가 없었고, 그 결과 API 호출이 매우 빨라져 로딩 시간을 최소화할 수 있었습니다." - Geniteam

다음은 Geniteam이 공유한 API의 예시이며, 몬스터(프로토타입에서는 MonStars로 명명)를 생성하고 업데이트하기 위한 스마트 컨트랙트입니다.

API Move 호출 - 몬스터 생성

본문으로 POST /통화:

{
"sender": "{{owner}}",
"packageObjectId": "0x2",
"module": "Geniteam",
"function": "create_monster",
"args": [
"0x{{player_id}}",
"0x{{farm_id}}",
"0x{{pet_monsters}}",
{{monster_name}},
{{monster_img_index}},
{{breed}},
{{monster_affinity}},
{{monster_description}}
],
"gasObjectId": "{{gas_object_id}}",
"gasBudget": 2000
}

API Move 호출 - 몬스터 업데이트

본문으로 POST /통화:

{
"sender": "{{owner}}",
"packageObjectId": "0x2",
"module": "Geniteam",
"function": "update_monster_stats",
"args": [
"0x{{player_id}}",
"0x{{farm_id}}",
"0x{{pet_monsters}}",
"0x{{monster_id}}",
{{monster_level}},
{{hunger_level}},
{{affection_level}},
{{buddy_level}}
],
"gasObjectId": "{{gas_object_id}}",
"gasBudget": 2000
}

API Move 호출 - 몬스터 데이터 읽기

GET /object_info?objectId={{몬스터_id}}

스마트 컨트랙트: 몬스터 생성

struct Monster has key, store {
        id: VersionedID,
        monster_name: String,
        monster_img_index: u64,
        breed: u8,
        monster_affinity: u8,
        monster_description: String,
        monster_level: u64,
        monster_xp: u64,
        hunger_level: u64,
        affection_level: u64,
        buddy_level: u8,

        // ID of the applied cosmetic at this slot
        applied_monster_cosmetic_0_id: Option<ID>,
        // ID of the applied cosmetic at this slot
        applied_monster_cosmetic_1_id: Option<ID>,    
    }

. . .

// Create a Monster and add it to the Farm's collection of Monsters
    public fun create_monster(_player: &mut Player,
                              farm: &mut Farm,
                              pet_monsters_c: &mut Collection::Collection,
                              monster_name: vector<u8>,
                              monster_img_index: u64,
                              breed: u8,
                              monster_affinity: u8,
                              monster_description: vector<u8>,
                              ctx: &mut TxContext
    ) {

        let monster = create_monster_(
            monster_name,
            monster_img_index,
            breed,
            monster_affinity,
            monster_description,
            ctx
        );

        // Check if this is the right collection
        assert!(*&farm.pet_monsters_id == *ID::id(pet_monsters_c), EMONSTER_COLLECTION_NOT_OWNED_BY_FARM);


        // Add it to the collection

. . .

Collection::add(pet_monsters_c, monster);
    }

    // Creates a basic Monster object
    public fun create_monster_(
        monster_name: vector<u8>,
        monster_img_index: u64,
        breed: u8,
        monster_affinity: u8,
        monster_description: vector<u8>,
        ctx: &mut TxContext
    ): Monster {

        Monster {
            id: TxContext::new_id(ctx),
            monster_name: ASCII::string(monster_name),
            monster_img_index,
            breed,
            monster_affinity,
            monster_description: ASCII::string(monster_description),
            monster_level: 0,
            monster_xp: 0,
            hunger_level: 0,
            affection_level: 0,
            buddy_level: 0,
            applied_monster_cosmetic_0_id: Option::none(),
            applied_monster_cosmetic_1_id: Option::none(),
        }
    }

스마트 컨트랙트: 몬스터 업데이트

// Update the attributes of a monster
    public fun update_monster_stats(
        _player: &mut Player,
        _farm: &mut Farm,
        _pet_monsters: &mut Collection::Collection,
        self: &mut Monster,
        monster_level: u64,
        hunger_level: u64,
        affection_level: u64,
        buddy_level: u8,
        _ctx: &mut TxContext
    ) {
        self.monster_level = monster_level;
        self.hunger_level = hunger_level;
        self.affection_level = affection_level;
        self.buddy_level = buddy_level;
    }

프로토타입 1 Sui Monstar

첫 번째 프로토타입은 애완동물 시뮬레이션 게임인 Monstar( Sui )입니다.

게임 플레이:

  • 개와 고양이 친구들을 놀게 하고, 먹이를 주고, 옷을 입혀주세요.
  • 친화력 룬으로 애완동물을 진화시키세요!
  • 농장을 꾸미세요.
  • 게임 플레이와 상호작용을 통해 농장과 애완동물 레벨을 올리세요.

Sui Monstar에서 귀여운 별을 포획하고 먹이를 주고 상호작용하면서 별이 여러분과 가까워지는 것을 지켜보세요. 이 스타, 농장, 액세서리는 모두 온체인에 있는 NFT입니다. 게임을 플레이하면서 체력, 친근감, 액세서리와 같은 속성이 모두 실시간으로 업데이트됩니다.

원소-룬-달별.png

원소 룬을 별에 장착하고 업데이트된 속성으로 NFT가 진화하는 것을 지켜보세요.

그뿐만이 아닙니다. 몬스터가 강해지면 다음 프로토타입에서 전투에 도움을 줄 수 있습니다>>>.

출시 예정 프로토타입 2 Sui 배틀러

곧 귀여운 몬스터가 전사로 변신하는 배틀러( Sui )가 출시됩니다!

게임 플레이:

  • 적의 파도와 싸우고 경험치와 파워 업을 획득하세요.
  • Sui Monstar에서 반려동물의 도움을 받으세요.
  • Sui Monstar에서 펫을 진화시키고 특별한 전투 능력을 잠금 해제하세요.
  • 몬스터가 전투의 역사를 온체인에 기록합니다!
evolve-monstar.png

몬스터를 진화시켜 특별한 능력을 잠금 해제하세요.

이것이 중요한 이유

  • 변경 가능한 NFT는 더 풍부하고 창의적인 게임플레이를 의미합니다. 더 이상 NFT를 '수정'하기 위해 복잡한 해결 방법을 사용하거나 NFT를 소각하여 모든 데이터와 기록을 잃을 필요가 없습니다.
  • 사용성에 중점을 둔 API를 사용하면 Sui 에서 쉽게 구축할 수 있습니다.
  • 탁월한 확장성과 즉각적인 결제를 통해 게임플레이와 함께 변경 사항, 자산 상태, 잔액, 소유권을 실시간으로 즉시 처리할 수 있습니다. 더 이상 지연이나 해결 방법이 필요 없습니다.
  • 창의력은 한계가 없습니다. 크리에이터는 다양한 애플리케이션과 게임에서 자신의 에셋을 자유롭게 사용할 수 있습니다.
  • 풍부한 역사를 가진 완전한 온체인, 구성 가능한 NFT는 차세대 게임 경제를 가능하게 합니다.