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.
httpohttpsen tu propia máquina, en cualquier puerto:localhost, un nombre bajo.localhost(comogame.localhost) o127.0.0.1. Ohttpsen 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. Escribelocalhosto127.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.
httpen 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.comy*.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 conorigin_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:5173muestra una dirección bajotrycloudflare.com. Los túneles rápidos como este se aceptan en la URL de desarrollo, aunque un lanzamiento los rechace. - Tailscale Funnel:
tailscale funnel 5173sirve el servidor de desarrollo en el nombrets.netde 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.allowedHostsdevite.config.js, comoallowedHosts: [".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 elvite.config.jsde la plantilla, y ningúnX-Frame-Options. - El juego deja
hostOriginen 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.comenframe-ancestors. Enlocalhost, 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, concontext.modeigual atest.- Nada navega el frame: ningún enlace, ninguna recarga, ninguna segunda página.
- La pantalla completa pasa por
requestFullscreen, desde un clic. authorizellega 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_changedverificado. - Cada tercero que carga el juego está declarado en el lanzamiento.
- En un móvil, el diseño sigue a
LAYOUT_UPDATEy 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.