La plantilla de detonación de Verse te muestra cómo crear un juego en el que dos equipos luchan por armar y desarmar emplazamientos de bombas.
Este tutorial utiliza el dispositivo Verse y dispositivos básicos como el dispositivo Indicador del mapa para realizar mecánicas de juego, como hacer que las balizas se muestren dependiendo de las condiciones.
Esta plantilla muestra conceptos de Verse como:
-
Enumerador
-
Simultaneidad
-
Race
-
Await
-
Resumen
A continuación, encontrarás un resumen con los pasos que tendrás que seguir para recrear esta isla según la secuencia ideal:
-
Crea un nuevo proyecto y modifica la configuración de la isla para definir el juego.
-
Configura los dispositivos.
-
Añade la secuencia de comandos de Verse.
Creación de un nuevo proyecto y configuración del juego
-
Abre UEFN y crea un nuevo proyecto vacío.
-
Selecciona el dispositivo Configuración de la isla en el esquematizador y localiza Opciones de usuario - Reglas del juego.
-
Modifica las opciones de usuario como se muestra a continuación.
Opción | Valor | Explicación |
---|---|---|
Equipos | Índice de equipos 2 | Los jugadores se dividirán en equipos de dos. |
Total de rondas | 5 | Habrá cinco rondas antes de que termine la partida. |
Permitir observar a otros equipos | False | Los jugadores no podrán ver a otros equipos. |
Recursos infinitos | False | Los jugadores no dispondrán de materiales de construcción infinitos durante la partida. |
Las construcciones pueden destruir el entorno | False | Colocar estructuras construidas por el jugador no puede destruir ninguna parte del entorno con la que se superponga. |
Daño al entorno | Desactivado | Los jugadores no pueden dañar el entorno durante el juego. |
Destrucción con pico | Ninguno | Los picos no causarán daños al entorno ni a las construcciones. |
Permitir reaparición manual | False | Los jugadores no pueden utilizar la opción de menú Reaparición durante la partida. |
Usar puntuación de equipo | True | Cada equipo del juego gana estadísticas mediante la suma de sus jugadores. |
Cómo configurar los dispositivos
Este tutorial utiliza los siguientes dispositivos:
-
Ocho explosivos
-
Cuatro indicadores del mapa
-
Cualquier número de plataformas de aparición de jugador
-
Un Verse
Dispositivo Explosivo

Utiliza el dispositivo Explosivo para provocar la explosión de los cronómetros detonados. En lados opuestos del mapa, copia y coloca un grupo de cuatro dispositivos Explosivo.
Para configurar este dispositivo, establece las Opciones de usuario como se indica a continuación:
Opción | Valor | Explicación |
---|---|---|
Puede recibir daño | False | Este dispositivo no recibe daños de los jugadores. |
Objetivo cronometrado

El dispositivo Objetivo cronometrado sirve como detonador para cada lugar. Coloca un dispositivo Objetivo cronometrado en ambos grupos de dispositivos Explosivo.
Para configurar este dispositivo, establece las Opciones de usuario como se indica a continuación:
Opción | Valor | Explicación |
---|---|---|
Tiempo | 30 | Determina la duración del cronómetro para el objetivo. |
Puntuación al iniciar | 2 | Establece la puntuación que se consigue por iniciar un cronómetro detenido. |
Puntuación al detener | 5 | Determina la puntuación que se consigue tras detener un cronómetro activo. |
Puntuación al completar | 3 | Determina la puntuación que se consigue cuando termina la cuenta atrás del cronómetro. |
Estilo del texto de etiqueta del cronómetro | Naranja llamativo | Determina el estilo con el que se mostrarán la cuenta atrás del cronómetro y el texto personalizado. |
Filtro de equipo de activación | Índice de equipo 1 | Establece qué equipo puede iniciar un cronómetro detenido. |
Texto interactivo de inicio | Armar bomba | Establece qué texto personalizado se mostrará en forma de mensaje para el jugador que pueda iniciar el cronómetro detenido. |
Tiempo de interacción al iniciar | 5 | Establece la duración de la interacción para poner en marcha un cronómetro detenido. |
Detener filtro de equipo | Índice de equipo 2 | Establece qué equipo puede detener un cronómetro activo. |
Texto interactivo de detención | Desarmar bomba | Determina qué texto personalizado se mostrará en forma de mensaje para el jugador que pueda detener el cronómetro activo. |
Tiempo interactivo de detención | 5.0 | Establece la duración de la interacción para detener un cronómetro activo. |
Distancia de sonido del cronómetro | Todo el mapa | Determina si el sonido del cronómetro está localizado en un punto o si se puede escuchar en cualquier parte del mapa. |
Dispositivo Indicador del mapa

