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.
| Motor | En la v1 |
|---|---|
| Phaser | Funciona tal cual. |
| Construct 3 | Funciona tal cual. |
| HTML y JavaScript puros, Vite | Funciona tal cual. |
| Godot 4.3 o posterior | Exportado sin hilos. |
| Unity | WebGL de un solo hilo, con la pantalla completa a través del SDK. |
| Builds con hilos (SharedArrayBuffer) | No se admiten. |
| Juegos de varias páginas | No 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 deDisplayServer.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.fullScreenpide pantalla completa al navegador dentro del frame, y se le niega. Llama al SDK con un plugin.jslib, con el SDK cargado comowindow.uloggdArcadeen 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
.bro.gzse sirvan con elContent-Encodingcorrespondiente, 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,
alertyconfirm. - 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.