Arcade
Lleva un juego web que alojas tú a los jugadores de uloggd, dentro de uloggd, con una identidad verificada para cada jugador que acepte.
Arcade ejecuta juegos web en uloggd.com. Tú alojas el juego en tu propio origen HTTPS; uloggd lo lista, abre esa URL en un frame, en una página hecha solo para él, y, cuando el jugador acepta, le da al juego una identidad de corta duración firmada por uloggd. uloggd nunca aloja, intermedia ni sirve los archivos de un juego.
Arcade es una vista previa solo con invitación. Publicar está abierto a las cuentas de la lista de la vista previa. La documentación y el SDK están abiertos a todos, así que un juego se puede construir y probar en el simulador antes de recibir la invitación (consulta Estado de la vista previa).
Cómo encajan las piezas
- El juego es tu sitio, en su propio origen: un subdominio por juego. Se
ejecuta en un frame con sandbox en
https://uloggd.com/{lang}/arcade/{slug}/play, de otro sitio respecto a uloggd. - El SDK,
@uloggd/arcade-sdk, habla con la página de uloggd alrededor del frame. Recibe el contexto, pide el consentimiento del jugador, obtiene tokens de identidad, pasa a pantalla completa y se entera de cuándo el juego va a cerrarse. - Tu servidor verifica los tokens de identidad sin conexión, con las llaves públicas de uloggd, y recibe eventos de datos cuando un jugador revoca, olvida el juego, cambia el apodo o elimina la cuenta.
- El portal, en la sección Arcade de tu aplicación, tiene cinco páginas: Visión general, donde activas Arcade, Página de la tienda, Lanzamientos, Datos de los jugadores y URL de desarrollo, donde abres el juego en uloggd desde tu propia máquina. Todo cambio en la página de la tienda y toda URL nueva pasa por la revisión de un moderador con nombre antes de llegar a los jugadores.
Lo que ven los jugadores, y lo que recibes tú
- Solo juega quien ha iniciado sesión. Durante la vista previa, un jugador de Arcade tiene al menos 16 años, y todo juego lleva una autoclasificación ClassInd de L a 16, aplicada al abrir el juego.
- El juego recibe un id por juego (
sub), distinto en cada juego, y un apodo que elige el jugador. Nunca el correo, la cuenta de uloggd, la edad ni la fecha de nacimiento. - Tus servidores ven la dirección IP y el navegador del jugador, como cualquier sitio. La página de la tienda y el aviso de la primera partida se lo dicen al jugador.
- No hay monetización en la v1: ni compras ni anuncios.
Quién puede publicar
La base de datos comprueba cada condición cuando activas Arcade en una aplicación:
- la cuenta está en la lista de la vista previa;
- la verificación en dos pasos está activada, y esta sesión entró con ella;
- el correo está verificado, y la cuenta tiene al menos 30 días;
- tienes 18 años o más;
- aceptaste los términos de desarrollador de Arcade vigentes;
- la cuenta no está suspendida del sitio de forma permanente, y el equipo no la bloqueó para publicar.
Una aplicación de Arcade es una de tus aplicaciones de desarrollador, así que cuenta para el límite de 10 aplicaciones por cuenta. Activar Arcade reserva el slug de la aplicación, la dirección de su página de la tienda.
Cuando cambian los términos. uloggd registra la versión de los términos
de desarrollador de Arcade que aceptaste, con un resumen de su texto. Cuando
sale una versión nueva, la Visión general te pide leerla y aceptarla.
Hasta entonces puedes seguir editando borradores, verificando URLs, usando la
URL de desarrollo, retirando un envío y quitando un juego, y tus juegos que
ya están en vivo siguen en vivo; pero enviar un lanzamiento o la página de la
tienda, y poner un lanzamiento en vivo, responden 403 forbidden con
reason terms_required.
Bloqueo para publicar. El equipo puede bloquear una cuenta para publicar.
Una cuenta bloqueada no activa Arcade, no edita, verifica, envía ni pone en
vivo nada y no guarda una URL de desarrollo: esas acciones responden
403 forbidden con reason publisher_blocked. Sigue pudiendo retirar un
envío y quitar un juego. Para pedir que se revise un bloqueo, escribe al
contacto de la página Sobre nosotros.
Estado de la vista previa
- Durante la vista previa, publicar es solo con invitación: Arcade solo se
activa en las aplicaciones de una cuenta de la lista de la vista previa, y
una cuenta fuera de ella recibe
not_allowlisted. - Para pedir una invitación, escribe al contacto de la página Sobre nosotros.
- La llave de identidad en uso es
arc-2026-10(consulta Llaves públicas actuales). - El SDK está en la versión 0.2.0: módulos ES, CommonJS y un build para una etiqueta script común (consulta SDK).
Inicio rápido
- Crea un proyecto Vite con
npm create vite@latest, e instala el SDK, que está en npm:npm install @uloggd/arcade-sdk. Crea el cliente como en el ejemplo de abajo. - Ejecuta
npm run dev. Abierto directamente enlocalhost, el SDK funciona con el simulador, sin conexión: un jugador falso, tokens falsos, todos los comandos respondidos. Consulta Pruebas. - Prepara la aplicación en el portal. En Aplicaciones, abre la aplicación y, en su sección Arcade, activa Arcade en Visión general. Usa Guardar borrador en la Página de la tienda y, en Lanzamientos, crea un Nuevo lanzamiento con la URL que tendrá el juego una vez desplegado. Por ahora, un borrador basta.
- Prueba dentro de uloggd con la URL de desarrollo. En
URL de desarrollo, define
http://localhost:5173/con ese borrador como lanzamiento base y luego Abrir en uloggd: el juego corre en el reproductor del propio uloggd mientras sigue en tu máquina (consulta URL de desarrollo). - Prepara el alojamiento. Añade
public/.well-known/uloggd-arcade.jsoncon el id de la aplicación que muestra el portal (consulta El archivo de prueba) y envía la cabeceraContent-Security-Policy: frame-ancestors https://uloggd.com 'self'(consulta Deja que uloggd lo abra en un frame). Despliega en cualquier alojamiento HTTPS, un origen por juego. - En tu servidor, copia los fragmentos de Identidad, que verifica los tokens de identidad, y de Eventos de datos, que recibe los eventos de datos.
- De vuelta en el portal, en el lanzamiento, Verificar URL, Probar y Enviar a revisión, y envía también la página de la tienda a revisión.
- Tras la aprobación, Poner en vivo. Los jugadores encuentran el juego cuando su página de la tienda está aprobada y hay un lanzamiento en vivo.
import { createArcadeSDK } from "@uloggd/arcade-sdk";
const arcade = createArcadeSDK({
appId: "ID_DE_TU_APLICACION",
mockWhenStandalone: true,
});
const { context } = await arcade.ready();
console.log(context.mode, context.locale);¿Sin bundler? El SDK también viene como un solo archivo para una etiqueta script común: consulta SDK.
La página de la tienda y los lanzamientos
- La página de la tienda tiene el nombre, el eslogan, la descripción, las imágenes, las etiquetas, la clasificación y quién responde por los datos de los jugadores. Hay un borrador a la vez, y los jugadores siguen viendo la versión aprobada hasta que un moderador aprueba la siguiente. Solo una clasificación más alta vale en cuanto la envías.
- Los lanzamientos son lo que revisa un moderador: la URL de entrada, las capacidades, los permisos, la orientación y las plataformas, los terceros que carga el juego y para qué, la URL de eventos de datos y notas para quien revisa. Un lanzamiento en borrador se puede editar; uno enviado nunca cambia. Una URL, un permiso, una capacidad, un tercero o una URL de eventos de datos nuevos son un lanzamiento nuevo, y el lanzamiento en vivo sigue funcionando mientras tanto. Retirar saca de la cola un lanzamiento enviado.
- Poner en vivo pone un lanzamiento aprobado delante de los jugadores. Antes vuelve a verificar la URL, y lo rechaza cuando el proveedor de alojamiento cambió desde la aprobación o la aprobación tiene más de 90 días. Para deshacer un cambio, pon en vivo otra vez el lanzamiento que estaba en vivo antes; cualquiera más antiguo pasa de nuevo por revisión, con Reenviar como nuevo lanzamiento.
- Quitar de Arcade, en Visión general, termina la página para
siempre. El slug y el origen nunca pasan a otra persona, y las pruebas se
guardan durante 180 días. Una aplicación de desarrollador con una aplicación
de Arcade no se puede eliminar hasta quitarla de Arcade, incluso en
borrador: hasta entonces, eliminarla se rechaza con
409 conflictyreasonremove_from_arcade_first.
Enviar un lanzamiento, poner uno en vivo, enviar la página de la tienda y
quitar la aplicación exigen una sesión iniciada hace poco, con la verificación
en dos pasos, y cada acción te envía un correo. Una sesión más antigua recibe
403 forbidden con reason reauthentication_required: vuelve a iniciar
sesión.
La API detrás del portal
El portal lee y escribe con las rutas de /api/v1 documentadas en
Recursos: Arcade. Toda ruta que toca tus
aplicaciones o los juegos de un jugador es solo para sesión, y rechaza una
llave con 403 forbidden. El directorio, las páginas de la tienda y las
llaves de identidad son públicos.
Adónde ir ahora
- Alojamiento: el origen, las reglas de la URL, el archivo de prueba y la verificación.
- El frame: el sandbox, los permisos, el almacenamiento y los parámetros de apertura.
- SDK: cada comando, evento, error y código de cierre, y el simulador.
- Identidad: el token, cómo verificarlo y las llaves públicas.
- Verificación en otros lenguajes: las mismas comprobaciones para servidores que no ejecutan JavaScript, y los códigos de rechazo.
- Eventos de datos: lo que recibe tu servidor cuando un jugador revoca, olvida el juego, cambia el apodo o elimina la cuenta.
- Pruebas: el simulador, el modo de prueba y la URL de desarrollo, antes de enviar.
- Política de revisión: lo que comprueba quien revisa y los motivos de rechazo.
- Deberes de privacidad: los campos de responsable y lo que piden los términos.
- Motores: sin bundler, Vite, Phaser, Construct 3, Godot 4 y Unity.