Utiliza el dispositivo Indicador del mapa para crear marcadores personalizados en el minimapa. Para cada emplazamiento de explosivo coloca encima dos dispositivos Indicador del mapa, uno para cada equipo.
Para configurar este dispositivo, establece las Opciones de usuario como se indica a continuación:
Opción | Valor | Explicación |
---|---|---|
Color del icono | Elegir un color | Determina el color del icono mostrado. Elige un color que represente a cada equipo. |
Texto | Explosivo A - Explosivo B | Nombra un par de dispositivos Indicador del mapa como Bomba A y el otro como Bomba B. |
Dispositivo Fin de partida

Utiliza el dispositivo Fin de partida para terminar la ronda al desactivar con éxito la bomba o si transcurren 30 segundos y explota mediante la secuencia de comandos de Verse.
Para configurar este dispositivo, establece las Opciones de usuario como se indica a continuación:
Opción | Valor | Explicación |
---|---|---|
Equipo ganador | Equipo activador | El equipo que active el dispositivo ganará la partida. |
Cómo acabar | Finalizar ronda | Este dispositivo pondrá fin a la ronda de juego. |
Dispositivo Plataforma de aparición de jugador

Agrupa los dispositivos Plataforma de aparición de jugador del equipo en lados opuestos de tu mapa. Cada equipo tendrá sus propios generadores: el Equipo 1 armará la bomba y el Equipo 2 la desarmará. Los equipos se intercambiarán en cada ronda.
Para configurar este dispositivo, establece las Opciones de usuario como se indica a continuación:
Opción | Valor | Explicación |
---|---|---|
Equipo del jugador | Índice de equipo 1 - 2 | Un conjunto de plataformas de aparición se ajustará al índice de equipo 1, mientras que el otro se ajustará al índice de equipo 2. |
Cómo añadir secuencias de comandos de Verse
Añade las siguientes secuencias de comandos de Verse. Empieza haciendo referencia a los dispositivos con la función @editable.
Puedes copiar el código en el orden en que está escrito. Se añaden comentarios dentro de la secuencia de comandos para mayor claridad.
# Enumerador para determinar el estado de las bombas
bomb_state<public>:= enum {AllUnarmed, BombAArmed, BombBArmed}
El código anterior define una enumeración para seguir el estado de las bombas.
search_and_destroy := class(creative_device):
Logger:log = log{Channel:=log_search_and_destroy}
@editable
TimedObjectiveA: timed_objective_device = timed_objective_device{}
@editable
TimedObjectiveB: timed_objective_device = timed_objective_device{}
@editable
ExplosiveBarrelsA: []explosive_device = array{}
@editable
ExplosiveBarrelsB: []explosive_device = array{}
@editable
EndGameDevice: end_game_device = end_game_device{}
@editable
BombAMapIndicators: []map_indicator_device = array{}
@editable
BombBMapIndicators: []map_indicator_device = array{}
@editable
BombABeaconArm: beacon_device = beacon_device{}
@editable
BombABeaconDisarm: beacon_device = beacon_device{}
@editable
BombBBeaconArm: beacon_device = beacon_device{}
@editable
BombBBeaconDisarm: beacon_device = beacon_device{}
var BombState:bomb_state = bomb_state.AllUnarmed
Puedes utilizar @editable para hacer referencia a los dispositivos.
# Se ejecuta cuando se inicia el dispositivo en un juego en ejecución
OnBegin<override>()<suspends>:void=
# La expresión `race` se utiliza para ejecutar un bloque de dos o más expresiones asíncronas de forma concurrente (simultánea). La expresión que se completa antes «gana la carrera».
# https://dev.epicgames.com/documentation/es-es/uefn/race-in-verse
race:
block:
# Espera a que se arme la Bomba A
ArmingPlayer:= TimedObjectiveA.StartedEvent.Await()
Print("Bomba A armada",?Duration:=5.0)
# Se utiliza para saber qué balizas hay que activar y qué barriles hay que explotar
set BombState = bomb_state.BombAArmed
# Desactiva el otro dispositivo Objetivo cronometrado
TimedObjectiveB.Disable(ArmingPlayer)
# Desactiva los indicadores del mapa de la Bomba B
for (MapIndicator : BombBMapIndicators):
MapIndicator.Disable()
La primera sección de código muestra simultaneidad con race
para determinar si se armó primero la Bomba A o la Bomba B.
block:
# Espera a que se arme la Bomba B
ArmingPlayer:= TimedObjectiveB.StartedEvent.Await()
Print("Bomba B armada",?Duration:=5.0)
# Se utiliza para saber qué balizas hay que activar y qué barriles hay que explotar
set BombState = bomb_state.BombBArmed
# Desactiva el otro dispositivo Objetivo cronometrado
TimedObjectiveA.Disable(ArmingPlayer)
# Desactiva los indicadores del mapa de la Bomba A
for (MapIndicator : BombAMapIndicators):
MapIndicator.Disable()
# Habilita los dispositivos Baliza correctos ahora que una bomba está armada
UpdateBeacons()
# Espera a que TimedObjective se complete o se detenga
race:
block:
BombDetonated(TimedObjectiveA.CompletedEvent.Await())
block:
BombDetonated(TimedObjectiveB.CompletedEvent.Await())
block:
DisarmingPlayer:= TimedObjectiveA.StoppedEvent.Await()
Print("Bomba desarmada", ?Duration:=5.0)
EndGameDevice.Activate(DisarmingPlayer)
block:
DisarmingPlayer:= TimedObjectiveB.StoppedEvent.Await()
Print("Bomba desarmada", ?Duration:=5.0)
EndGameDevice.Activate(DisarmingPlayer)
El código anterior muestra la simultaneidad en la que la secuencia de comandos espera a que el objetivo cronometrado se complete o se detenga.
# Desactiva las balizas desarmadas y activa la baliza sobre la bomba armada
UpdateBeacons():void=
BombABeaconArm.Disable()
BombBBeaconArm.Disable()
if:
BombState = bomb_state.BombAArmed
then:
BombABeaconDisarm.Enable()
else:
BombBBeaconDisarm.Enable()
El código anterior actualiza el estado de las balizas en función de la bomba que esté armada.
BombDetonated(Agent:agent):void=
Print("Bomba detonada", ?Duration:=5.0)
# Determina qué barriles deben explotar
if:
BombState = bomb_state.BombAArmed
then:
ExplodeBarrels(ExplosiveBarrelsA, Agent)
else:
ExplodeBarrels(ExplosiveBarrelsB, Agent)
EndGameDevice.Activate(Agent)
Se llama al método anterior cuando se completa el dispositivo Objetivo cronometrado. Determina qué barriles deben explotar y terminar la partida.
ExplodeBarrels(Barrels:[]explosive_device, Agent:agent):void=
for (Barrel : Barrels):
Barrel.Explode(Agent)
El bucle for anterior para hacer explotar cada barril en el lugar correcto de la bomba.
Dispositivo Verse

