L1-Blockchains
August 4, 2022

Sui Dynamic NFT для улучшения игрового процесса

Вот два коротких прототипа игровых пре-альфа, которые демонстрируют скорость, масштабируемость и богатые взаимодействия, которые стали возможными благодаря изменчивым, выразительным NFT. В первый прототип, Sui Monstar , уже можно играть.

Sui и игры

Игры как одна из первых вертикалей для быстрого внедрения веб3 — популярная тема для обсуждения. Тем не менее, существующие веб-игры, возможно, рассматриваются скорее как инвестиции, чем как игры, поскольку на удержание пользователей влияют рыночные условия, а не сами игры.

Так чего же не хватает в существующих играх web3? Во-первых, успешная игра web3 должна предлагать опыт, полностью отличающийся от любых игр web1 или web2. Чтобы по-настоящему сиять, игры web3 должны осмысленно использовать преимущества полностью сетевых, динамических и компонуемых цифровых активов с проверяемым правом собственности. Эти функции могут обеспечить невероятный и творческий игровой процесс и экосистемы, создавая огромную ценность и вовлеченность.

Во-вторых, для отличных игр требуются опытные разработчики и строители игр — люди, которые знают, как создавать игры и создавать увлекательные, ориентированные на пользователя впечатления. Существует множество талантов, стремящихся создать Web3, но их творчеству мешают ограничения платформы и трудности изучения нового языка программирования.

С Sui мы считаем, что разработчики игр не должны быть ограничены производительностью платформы или сборами, и они должны иметь возможность создавать любые впечатления, которые они себе представляют. Важно отметить, что разработка отличных игр не должна требовать, чтобы разработчики игр также были экспертами в написании смарт-контрактов. Скорее им следует сосредоточиться на том, в чем они хороши, — на создании крутых игр для геймеров.

Смарт-контракты по желанию

Движение просто потрясающее: оно безопасное, выразительное и невосприимчивое к повторному входу; но опыт перемещения не требуется для создания значимого опыта на Sui. Чтобы разработчики и создатели могли легко начать использовать Sui для игр, мы будем выпускать игровые SDK, которые охватывают распространенные варианты использования и функции, связанные с игровыми активами.

Как мы это сделали

Эти прототипы, созданные студией разработки игр Geniteam, используют как Unity SDK, так и Sui API .

Разработчики Geniteam, которые работали над этим сотрудничеством, не являются ни разработчиками смарт-контрактов, ни разработчиками Move. На основе их отзывов мы создали модель данных и поделились простыми API. С помощью этих API-интерфейсов Geniteam смогла создавать полностью внутрисетевые NFT, которые могут изменяться, владеть другими активами в сети и свободно передаваться другим приложениям.

Это доказательство концепции сборки предназначено для демонстрации возможностей разработчиков игр, разблокированных с помощью Sui. Мы с нетерпением ждем возможности увидеть, что придумают творческие умы в игровом сообществе, когда мы представим дополнительные возможности в ближайшие месяцы. После исправления каждой ошибки мы получили представление о том, что разработчики игр ищут в SDK. Sui стремится создавать SDK, доступные для разработчиков всех уровней с разной степенью знаний смарт-контрактов.

«Работа с Sui SDK прошла очень гладко. Эти SDK было легко понять и внедрить. Команда Mysten Labs не уклонялась от наших отзывов о внедрении SDK. Их взаимодействие с нашей командой было безупречным, и это привело к тому, что вызовы API стали очень быстрыми, что привело к минимальному времени загрузки». — Генитим

Вот примеры API-интерфейсов Geniteam, которыми мы поделились, а также смарт-контракты для создания и обновления монстров (в прототипе они называются MonStars).

API Move Call — создать Monstar

POST/вызов с телом:

{"отправитель": " {{владелец}} ","packageObjectId": "0x2","модуль": "Генитим","функция": "создать_монстра","аргументы": ["0x {{идентификатор_игрока}} ","0x {{id_фермы}} ","0x {{pet_monsters}} ",{{имя_монстра}} ,{{monster_img_index}} ,{{порода}} ,{{monster_affinity}} ,{{monster_description}}],"gasObjectId": " {{gas_object_id}} ",«ГазБюджет»: 2000 г.}

API Move Call — Monstar обновлений

POST/вызов с телом:

{"отправитель": " {{владелец}} ","packageObjectId": "0x2","модуль": "Генитим","функция": "update_monster_stats","аргументы": ["0x {{идентификатор_игрока}} ","0x {{id_фермы}} ","0x {{pet_monsters}} ","0x {{monster_id}} ",{{уровень_монстра}} ,{{уровень_голода}} ,{{уровень_привязанности}} ,{{уровень_приятеля}}],"gasObjectId": " {{gas_object_id}} ",«ГазБюджет»: 2000 г.}

