uloggdDesenvolvedores
Portal do desenvolvedoruloggd
ComeçarRecursosArcade
Portal do desenvolvedoruloggdArcadeHospedagemO frameSDKIdentidadeVerificação em outras linguagensEventos de dadosTestesPolítica de revisãoDeveres de privacidadeEngines

Engines

O que funciona como está, o que precisa de um ajuste e o que a v1 não suporta.

Qualquer engine que exporte um build web de página única, sem threads, funciona. As restrições vêm do frame: um documento do começo ao fim, nenhum isolamento de origem cruzada e a tela cheia pelo SDK.

EngineNa v1
PhaserFunciona como está.
Construct 3Funciona como está.
HTML e JavaScript puros, ViteFunciona como está.
Godot 4.3 ou mais novoExportado sem threads.
UnityWebGL de uma thread só, com a tela cheia pelo SDK.
Builds com threads (SharedArrayBuffer)Não suportados.
Jogos de várias páginasNão suportados.

Sem um bundler

Copie dist/uloggd-arcade.min.js do pacote para junto da página HTML da engine, sirva-o com o jogo (veja Sem um bundler na referência do SDK) e carregue-o antes da engine:

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

UloggdArcade é o SDK; window.uloggdArcade é a conexão do seu jogo, que as seções abaixo chamam. Os dois são scripts clássicos e rodam em ordem: coloque-os antes do carregador da engine, e a conexão existe quando a engine começa.

Vite e JavaScript puro

O começo rápido usa um projeto Vite. Se um build é servido de um caminho e não da raiz da origem (veja as URLs de publicação imutáveis), ponha o base do Vite em "./" para os arquivos serem encontrados ao lado da página. O arquivo de prova continua precisando estar na raiz da origem.

Phaser

O this.scale.startFullscreen() do próprio Phaser pede tela cheia ao navegador dentro do frame, o que é negado. Chame o SDK a partir de um tratador de entrada:

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

O modo de escala RESIZE acompanha o tamanho do frame; LAYOUT_UPDATE ainda dá a área segura.

Construct 3

Exporte com Web (HTML5). Carregue o SDK como acima e chame window.uloggdArcade pelos scripts JavaScript do Construct. O pedido de tela cheia do objeto Browser é negado dentro do frame: leve-o para requestFullscreen.

Godot 4

O Godot 4.3 e os mais novos exportam para a web sem threads.

  • No preset de exportação Web, desligue Thread Support. Uma exportação com threads precisa de isolamento de origem cruzada, que o player do uloggd não oferece.
  • Deixe Progressive Web App desligado. O service worker dele existe para simular o isolamento de origem cruzada, e guardaria o seu build no armazenamento do uloggd.
  • Carregue o SDK num shell HTML próprio, como acima, e chame-o do GDScript pelo JavaScriptBridge. Leve a tela cheia para o SDK em vez de DisplayServer.window_set_mode:
func request_fullscreen() -> void:
    JavaScriptBridge.eval("window.uloggdArcade && window.uloggdArcade.commands.requestFullscreen()")

Unity

  • Faça o build para a plataforma Web (WebGL) sem multithreading.
  • Screen.fullScreen pede tela cheia ao navegador dentro do frame, o que é negado. Chame o SDK por um plugin .jslib, com o SDK carregado como window.uloggdArcade no seu template 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();
}
  • Um build comprimido precisa que os arquivos .br ou .gz sejam servidos com o Content-Encoding correspondente, ou que Decompression Fallback esteja ligado.

Fora da v1

  • Threads e SharedArrayBuffer. Precisam de isolamento de origem cruzada na página do uloggd, que a v1 não oferece.
  • Jogos de várias páginas, recarregamentos e redirecionamentos. Qualquer navegação do frame encerra a partida.
  • Popups, abas novas, downloads, alert e confirm.
  • Abrir links. Planejado para uma versão futura do SDK.
  • Câmera, microfone, geolocalização, pagamentos e WebAuthn.
  • Travar a orientação da tela. Declare no lançamento a orientação de que o jogo precisa.

Deveres de privacidade

Quem responde pelo quê, o que a página da loja precisa dizer e o que os termos de desenvolvedor do Arcade pedem de você.

Nesta página

Sem um bundlerVite e JavaScript puroPhaserConstruct 3Godot 4UnityFora da v1