Compila tu secuencia de comandos de Verse y busca tu dispositivo en el almacén de contenido. Arrastra el dispositivo de Verse a una zona no visible de tu mapa para personalizar la configuración.
Utiliza este dispositivo para establecer el vínculo directo de evento en los dispositivos necesarios con el fin de que puedan ser referenciados por la secuencia de comandos de Verse.

En el panel Detalles del dispositivo, configura los ajustes para que coincidan con cada dispositivo referenciado, como en la foto de arriba.
Para configurar este dispositivo, establece las Opciones de usuario como se indica a continuación:
Opción | Valor | Explicación |
---|---|---|
TimeObjectiveA | Objetivo cronometrado BombSiteA | Enlaza el dispositivo Objetivo cronometrado con el sitio explosivo. |
TimeObjectiveB | Objetivo cronometrado BombSiteB | Enlaza el dispositivo Objetivo cronometrado con el sitio explosivo. |
ExplosiveBarrelsA | 0 - BarrelBombSiteA_1 | Enlaza el dispositivo Explosivo. |
ExplosiveBarrelsA | 1 - BarrelBombSiteA_2 | Enlaza el dispositivo Explosivo. |
ExplosiveBarrelsA | 2 - BarrelBombSiteA_3 | Enlaza el dispositivo Explosivo. |
ExplosiveBarrelsA | 3 - BarrelBombSiteA_4 | Enlaza el dispositivo Explosivo. |
ExplosiveBarrelsB | 0 - BarrelBombSiteB_1 | Enlaza el dispositivo Explosivo. |
ExplosiveBarrelsB | 1 - BarrelBombSiteB_2 | Enlaza el dispositivo Explosivo. |
ExplosiveBarrelsB | 2 - BarrelBombSiteB_3 | Enlaza el dispositivo Explosivo. |
ExplosiveBarrelsB | 3 - BarrelBombSiteB_4 | Enlaza el dispositivo Explosivo. |
EndGameDevice | Dispositivo Fin de partida 2 | Enlaza el dispositivo Fin de partida. |
BombAMapIndicators | 0 - Map_Team1_BombsiteA | Enlaza el dispositivo Objetivo cronometrado con el sitio explosivo. |
BombAMapIndicators | 1 - Map_Team2_BombsiteA | Enlaza el dispositivo Objetivo cronometrado con el sitio explosivo. |
BombBMapIndicators | 0 - Map_Team1_BombsiteB | Enlaza el dispositivo Objetivo cronometrado con el sitio explosivo. |
BombBMapIndicators | 1 - Map_Team2_BombsiteB | Enlaza el dispositivo Objetivo cronometrado con el sitio explosivo. |
BombABeaconArm | BeaconArmBombSiteA | Arma el explosivo para el sitio A. |
BombABeaconDisarm | BeaconDisarmBombSiteA | Desarma el explosivo para el sitio A. |
BombBBeaconArm | BeaconArmBombSiteB | Arma el explosivo para el sitio B. |
BombBBeaconDisarm | BeaconDisarmBombSiteB | Desarma el explosivo para el sitio B. |
Selecciona Abrir sesión para probar tu nivel finalizado.