Aprenda práticas recomendadas para vários aspectos de transações na ilha, juntamente com dicas para teste e depuração da sua vitrine.
Como usar o dispositivo em Verse Transações na Ilha
O dispositivo em Verse Transações na Ilha contém um modelo para transações na ilha. Vem com todas as implementações para os principais aspectos do módulo Loja, na API Verse. Inclui itens, ofertas, ofertas de pacotão e o tratamento de compras ao aproveitar a interfaces de loja padrão. Usar este código como guia pode ajudar a configurar rapidamente a sua vitrine.
Para acessar o dispositivo:
Vá para o Explorador do Verse.
Clique com o botão direito no nome do seu projeto.
Selecione Adicionar novo arquivo Verse ao projeto.
Selecione Dispositivo Transações na Ilha.
Para usar o código pronto para uso, vá para o código em Verse e edite o arquivo para:
Nomes de itens
Descrições
Ícones
Substitua os nomes padrão no código por nomes que combinam com os itens e ofertas.
Práticas recomendadas de programação
Você pode refinar seu código em Verse para melhorar a escalabilidade do seu código e o desempenho da sua ilha.
Como organizar seu fluxo de trabalho
Uma prática recomendada comum na programação é a separação de problemas. Os arquivos e funções devem ser focados na realização de uma tarefa específica para facilitar a manutenção deles futuramente, conforme aumenta o escopo do projeto.
Assim, os arquivos do código ficarão menores e mais bem estruturados, facilitando a leitura, a compreensão e o processo de depuração.
Veja algumas formas possíveis de aplicar isso nas transações:
Colocar as definições dos itens em um arquivo separado.
Colocar as ofertas e ofertas de pacotão em um arquivo separado.
Criar um dispositivo que trata de todas as ofertas estáticas e pré-definidas.
Criar um dispositivo para tratar apenas de ofertas dinâmicas.
Criar um dispositivo que trata de compras.
Como manter a organização com módulos
Módulos são unidades atômicas de código que podem ser redistribuídas para uso em mais de um arquivo. Os módulos podem ser trocados com o tempo sem desfazer as dependências nos arquivos em que o módulo já está sendo usado. Você pode separar unidades de código extensas e repetitivas, como definições de itens, em um arquivo distinto e, em seguida, importá-las com a declaração using.
Um benefício enorme de usar módulos é o fato de precisar apenas definir uma variável para um membro do módulo uma vez em um local. Dessa forma, você pode compartilhar os mesmos dados em arquivos com código em Verse distintos ao importar o módulo e referenciar as variáveis. Se houver erros relacionados a dados do módulo, os pontos de falha que precisarão ser verificados serão reduzidos apenas ao módulo em vez de serem todos os lugares em que o conteúdo dele foi usado.
O trecho de código abaixo demonstra como definir as informações do item para CornSeedPacket em um módulo.
EntitlementInfo<public> := module:
CornSeedPacket<public> := module:
Name<public><localizes> : message = "Corn seed pack"
Description<public><localizes> : message = "A pack of corn seeds. Opening a pack yields 10 corn seeds for planting."
ShortDescription<public><localizes> : message = "Contains 10 corn seeds for planting."EntitlementInfo e CornSeedPacket são definidos como módulos para permitir a importação de todas as informações do item e o acesso direto às variáveis de CornSeedPacket, como a variável Name.
Este trecho de código demonstra como importar o módulo EntitlementInfo para ajudar a definir o item corn_seed_pack.
Não é preciso digitar novamente as strings de variáveis, como Nome, visto que a variável pode ser referenciada diretamente no módulo CornSeedPacket. Assim, diminuímos o risco de bugs visuais e de erros de digitação.
Entitlements<public> := module:
using { EntitlementInfo }
# Using custom entitlement class to distinguish your entitlements.
my_island_entitlement<public> := class<abstract><castable>(entitlement){}
corn_seed_pack<public> := class<concrete>(my_island_entitlement):
var Name<override> : message = CornSeedPacket.Name
var Description<override> : message = CornSeedPacket.Description
var ShortDescription<override> : message = CornSeedPacket.ShortDescription
A declaração using requer um caminho de arquivo para o módulo que você deseja importar. Não é preciso ter um caminho de arquivo nesta instância, pois presume-se que o módulo está na mesma pasta.
Como melhorar o desempenho da ilha
Você pode melhorar a responsividade da sua experiência ao definir os métodos de concessão e compra de itens com o efeito <suspends> e chamá-los com spawn.
Assim, o TryBuyOffer pode ser concluído de forma assíncrona enquanto outros aspectos da lógica do seu jogo continuam a ser executados. Também impede que o seu jogo fique pausando até o fim da transação.
TryBuyOffer(Player:player, Offer:offer)<suspends>:void=
Result := BuyOffer(Player, Offer)
OnButtonInteraction(Agent:agent):void=
if (Player := player[Agent]):
spawn{TryBuyOffer(Player, OfferType)}
Práticas recomendadas para ícones
Texturas de jogo têm requisitos específicos para serem renderizadas corretamente no jogo. Ao criar texturas com imagens importadas, certifique-se de que o arquivo de imagem de origem use a potência de dois para altura e largura. Assim, aumentamos a compatibilidade e a estabilidade da ilha entre plataformas.
A potência de dois também é usada em transmissões de texturas para diminuir a resolução de textura em plataformas com menos memória.
A transmissão de texturas ajuda a:
Como alterar a resolução de uma textura
Como determinar a rapidez com que um jogo é carregado
Como aumentar a qualidade visual do jogo
Como economizar memória de GPU
Para obter mais informações sobre a regra da potência de dois e de redimensionamento de texturas, consulte Como redimensionar texturas.
Para obter mais informações sobre como importar ativos personalizados para o UEFN, consulte Como importar ativos. Para obter mais informações sobre como expor ativos, tais como texturas em Verse, consulte Como expor ativos.
Como testar e depurar seus itens
As sessões de teste privado e edição em tempo real são sessões de depuração. As sessões de depuração têm os seguintes efeitos no comportamento das transações, itens e ofertas:
Transações não debitam V-Bucks da conta.
Itens concedidos e comprados são removidos ao sinal da sessão de depuração.
As sessões de depuração têm acesso ao menu Comando de Depuração.
Suas ofertas precisam estar disponíveis em uma versão privada e de teste da ilha e acessíveis a todos os membros de equipe para serem usadas durante a fase de teste. Os itens ofertados não são considerados ativos. As ofertas só ficam ativas quando a ilha for publicada e tornada pública.
Como acessar o menu Comando de Depuração
Você pode acessar o modo Comandos de Depuração ao pressionar a tecla Esc no PC ou o botão Iniciar/Opções no controle e, em seguida, selecionar a opção Comandos de Depuração no menu.
Comandos de depuração da loja
Confira os comandos de depuração para sua vitrine em Comandos de Depuração da Loja, nos quais você terá acesso aos comandos a seguir:
Nome do comando | Descrição |
Abrir Loja | Mostra uma interface de loja dinâmica com ofertas para todos os itens disponíveis, permitindo que os jogadores os comprem individualmente. Assim, você pode escolher o item que você deseja testar diretamente. |
Conceder Todos os Itens | Preenche o inventário do jogador de modo que ele tenha a quantidade máxima de todos os itens disponíveis. Você também pode testar o comportamento no jogo para verificar se os jogadores têm acesso a algum item em uma área onde não deveriam ter. |
Conceder Um Item | Concede ao jogador uma unidade de cada item. Concede uma grande quantidade de itens enquanto deixa espaço no inventário do jogador para ainda testar as compras de itens não duráveis sem atingir a quantidade máxima. Se conceder o item entrar em conflito com Você também pode testar o comportamento no jogo se os jogadores tiverem acesso a algum item em uma área onde não deveriam ter. |
Forçar a Remoção de Permissões | Remove todos os itens do inventário do jogador. Permite redefinir o inventário do jogador para continuar testando a compra de ofertas. Esse comando pode ser útil para tesar os casos de Esse comando também pode ser útil para acelerar a iteração no teste ao restaurar rapidamente o inventário. |
Imprimir Itens Obtidos | Imprime todas as permissões obtidas no log de saída. |
Sempre falhar ao comprar | É desativado por padrão. Quando esta opção estiver definida como Desativada, as compras se comportarão como planejado. Quando Ligada, essa opção fará com que as compras sempre falhem, independentemente das condições que indiquem que elas seriam bem-sucedidas. Sempre Falhar ao Comprar é útil para testar os casos em que |