uloggdDesarrolladores
Portal de desarrolladoresuloggd
EmpezarRecursosArcade
Portal de desarrolladoresuloggdArcadeAlojamientoEl frameSDKIdentidadVerificación en otros lenguajesEventos de datosPruebasPolítica de revisiónDeberes de privacidadMotores

Pruebas

Desarrolla sin conexión en el simulador, y luego juega tu juego dentro de uloggd, desde tu máquina o desde un lanzamiento, antes de que nadie lo revise.

En el simulador, sin conexión

El npm run dev de un proyecto Vite sirve el juego en localhost, donde createArcadeSDK({ appId, mockWhenStandalone: true }) te da el simulador: sin uloggd, sin red, todos los comandos respondidos. Abre una segunda pestaña con ?mock_player=2 en la dirección para ser un segundo jugador. La referencia del SDK muestra cómo dirigir el simulador en tus propias pruebas.

Tu servidor solo acepta los tokens del simulador con allowMock: true. Deja eso en la configuración de desarrollo: un verificador en producción debe rechazarlos.

En los verificadores para otros lenguajes, allowMock y allowTestMode (consulta Modo de prueba) corresponden a allow_mock y allow_test_mode en Python, que está verificado y publicado en Verificación en otros lenguajes. Los verificadores en Go y C#, escritos pero aún no verificados, los llaman WithMockTokens() y WithoutTestMode() en Go, y AllowMock y AllowTestMode en C#.

Para jugar dentro de uloggd mientras el juego todavía corre en tu máquina, usa la URL de desarrollo.

Modo de prueba, dentro de uloggd

Probar, en un lanzamiento del portal, lo abre en el reproductor de verdad, en una página que solo tú puedes abrir: /developers/applications/{id}/arcade/test/{releaseId}.

  • Se puede probar cualquier lanzamiento de tu aplicación, en borrador, enviado, en revisión o aprobado, siempre que su última verificación de URL haya pasado en las últimas 24 horas. Pulsa Verificar URL de nuevo cuando sea más antigua.
  • Exige una sesión iniciada con la verificación en dos pasos. Las partidas de prueba cuentan para los 60 juegos que una cuenta puede abrir por hora, y las reglas de edad se aplican como a cualquier jugador.
  • Las partidas de prueba nunca cuentan como partidas de tu juego.

El modo de prueba se marca en todas partes, para que nunca pase por el de verdad:

  • una barra a rayas sobre el juego dice que es el modo de prueba, que la versión no se revisó, que solo tú la ves y que no escribas contraseñas;
  • la URL de apertura lleva mode=test, y los tokens de identidad "mode": "test";
  • el diálogo de consentimiento añade que la versión no se revisó.

El SDK, el consentimiento y los tokens de identidad funcionan en modo de prueba. verifyIdentityToken acepta los tokens de prueba salvo que pases allowTestMode: false: pásalo en todo servidor donde una versión no revisada no deba dejar entrar a nadie. Los eventos de datos llegan a tu servidor una vez que se aprueba un lanzamiento (consulta Antes de la aprobación).

URL de desarrollo: localhost y túneles