API Move Call — Чтение данных Monstar

ПОЛУЧИТЬ /object_info?objectId= {{monster_id}}

Смарт-контракт: Monstar

struct  Monster has key, store {         id: VersionedID,         monster_name: String,         monster_img_index: u64,         порода: u8,         monster_affinity: u8,         monster_description: String,         monster_level: u64,         monster_xp: u64,         голод_уровень: u64, уровень_привязанности         : u64,         уровень_приятеля: u8 ,         // Идентификатор примененной косметики в этом слоте         apply_monster_cosmetic_0_id: Option<ID>,         // Идентификатор примененной косметики в этом слоте         apply_monster_cosmetic_1_id: Option<ID>,         }
                              //                               Создадим монстра                               и добавим                               его в     общую коллекцию монстров на Ферме                               порода: u8,                               monster_affinity: u8,                               monster_description: vector<u8>,                               ctx: & mut TxContext     ) { let monster = create_monster_(                    имя_монстра,             индекс_изображения_монстра,             порода,             сходство с монстром,             описание_монстра,             ctx         );         // Проверяем, правильная ли это коллекция         assert!(*&farm.pet_monsters_id == *ID::id(pet_monsters_c), EMONSTER_COLLECTION_NOT_OWNED_BY_FARM);         // Добавляем в коллекцию
Collection::add(pet_monsters_c, монстр);     }         //     Создает         базовый     объект         - монстр         _         _         _ _     _         _             _ : TxContext::new_id(ctx),             monster_name: ASCII::string(monster_name),             monster_img_index,             порода,             monster_affinity,             monster_description: ASCII::string(monster_description),            monster_level: 0,             monster_xp: 0,             голод_уровень: 0,             привязанность_уровень: 0,             приятель_уровень: 0,             apply_monster_cosmetic_0_id: Option::none(),             apply_monster_cosmetic_1_id: Option::none(),         }     }

Смарт-контракт: обновить Monstar

// Обновить атрибуты общедоступного развлечения монстра     update_monster_stats(         _player: & mut Player,         _farm: & mut Farm,         _pet_monsters: & mut Collection::Collection,         self : & mut Monster,         monster_level: u64,         голод_уровень: u64,         привязанность_уровень: u64 ,         buddy_level: u8,         _ctx: & mut TxContext     ) {         self .monster_level = monster_level;         self .hunger_level = голод_уровень;         self .affection_level = привязанность_уровень;         себя.buddy_level = уровень_приятеля;     }

Protype 1 Sui Monstar

Первый прототип — Sui Monstar , игра-симулятор домашних животных.

Геймплей:

  • Играйте, кормите и одевайте своих собачьих и кошачьих друзей.
  • Развивайте своих питомцев с помощью рун родства!
  • Украсьте свою ферму.
  • Повышайте уровень своей фермы и питомца с помощью игрового процесса и взаимодействий.

В Sui Monstar ловите симпатичных монстров и наблюдайте, как они приближаются к вам, когда вы кормите их и взаимодействуете с ними. Эти монстры, ваша ферма и аксессуары — все это NFT в сети. По мере прохождения игры такие атрибуты, как здоровье, дружелюбие и аксессуары, обновляются в реальном времени.

Экипируйте руны стихий на свой Monstar и наблюдайте, как ваш NFT развивается с обновленными свойствами.

Это еще не все, так как ваш Монстар становится сильнее, вы можете использовать его, чтобы помочь вам в бою… в следующем прототипе>>>

Предстоящий Protype 2 Sui Battler

Скоро мы выпустим Sui Battler, где ваши милые монстры превращаются в воинов!

Геймплей:

  • Сражайтесь с волнами врагов и получайте опыт и бонусы.
  • Получите помощь от собственного питомца в Sui Monstar.
  • Развивайте своего питомца в Sui Monstar и открывайте специальные боевые способности.
  • Ваши монстры записывают историю вашей битвы в сети!
Развивайте своих Монстаров, чтобы разблокировать особые способности.

Почему это важно

  • Изменяемые NFT означают более богатый и творческий игровой процесс. Больше никаких сложных обходных путей или сжигания NFT, потери всех ваших данных и истории для «модификации» NFT.
  • API-интерфейсы, ориентированные на удобство использования, упрощают создание Sui.
  • Непревзойденная масштабируемость и мгновенные расчеты означают, что изменения, статус активов, баланс и права собственности могут происходить мгновенно во время игры. Больше никаких задержек или обходных путей.
  • Творчество – это предел. Создатели могут свободно использовать свои активы в различных приложениях и играх.
  • Полностью встроенные компонуемые NFT с богатой историей делают возможным следующее поколение игровых экономик.

Дальнейшее чтение