Construyendo un Estudio Multiusuario
¿Cómo conectas realmente a dos participantes para que las acciones de uno lleguen a la pantalla del otro?
Este recorrido cubre la mecánica clic por clic: habilitar el modo multiusuario, asignar roles, conectar participantes y mantenerlos sincronizados. Para saber cuándo usar un diseño multiusuario, mejores prácticas y estudios de ejemplo existentes, consulta Diseño de Experimentos Multiusuario.
Los cuatro pasos a continuación son los mismos para cada estudio multiusuario, independientemente de lo que realmente esté probando. Una vez que los tengas funcionando, la sección "Ejemplos Adicionales" muestra los mismos cuatro pasos reutilizados en tres diseños diferentes.
Tabla de Contenidos
Conocimientos Previos
Se recomienda tener conocimiento fundamental de Labvanced, como el funcionamiento de eventos y el uso de variables, para seguir la terminología utilizada a continuación.
Marcos
El bloque de construcción que sostiene lo que los participantes ven en cada momento de un ensayo.
Eventos
Qué es un disparador y una acción, y cómo se combinan para construir la lógica de un estudio.
Variables
Qué es una variable y cómo almacena y actualiza valores durante un estudio.
Configurando la Estructura
Habilitando el modo de múltiples participantes
Un estudio de Labvanced está diseñado para un solo participante por defecto. Ninguna de las herramientas multiusuario, Role_Id, Distribute Variable, la sincronización, existen hasta que se le indica al estudio que se ejecutará con más de una persona a la vez.
Abre Configuración en la columna derecha, luego bajo Funciones Especiales haz clic en Estudio Multiusuario y haz clic en Transform. Esto revela dos campos: Number of Participants (mínimo 2) y Maximum Parallel Sessions. Consulta Estudio Multiusuario para ver la lista completa de configuraciones que esto desbloquea.
Este clic no se puede deshacer (el cuadro de diálogo de confirmación está etiquetado como Transform Permanently). Decide primero tu número de participantes y duplica el estudio de antemano si también deseas una versión para un solo participante.

Asignando roles con Role_Id
Con el modo de múltiples participantes activado, cada participante sigue ejecutando una copia idéntica y no diferenciada del experimento; nada aún los distingue. Role_Id le da a cada participante una identidad sobre la que puedes actuar, sin recopilar nada personal, para que sus experimentos puedan empezar a hacer cosas diferentes.
Agrega un evento con un Trial and Frame Trigger → On Frame Start, luego una acción Control Actions → Requirement Actions (If... Then... Else If):
- Agregar Requerimiento: lado izquierdo →
Variable→ seleccionarRole_Id; comparación →equal; lado derecho →Constant Value→Number→1 - Entonces: agrega cualquier acción que aplique al rol 1, por ejemplo
Set Object Propertypara mostrar una imagen objetivo - Agregar Caso Else: agrega las acciones que apliquen a todos los demás roles

Conectando participantes con Distribute Variable
Un Role_Id diferente puede poner contenido diferente frente a cada participante, pero aún no puede mover información entre ellos; el experimento de cada participante sigue ejecutándose en aislamiento. Distribute Variable es la única acción que envía un valor de un experimento de un participante a otro, lo que realmente hace que el estudio se sienta compartido en lugar de uno al lado del otro.
En cualquier desencadenador que se adapte a tu diseño, por ejemplo un Button Click Trigger o Enter on Input Trigger, agrega un Variable Actions → Distribute Variable Action:
- Distribuir valor a: todos los participantes, o una selección
- Elegir variable y valor objetivo: la variable en la pantalla del participante receptor, y a qué debería establecerse
- Bloquear: actívalo si más de un participante podría escribir en la misma variable objetivo al mismo tiempo

