Lección 63 de 170

Diseñar prioridades e interrupciones

Curso de desarrollo de videojuegos con IA

Especifica cómo se clasifican, separan por canales, interrumpen o dejan terminar las respuestas de audio que compiten entre sí.

919. Identidad de la lección

Módulo
2.14 — Audio
Lección
Diseñar prioridades e interrupciones
Tipo académico
Sistemas
Tipo de esquema
texto
Orden
2
Tiempo estimado
30–40 minutos

La lección anterior, El audio observa los contratos del juego, estableció que los sistemas de juego son dueños de los hechos y que el audio responde a eventos validados. Esta lección añade la política de respuesta: qué ocurre cuando llegan varios eventos sonoros válidos al mismo tiempo.

920. Objetivo de aprendizaje

Después de esta lección, podrás especificar un contrato de prioridad de audio para una escena acotada, asignando respuestas a canales, ordenando eventos en competencia y definiendo cuándo se permite una interrupción.

921. Por qué importa

Varias respuestas sonoras pueden ser correctas a la vez. Un bucle de movimiento, un rechazo de interacción, una señal de alarma y una advertencia crítica pueden solicitar reproducción durante el mismo instante. Sin una política explícita, el resultado depende del orden de los callbacks, de la duración de los recursos o del sistema que reproduzca al final. Un contrato de prioridad vuelve revisables esas decisiones y evita que cada respuesta de audio se convierta en un sistema de reglas sin propietario. También ofrece límites precisos para el código generado por IA, en lugar de pedirle al agente que invente el comportamiento a partir de ejemplos dispersos.

922. Conocimientos previos

Debes poder distinguir la autoridad del juego de la observación de audio, y describir un evento mediante una identidad estable y datos mínimos. La lección anterior, El audio observa los contratos del juego, introdujo el modelo autoridad–evento–observador. También debes poder identificar una respuesta de presentación que no modifique el estado del juego.

923. Concepto central

La prioridad de audio es una política de presentación para resolver la competencia entre respuestas válidas. No es una segunda autoridad del juego.

Un contrato útil responde cuatro preguntas distintas:

  1. Prioridad: ¿Qué respuesta gana cuando dos respuestas compiten por el mismo canal?
  2. Canal: ¿Qué respuestas pueden reproducirse simultáneamente porque cumplen funciones de presentación distintas?
  3. Interrupción: ¿Puede una respuesta nueva detener a la actual y bajo qué condición?
  4. Alternativa: ¿Qué ocurre cuando la respuesta preferida no puede comenzar, el canal está ocupado o no existe un recurso adecuado?

La prioridad debe asignarse a la función comunicativa del sonido, no simplemente al orden de llegada del evento. Una advertencia crítica puede superar a una señal rutinaria de interacción en un canal compartido. Un ambiente en bucle puede continuar en su propio canal mientras se reproduce la advertencia. Una señal breve de rechazo puede descartarse o retrasarse si el canal está ocupado, según lo que establezca el contrato.

La política de audio puede elegir reproducir, reemplazar, poner en cola, superponer, atenuar o ignorar una respuesta. Cada opción debe ser intencional. El evento de juego sigue siendo verdadero independientemente de la política de presentación. Si la señal de alarma no está disponible, la advertencia del juego continúa existiendo; el sistema de audio aplica la alternativa definida.

924. Modelo mental

Usa el modelo canal–prioridad–interrupción–alternativa:

Decisión Pregunta del contrato Ejemplo de política
Canal ¿Qué función de presentación posee esta respuesta? feedback, alert o ambience
Prioridad ¿Qué respuesta gana en ese canal? La alerta crítica supera a la señal rutinaria
Interrupción ¿La respuesta nueva puede detener a la actual? La alerta crítica puede interrumpir el feedback rutinario
Alternativa ¿Qué ocurre si no se puede reproducir o el canal está ocupado? Usar una señal breve alternativa o guardar silencio

Para una escena acotada, describe la política en una tabla:

Evento Canal Prioridad Regla frente a la respuesta actual Alternativa
interaction_denied feedback 2 Reemplazar solo feedback de menor prioridad Señal breve de rechazo o silencio
container_opened feedback 2 No interrumpir una señal de igual prioridad Poner una vez en cola u omitir
alarm_started alert 3 Interrumpir contenido de alerta de menor prioridad Usar una señal breve de alarma
ambient_loop_started ambience 1 Continuar salvo que termine la escena Mantener el ambiente actual

Los números son locales a este contrato; no describen la importancia global dentro del juego. Un valor de prioridad solo sirve si también se define su canal y el comportamiento en caso de empate.

925. Ejemplo concreto

Considera una escena de sigilo en la que el jugador llega a un contenedor cerrado justo cuando comienza una alarma. Dos eventos validados llegan casi juntos: interaction_denied y alarm_started.

El contrato asigna cada respuesta a una función comunicativa distinta. La señal de rechazo usa el canal feedback con prioridad 2. La alarma usa el canal alert con prioridad 3 y puede interrumpir contenido de alerta de menor prioridad. La alarma no necesita detener el ambiente, porque este usa otro canal y no compite por la misma función. Si el canal de feedback ya reproduce otra señal de prioridad 2, el contrato puede omitir el rechazo en lugar de acumular confirmaciones atrasadas.

Esta política no decide si el contenedor está cerrado ni si la alarma está activa. Esos hechos los decidieron los sistemas de juego y se comunicaron mediante eventos. La política solo decide cuánto de esos hechos escucha el jugador, en qué orden y a través de qué canal.

926. Error común

Un error frecuente es tratar cada evento nuevo como permiso para interrumpir todo lo que se esté reproduciendo. Esto produce feedback ruidoso y convierte el momento de llegada de un evento en una regla accidental de prioridad.

Otro error es usar una sola lista global de prioridades sin definir canales. Entonces una transición ambiental de alta prioridad podría suprimir una alerta crítica, o varias señales rutinarias competirían aunque pudieran reproducirse en canales separados. También es un error afirmar que un sonido “debe reproducirse” sin definir una alternativa. Los recursos ausentes, los canales ocupados y los eventos repetidos rápidamente son condiciones normales que requieren una respuesta explícita.

No uses la prioridad de audio para compensar una autoridad de juego poco clara. Si el sistema sonoro debe decidir cuál resultado de juego es verdadero, falta corregir el límite de propiedad descrito en la lección anterior.

927. Práctica guiada

Escribe un contrato de prioridad para esta escena acotada:

  • Ya se reproduce un bucle de movimiento.
  • El jugador recibe un evento rutinario item_acquired.
  • El jugador intenta una interacción cerrada, que produce interaction_denied con reason = locked.
  • Llega un evento validado alarm_started antes de que termine la señal de rechazo.
  • El recurso de alarma preferido no está disponible.

Usa como máximo tres canales: ambience, feedback y alert. Para cada evento, especifica:

  1. canal;
  2. prioridad del 1 al 3;
  3. la regla de competencia en el mismo canal: si puede reemplazar, interrumpir, ponerse en cola detrás de, superponerse con o ser omitido cuando ese canal está ocupado;
  4. la regla entre canales: si puede reproducirse junto a otro canal, interrumpirlo o atenuar temporalmente su volumen;
  5. alternativa si el canal está ocupado o el recurso preferido no está disponible.

Mantén separadas las dos decisiones. La competencia en el mismo canal determina qué ocurre cuando varias respuestas comparten canal: la prioridad y la regla de empate deciden cuál se reproduce, espera, reemplaza a la actual o se omite. La interrupción o atenuación entre canales determina si una respuesta afecta a otro canal: puede coexistir con él, detenerlo o reducir temporalmente su volumen. Una prioridad mayor en un canal no autoriza automáticamente a interrumpir o atenuar todos los demás canales.

Tu decisión principal es establecer cómo se relaciona alarm_started con la señal de rechazo. Indica si la alarma usa el mismo canal feedback o un canal separado alert. Si usa el mismo canal, define la regla de competencia y reemplazo. Si usa un canal separado, define si coexiste con feedback y ambience, si los interrumpe o si los atenúa. Justifica la decisión nombrando la función comunicativa y el coste para el jugador de perder o enmascarar cada respuesta. Puede haber políticas distintas, pero el contrato debe ser coherente y acotado.