La URL de desarrollo abre el juego en el reproductor de verdad de uloggd mientras corre en tu máquina o detrás de un túnel, antes de cualquier despliegue, sin archivo de prueba y sin verificación de URL. En el portal, abre la aplicación y, en su sección Arcade, ve a URL de desarrollo: escribe la dirección en URL del juego, elige un Lanzamiento base, Guardar y luego Abrir en uloggd.

  • Qué acepta. http o https en tu propia máquina, en cualquier puerto: localhost, un nombre bajo .localhost (como game.localhost) o 127.0.0.1. O https en un host público, en cualquier puerto, como un túnel. Sin usuario, consulta ni fragmento, y la ruta sigue las reglas de los lanzamientos.
  • Qué rechaza, con url_denied:
    • [::1] y cualquier otra dirección IPv6: la política de la página del reproductor no puede nombrar un origen IPv6. Escribe localhost o 127.0.0.1.
    • Cualquier otra dirección IP, y un host público que resuelve a una dirección privada cuando lo guardas: uloggd abre en un frame tu propia máquina, nunca otro dispositivo de tu red. Para llegar a un servidor de desarrollo desde un móvil u otro ordenador, usa un túnel.
    • http en un host público: HTTP sin cifrar solo hacia tu propia máquina.
    • Los hosts del propio uloggd y sus imitaciones, como en los lanzamientos, y el nombre de host en el que se sirve el sitio de uloggd. Las cookies no se separan por puerto, así que un juego en ese nombre de host las compartiría con uloggd; en uloggd.com, eso es el propio uloggd.com, no tu localhost.
    • Los hosts de la lista de bloqueo de los lanzamientos, salvo los túneles temporales, como *.trycloudflare.com y *.ngrok-free.app, que la URL de desarrollo acepta.
  • El lanzamiento base. Un lanzamiento en borrador, enviado, en revisión o aprobado de la misma aplicación. Lo que el juego puede hacer y pedir viene de él: capacidades, permisos, orientación y plataformas. La URL de desarrollo cambia solo la dirección.
  • La página de la tienda. Tiene que estar guardada antes de que el juego se abra, porque el reproductor muestra el nombre del juego y el responsable a partir de ella. Un borrador basta.
  • 24 horas. Guardarla de nuevo, con la misma URL u otra, empieza otras 24 horas. Una aplicación tiene 20 guardados al día; solo cuenta un guardado que se queda, así que una URL rechazada y Quitar no cuentan. Quitarla, llevarla a otro origen o dejarla caducar cierra en 30 segundos como mucho un juego abierto en ella. Otra ruta u otro lanzamiento base en el mismo origen no lo cierra: el juego ya abierto conserva la dirección y el lanzamiento base con los que se abrió hasta que lo vuelvas a abrir.
  • Solo tú. Solo se abre para el dueño de la aplicación, en una sesión iniciada con la verificación en dos pasos, en /developers/applications/{id}/arcade/override/play. Nadie más, ni revisores ni moderadores, puede abrirla o leer la URL. Un origen que es de un juego de otra cuenta se rechaza con origin_in_use. Las partidas cuentan para los 60 juegos que una cuenta puede abrir por hora, las reglas de edad se aplican, y nunca cuentan como partidas de tu juego.

Se marca como modo de prueba, como un lanzamiento probado:

  • la barra a rayas dice "Modo de prueba: URL de desarrollo, solo tú ves esto. No escribas contraseñas." y muestra el host con su puerto;
  • la URL de apertura lleva mode=test, y los tokens de identidad "mode": "test";
  • el diálogo de consentimiento añade "Versión no revisada.".

Los tokens de identidad de la URL de desarrollo son tokens normales del modo de prueba: el mismo iss y el mismo aud, y ninguna información propia. Un servidor que acepta tokens de prueba también acepta estos, así que pasa allowTestMode: false en todo servidor de producción. Los eventos de datos nunca van a la URL de desarrollo: van a la URL de eventos de datos de un lanzamiento (consulta Entrega).

En tu propia máquina. Chrome y Edge pueden preguntar si uloggd.com puede acceder a apps y servicios en este dispositivo (su solicitud de Acceso a la red local). Permítelo, y el juego carga desde tu máquina; si prefieres no permitirlo, usa un túnel. Para retirar el permiso, abre la configuración del sitio uloggd.com desde el icono a la izquierda de la barra de direcciones, y restablécelo o bloquéalo allí. Solo la página de la URL de desarrollo puede usar ese permiso, y solo para el origen local que guardaste (consulta Permisos). La dirección local está pensada para navegadores basados en Chromium, como Chrome y Edge; otros navegadores pueden no abrir una dirección local dentro de la página HTTPS de uloggd. Un túnel funciona en todos.

