Aprende las prácticas recomendadas para diversos aspectos de las transacciones en la isla, junto con consejos para probar y depurar tu tienda.
Cómo usar el dispositivo Transacciones en la isla de Verse
El dispositivo Transacciones en la isla de Verse contiene una plantilla para transacciones en la isla. Cuenta con todas las implementaciones para los aspectos clave del módulo Marketplace en la API de Verse. Incluye objetos, ofertas, ofertas combinadas y la gestión de compras mediante el uso de la interfaz de usuario predeterminada de la tienda. Utilizar este código como guía puede ayudarte a configurar rápidamente tu tienda.
Para acceder al dispositivo:
Ve al explorador de Verse.
Haz clic derecho en el nombre de tu proyecto.
Selecciona Añadir nuevo archivo de Verse al proyecto.
Selecciona Dispositivo Transacciones en la isla.
Para utilizar el código tal cual, ve al código de Verse y edita lo siguiente en el archivo:
Nombres de objetos
Descripciones
Iconos
Reemplaza los nombres predeterminados en el código por nombres que coincidan con tus privilegios y ofertas.
Prácticas recomendadas de programación
Puedes perfeccionar tu código de Verse para mejorar la escalabilidad de tu código y el rendimiento de tu isla.
Organización del proceso de trabajo
Una buena práctica habitual en programación es la separación de preocupaciones. Te conviene que los archivos y las funciones se centren en realizar una tarea específica, de modo que resulte más fácil mantenerlos en el futuro a medida que crezca el alcance del proyecto.
Esto da como resultado archivos de código más pequeños y organizados de forma clara, que son más fáciles de leer y comprender, lo que facilitará la depuración.
Algunas formas posibles de aplicar esto a las transacciones son:
Colocar las definiciones de los objetos en un archivo aparte.
Colocar las ofertas y las ofertas combinadas en un archivo aparte.
Crear un dispositivo que gestione todas las ofertas estáticas y predefinidas.
Crear un dispositivo que solo gestione ofertas dinámicas.
Crear un dispositivo que solo gestione compras.
Organización de los módulos
Los módulos son unidades atómicas de código que pueden redistribuirse para su uso en múltiples archivos. Los módulos se pueden cambiar con el tiempo sin romper las dependencias en los archivos en los que ya se utiliza el módulo. Puedes separar unidades de código largas o repetitivas, como definiciones de privilegios, en un archivo diferente y luego importarlas con la declaración using.
Una gran ventaja de utilizar módulos es que solo es necesario definir una variable para un miembro del módulo una vez en una ubicación. Esto te permite compartir los mismos datos entre diferentes archivos de código de Verse importando el módulo y haciendo referencia a las variables. Si hay errores relacionados con los datos del módulo, se reducen los puntos de fallo que debes comprobar en el módulo en lugar de todos los lugares en los que has utilizado el contenido del módulo.
El siguiente fragmento de código muestra cómo puedes definir la información del privilegio para CornSeedPacket en un 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."Tanto EntitlementInfo como CornSeedPacket se definen como módulos que te permiten importar toda la información del privilegio y acceder directamente a las variables miembro de CornSeedPacket, como su variable Name.
Este fragmento de código muestra cómo importar el módulo EntitlementInfo para ayudar a definir el privilegio corn_seed_pack.
Ten en cuenta que no es necesario reescribir cadenas para variables como Name, ya que puedes hacer referencia a la variable directamente desde el módulo CornSeedPacket. Esto reduce el riesgo de errores visuales, como errores tipográficos.
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
La declaración using requiere una ruta de archivo al módulo que quieras importar. En este caso, no es necesario indicar la ruta del archivo, ya que se supone que el módulo se encuentra en la misma carpeta.
Cómo mejorar el rendimiento de la isla
Puedes mejorar la capacidad de respuesta de tu experiencia definiendo tus métodos de compra y concesión de objetos con el efecto <suspends> y llamándolos con spawn.
Esto permite a TryBuyOffer completarse de forma asíncrona mientras continúan ejecutándose otros aspectos de la lógica del juego. Esto también evita que el juego se pause hasta que se complete una transacción.
TryBuyOffer(Player:player, Offer:offer)<suspends>:void=
Result := BuyOffer(Player, Offer)
OnButtonInteraction(Agent:agent):void=
if (Player := player[Agent]):
spawn{TryBuyOffer(Player, OfferType)}
Prácticas recomendadas con iconos
Las texturas del juego tienen requisitos específicos para renderizarse correctamente en el juego. Al crear texturas en UEFN con imágenes importadas, asegúrate de que el archivo de imagen de origen utilice potencias de dos para la altura y la anchura. Esto aumenta la compatibilidad y estabilidad de tu isla en todas las plataformas.
La potencia de dos también se utiliza en la transmisión de texturas para reducir la resolución de las texturas en plataformas con menos memoria.
La transmisión de texturas ayuda con estos elementos:
Cambia la resolución de una textura
Determina lo rápido que se carga una partida
Aumenta la calidad visual del juego
Ahorra memoria de la GPU
Para obtener más información sobre la regla de la potencia de dos y el cambio de tamaño de texturas, consulta Redimensionamiento de texturas.
Para obtener información sobre cómo importar recursos personalizados a UEFN, consulta Cómo importar recursos. Para obtener información sobre cómo exponer recursos como texturas en Verse, consulta Cómo exponer recursos.
Pruebas y depuración de tus privilegios
Tanto las sesiones de edición en tiempo real como las de pruebas de juego privadas son sesiones de depuración. Las sesiones de depuración tienen los siguientes efectos en el comportamiento de las transacciones, los privilegios y las ofertas:
Las transacciones no deducen paVos de las cuentas.
Los privilegios otorgados y comprados se eliminan al final de la sesión de depuración.
Las sesiones de depuración tienen acceso al menú Comandos de depuración.
Tus ofertas deben estar disponibles en una versión privada y de prueba de la isla, y ser accesibles para todos los compañeros de equipo para que puedan utilizarlas durante la fase de pruebas. Los objetos ofrecidos no se consideran activos. Las ofertas estarán disponibles una vez que la isla se haya publicado y sea pública.
Cómo acceder al menú Comandos de depuración
Puedes acceder al menú Comandos de depuración pulsando la tecla Esc en un PC o el botón Inicio/Opciones del mando y seleccionando la opción Comandos de depuración en el menú.
Comandos de depuración de la tienda
En Comandos de depuración de la tienda encontrarás y tendrás acceso a los siguientes comandos:
Nombre de comando | Descripción |
Abrir escaparate | Muestra una interfaz de usuario dinámica con ofertas para todos los privilegios disponibles, lo que permite a los jugadores comprarlos individualmente. Esto te permite elegir directamente el privilegio que quieras probar. |
Otorgar todos los privilegios | Llena el inventario de este jugador para que posea el número máximo de todos los privilegios disponibles. También puedes probar el comportamiento en el juego para comprobar si los jugadores tienen acceso a un objeto en una zona en la que no deberían. |
Otorgar un privilegio | Otorga un privilegio a un jugador. Esto permite obtener una gran cantidad de privilegios y, al mismo tiempo, deja espacio en el inventario del jugador para seguir probando compras de privilegios no duraderos sin alcanzar la cantidad máxima. Si el hecho de otorgar el privilegio supondrá un conflicto con También puedes probar el comportamiento en el juego para comprobar si los jugadores tienen acceso a un objeto en una zona en la que no deberían. |
Forzar la eliminación de privilegios | Esto elimina todos los privilegios del inventario del jugador. Esto te permite restablecer el inventario de un jugador para continuar probando ofertas de compra. Este comando puede ser útil para probar los casos de Este comando también puede ser útil para acelerar la iteración en las pruebas, ya que permite restablecer rápidamente el inventario. |
Imprimir privilegios en posesión | Imprime todos los privilegios que tienes en el registro de salida. |
Error automático de compras | Desactivado por defecto. Si está desactivado, las compras tendrán el comportamiento esperado. Si está activado, las compras siempre fallarán, independientemente de las condiciones que indiquen que se realizarían correctamente. La opción Error automático de compras es útil para probar casos de |