928. Validación / evidencia

Tu evidencia es una tabla de política completa y una breve justificación de la decisión de interrupción. La tabla debe permitir responder por separado a los dos tipos de competencia:

  • ¿Qué respuestas compiten en el mismo canal?
  • Cuando hay un conflicto o empate en el mismo canal, ¿qué respuesta gana y qué ocurre con la otra?
  • ¿Qué respuestas pueden coexistir entre canales distintos?
  • ¿Puede una respuesta de un canal interrumpir o atenuar otro canal, y bajo qué condición explícita?
  • ¿Qué eventos pueden interrumpir y cuáles no?
  • ¿Qué ocurre cuando no se puede usar el recurso preferido?

El trabajo es válido cuando otro desarrollador puede implementar la política sin deducir el comportamiento a partir del orden de los callbacks o de los nombres de los recursos. También debe declarar que cambiar la política de audio no cambia el resultado subyacente del juego. Una respuesta completa distingue el reemplazo o la puesta en cola dentro del mismo canal de la coexistencia, interrupción o atenuación entre canales; nombrar solo un orden global de prioridades no es suficiente.

929. Ideas clave

  • La prioridad resuelve la competencia entre presentaciones sonoras; no establece la verdad del juego.
  • Los canales definen qué respuestas compiten y cuáles pueden coexistir.
  • La competencia en el mismo canal necesita una prioridad y una regla de empate explícitas.
  • La interrupción o atenuación entre canales debe autorizarse por separado, no deducirse solo de la prioridad.
  • Toda política de audio acotada necesita reglas de interrupción y alternativas.
  • Omitir un sonido no invalida el evento de juego que ese sonido habría presentado.

930. Siguiente lección

Continúa con 2.15 — Accesibilidad.

931. Comprobación

Responde estas preguntas por tu cuenta antes de leer las respuestas.

¿Qué resuelve un valor de prioridad de audio?

  • A. Qué resultado del juego es verdadero
  • B. Qué respuesta sonora gana cuando varias compiten en un canal definido
  • C. Qué recurso debe modificar el inventario
  • D. Si el sistema de juego debe emitir un evento
Mostrar respuesta y explicación

Respuesta: Qué respuesta sonora gana cuando varias compiten en un canal definido

Por qué: La prioridad es una política de presentación. Resuelve la competencia entre respuestas sonoras y no decide la verdad del juego.

¿Por qué son importantes los canales en un contrato de audio?

  • A. Definen qué respuestas compiten y cuáles pueden coexistir
  • B. Sustituyen la propiedad de los eventos del juego
  • C. Garantizan que todo sonido solicitado se reproduzca
  • D. Determinan si una interacción tiene éxito
Mostrar respuesta y explicación

Respuesta: Definen qué respuestas compiten y cuáles pueden coexistir

Por qué: Los canales separan funciones de presentación. Las respuestas de canales distintos pueden coexistir, mientras que las del mismo canal necesitan una política de competencia.

¿Qué política es una alternativa más clara cuando el recurso de alerta preferido no está disponible?

  • A. Cambiar el estado del juego hasta que aparezca el recurso
  • B. Pedir al callback de audio que valide la alarma
  • C. Usar una señal alternativa definida o guardar silencio sin cambiar la verdad del juego
  • D. Reproducir a la vez todos los sonidos de menor prioridad
Mostrar respuesta y explicación

Respuesta: Usar una señal alternativa definida o guardar silencio sin cambiar la verdad del juego

Por qué: Una alternativa controla el fallo de presentación mientras conserva el evento de juego validado y su propiedad.

¿Qué debe especificar una regla de interrupción?

  • A. Solo el nombre del archivo del sonido nuevo
  • B. Qué sistema de juego pierde autoridad
  • C. El orden en que los desarrolladores deben editar los recursos
  • D. Si la respuesta nueva puede detener a la actual y bajo qué condición
Mostrar respuesta y explicación

Respuesta: Si la respuesta nueva puede detener a la actual y bajo qué condición

Por qué: La interrupción debe ser explícita para que el momento de llegada del evento no determine accidentalmente el comportamiento. La regla debe identificar la condición permitida y el canal o respuesta afectados.

Apoyar