Túneles

Un túnel le da a tu servidor de desarrollo una dirección HTTPS pública. Cualquiera de estos sirve:

  • cloudflared: cloudflared tunnel --url http://localhost:5173 muestra una dirección bajo trycloudflare.com. Los túneles rápidos como este se aceptan en la URL de desarrollo, aunque un lanzamiento los rechace.
  • Tailscale Funnel: tailscale funnel 5173 sirve el servidor de desarrollo en el nombre ts.net de tu máquina. Funnel solo publica los puertos 443, 8443 y 10000, y la URL de desarrollo acepta cualquiera.
  • ngrok: ngrok http 5173. Su plan gratuito puede mostrar una página de aviso antes de tu sitio, y dentro del frame esa página impide que el juego cargue.

Después:

  • Vite solo responde a los hosts que conoce. Añade el del túnel en server.allowedHosts de vite.config.js, como allowedHosts: [".trycloudflare.com"] (un punto al principio admite todos los subdominios).
  • El servidor de desarrollo debe dejar que uloggd lo abra en un frame: envía Content-Security-Policy: frame-ancestors https://uloggd.com 'self', como hace el vite.config.js de la plantilla, y ningún X-Frame-Options.
  • El juego deja hostOrigin en su valor por defecto, https://uloggd.com.

Si el juego no abre

  • "Ninguna URL de desarrollo activa" o "La URL de desarrollo caducó": guárdala de nuevo en el portal, y ábrela desde allí.
  • "La URL de desarrollo no se puede abrir ahora": la pantalla y el portal dicen por qué, como un lanzamiento base rechazado o retirado, o ninguna página de la tienda guardada.
  • "El sitio del desarrollador no respondió como uloggd espera": el servidor de desarrollo no está en marcha, o no permite https://uloggd.com en frame-ancestors. En localhost, el navegador también puede haber rechazado la dirección local, o el permiso de Acceso a la red local está bloqueado: permítelo en la configuración del sitio, o usa un túnel.
  • "Blocked request" de Vite: falta el host del túnel en server.allowedHosts.
  • "El juego se reinició" tras cada edición: recargar la página entera es una navegación del frame, y eso termina la partida (consulta Un documento). Una actualización que Vite aplica en su sitio mantiene el juego en marcha; tras una recarga, vuelve a jugar desde la pantalla del reproductor.

Antes de enviar

  • Verificar URL pasa: el archivo de prueba, ninguna redirección, el frame permitido.
  • El juego corrió dentro de uloggd desde la URL de desarrollo con este lanzamiento como base, así que las capacidades y los permisos que declara son los que el juego necesita.
  • La página crea el SDK antes que nada, y muestra su propia pantalla de carga.
  • ready() se resuelve en modo de prueba, con context.mode igual a test.
  • Nada navega el frame: ningún enlace, ninguna recarga, ninguna segunda página.
  • La pantalla completa pasa por requestFullscreen, desde un clic.
  • authorize llega tras un clic del jugador, y una cancelación deja el juego jugable.
  • Tu servidor verifica un token de prueba y rechaza uno repetido.
  • Tras la aprobación, cambia tu apodo en el juego en Ajustes > Arcade y comprueba que llega a tu servidor un nickname_changed verificado.
  • Cada tercero que carga el juego está declarado en el lanzamiento.
  • En un móvil, el diseño sigue a LAYOUT_UPDATE y al área segura.

Eventos de datos

Cuando un jugador revoca, olvida tu juego, cambia el apodo o elimina la cuenta, uloggd avisa a tu servidor, y tú repites lo que hizo.

Política de revisión

Lo que comprueba quien revisa antes de que un lanzamiento o una página de la tienda llegue a los jugadores, los motivos de un rechazo y lo que termina una cuenta.

En esta página

En el simulador, sin conexiónModo de prueba, dentro de uloggdURL de desarrollo: localhost y túnelesTúnelesSi el juego no abreAntes de enviar