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

Motores

Lo que funciona tal cual, lo que necesita un ajuste y lo que la v1 no admite.

Cualquier motor que exporte un build web de una sola página, sin hilos, funciona. Las restricciones vienen del frame: un documento de principio a fin, ningún aislamiento de origen cruzado y la pantalla completa a través del SDK.

MotorEn la v1
PhaserFunciona tal cual.
Construct 3Funciona tal cual.
HTML y JavaScript puros, ViteFunciona tal cual.
Godot 4.3 o posteriorExportado sin hilos.
UnityWebGL de un solo hilo, con la pantalla completa a través del SDK.
Builds con hilos (SharedArrayBuffer)No se admiten.
Juegos de varias páginasNo se admiten.

Sin un bundler

Copia dist/uloggd-arcade.min.js del paquete junto a la página HTML del motor, sírvelo con el juego (consulta Sin un bundler en la referencia del SDK) y cárgalo antes del motor:

<script src="./uloggd-arcade.min.js"></script>
<script>
  window.uloggdArcade = UloggdArcade.createArcadeSDK({
    appId: "ID_DE_TU_APLICACION",
  });
  window.uloggdArcade.ready().catch(() => {});
</script>

UloggdArcade es el SDK; window.uloggdArcade es la conexión de tu juego, que llaman las secciones de abajo. Los dos son scripts clásicos y se ejecutan en orden: ponlos antes del cargador del motor, y la conexión existe cuando el motor arranca.

Vite y JavaScript puro

El inicio rápido usa un proyecto Vite. Si un build se sirve desde una ruta y no desde la raíz del origen (consulta las URLs de despliegue inmutables), pon el base de Vite en "./" para que los archivos se encuentren junto a la página. El archivo de prueba debe seguir en la raíz del origen.

Phaser

El this.scale.startFullscreen() del propio Phaser pide pantalla completa al navegador dentro del frame, y se le niega. Llama al SDK desde un manejador de entrada:

this.input.keyboard?.on("keydown-F", () => {
  arcade.commands.requestFullscreen().catch(() => {});
});

El modo de escala RESIZE sigue el tamaño del frame; LAYOUT_UPDATE además te da el área segura.

Construct 3

Exporta con Web (HTML5). Carga el SDK como arriba y llama a window.uloggdArcade desde los scripts JavaScript de Construct. La petición de pantalla completa del objeto Browser se niega dentro del frame: llévala a requestFullscreen.

Godot 4

Godot 4.3 y posteriores exportan para la web sin hilos.

  • En el preset de exportación Web, desactiva Thread Support. Una exportación con hilos necesita aislamiento de origen cruzado, que el reproductor de uloggd no ofrece.
  • Deja Progressive Web App desactivado. Su service worker existe para simular el aislamiento de origen cruzado, y guardaría tu build en el almacenamiento de uloggd.
  • Carga el SDK en un shell HTML propio, como arriba, y llámalo desde GDScript con JavaScriptBridge. Lleva la pantalla completa al SDK en lugar de DisplayServer.window_set_mode:
func request_fullscreen() -> void:
    JavaScriptBridge.eval("window.uloggdArcade && window.uloggdArcade.commands.requestFullscreen()")

Unity

  • Compila para la plataforma Web (WebGL) sin multihilo.
  • Screen.fullScreen pide pantalla completa al navegador dentro del frame, y se le niega. Llama al SDK con un plugin .jslib, con el SDK cargado como window.uloggdArcade en tu plantilla WebGL:
// Assets/Plugins/WebGL/UloggdArcade.jslib
mergeInto(LibraryManager.library, {
  UloggdRequestFullscreen: function () {
    if (window.uloggdArcade) window.uloggdArcade.commands.requestFullscreen();
  },
});
using System.Runtime.InteropServices;

public static class UloggdArcade
{
    [DllImport("__Internal")]
    public static extern void UloggdRequestFullscreen();
}
  • Un build comprimido necesita que sus archivos .br o .gz se sirvan con el Content-Encoding correspondiente, o que Decompression Fallback esté activado.

Fuera de la v1

  • Hilos y SharedArrayBuffer. Necesitan aislamiento de origen cruzado en la página de uloggd, que la v1 no ofrece.
  • Juegos de varias páginas, recargas y redirecciones. Cualquier navegación del frame termina la partida.
  • Ventanas emergentes, pestañas nuevas, descargas, alert y confirm.
  • Abrir enlaces. Previsto para una versión futura del SDK.
  • Cámara, micrófono, geolocalización, pagos y WebAuthn.
  • Bloquear la orientación de la pantalla. Declara en el lanzamiento la orientación que necesita el juego.

Deberes de privacidad

Quién responde por qué, qué debe decir la página de la tienda y qué te piden los términos de desarrollador de Arcade.

En esta página

Sin un bundlerVite y JavaScript puroPhaserConstruct 3Godot 4UnityFuera de la v1