priceArray, con Bloquear habilitado y un límite de tasa debounce. Manteniendo a los participantes sincronizados
Los participantes no avanzan por el estudio al mismo ritmo por su cuenta. Sin un punto de sincronización, un participante puede alcanzar un marco posterior antes de que el valor que están esperando haya sido distribuido, viendo un estado en blanco o incompleto en lugar de la respuesta del otro participante.
En el marco donde los participantes necesitan mantenerse en sintonía, por ejemplo, ninguno de ellos debería avanzar antes de que el otro haya respondido, habilita Sync Frame Start en Configuración del Marco. Todos esperan en ese marco hasta que todos los participantes han llegado.

Ejemplos Adicionales
Los cuatro pasos anteriores no cambian. Lo que cambia es qué se distribuye y dónde va el punto de sincronización. Tres variaciones trabajadas, comenzando con la más sencilla:
- Contador Compartido: la versión mínima, un valor mantenido sincronizado entre dos participantes
- Tarea de Descripción Director-Match: un participante describe, el otro identifica
- Oferta y Respuesta por Turnos: un participante propone, el otro acepta o rechaza
Contador Compartido
La versión más simple posible de la estructura: ambos participantes ven el mismo total en funcionamiento, y cualquiera de ellos puede agregarle.
- Role_Id: no se necesita aquí ya que ambos participantes actúan de la misma manera.
- Distribuir: en un
Button Click Trigger, distribuye el valor a todos los participantes, variable objetivoSharedCount, valor =SharedCount + 1. - Sincronización: no se necesita, ya que no hay un límite de ensayo que retenga a los participantes.
Esto confirma que el modo multiusuario y Distribute Variable están funcionando antes de agregar lógica basada en roles encima.
Tarea de Descripción Director-Match
Una tarea de comunicación referencial: un participante (el Director) describe un objeto objetivo, el otro (el Match) lo identifica de un conjunto de candidatos.
- Role_Id:
Role_Id1 ve la imagen objetivo y una entrada de texto.Role_Id2 ve las imágenes candidatas y no el objetivo. - Distribuir: en el desencadenador de la tecla Enter del Director, distribuye el valor de texto a una variable
Descriptionen la pantalla del Match, conBlockhabilitado ya que solo una descripción debería estar en vuelo a la vez. - Sincronización: habilita
Sync Frame Starten el marco del siguiente ensayo, para que el Director no pueda avanzar antes de que el Match haya seleccionado un candidato.
Esta es la misma estructura detrás de la Demostración de Descripción de Imágenes.
Oferta y Respuesta por Turnos
Un intercambio económico: un participante propone una división de una cantidad compartida, el otro acepta o rechaza.
- Role_Id:
Role_Id1 ve una entrada para la división propuesta.Role_Id2 no ve nada hasta que llega una propuesta. - Distribuir: en el desencadenador de envío del proponente, distribuye el valor propuesto a una variable
Offeren la pantalla del respondedor. - Sincronización: habilita
Sync Frame Starten el marco del resultado, para que ninguno de los participantes vea el resultado antes de que el respondedor haya respondido.
Esta es la misma estructura detrás del Juego del Ultimátum.
Un ejemplo real de este patrón, usando una cantidad sorteada aleatoriamente en lugar de una ingresada manualmente: Role_Id igual a 1 desencadena una acción Draw Random Number (un sorteo uniforme discreto entre 50 y 150, guardado en amountToSplit), seguido inmediatamente por Distribute Variable enviando amountToSplit a todos los participantes, con Block habilitado.

amountToSplit, luego Distribute Variable lo envía a todos los participantes con Bloquear habilitado. Lecturas Adicionales
Diseño de Experimentos Multiusuario
Cuándo usar un diseño multiusuario, mejores prácticas y una galería de ejemplos existentes construidos en Labvanced.
Estudios Multi-participante
La referencia completa para habilitar el modo multiusuario, grupos de participantes predefinidos y sincronización de marcos/tareas.
Sistema de Eventos: Distribute Variable
Referencia completa de parámetros para Distribute Variable, incluyendo la opción de Estrategia de Límite de Tasa no cubierta aquí.