Pular para o conteúdo principal

FAQ


Build e Instalação​

O CMake não encontra GLEW ou Lua​

Instale via MSYS2:

pacman -S mingw-w64-x86_64-glew mingw-w64-x86_64-lua

Certifique-se que C:\msys64\mingw64\bin está no PATH antes do C:\Program Files\Git\usr\bin.

O FetchContent trava na primeira configuração​

Requer acesso à internet. Em redes com proxy:

set HTTPS_PROXY=http://seu-proxy:porta
cmake --preset debug

Após baixar uma vez, os arquivos são cacheados em build/debug/_deps/.

O build falha com erro de dlltool.exe​

Adicione C:\msys64\mingw64\bin ao PATH antes do Git. Alternativamente, migre para a toolchain MSVC:

rustup target add x86_64-pc-windows-msvc

Lua e Scripting​

Renderer.draw_text não renderiza nada​

O draw_text funciona via stb_truetype. Certifique-se de que uma fonte existe em:

  • assets/default.ttf (na pasta do projeto)
  • C:/Windows/Fonts/arial.ttf
  • C:/Windows/Fonts/consola.ttf

Sem fonte disponível, o fallback renderiza retângulos coloridos em vez de texto.

Physics.raycast sempre retorna hit=false​

O sistema de física de corpos rígidos (Jolt) é um stub. Para colisões 2D, use:

local hit = Physics.overlap(x1, y1, w1, h1, x2, y2, w2, h2)

O modo Play do editor não executa meus scripts​

O modo Play do editor é um stub de simulação. Para executar scripts Lua de verdade, use:

guebly_runtime.exe meu_jogo/main.lua

Entity.create vs World.create — qual usar?​

Sempre use World.create. Entity.create retorna dois inteiros (index, gen) e é a API de baixo nível. World.create retorna um único inteiro e é a API moderna com acesso completo a Transform, tags e hierarquia.

Como salvar dados do jogo?​

Use SaveSystem:

-- Salvar
SaveSystem.save("progresso.json", { pontos = 1500, fase = 3 })

-- Carregar
local dados = SaveSystem.load("progresso.json")
if dados then
pontos = dados.pontos
end

Os arquivos são salvos no diretório de trabalho do runtime (pasta do jogo).


Performance​

Meu jogo está lento​

  • Reduza o número de draw calls — use sprites em batch em vez de texturas separadas
  • Desabilite physics_enabled no project.json se não usar física
  • Use Time.set_scale(0) para pausar sem custo de lógica

Quantos sprites posso desenhar por frame?​

O batch de Renderer2D suporta até 10.000 quads por batch com até 32 texturas diferentes simultâneas. Para jogos 2D típicos, isso é mais que suficiente.


Store e Publicação​

Como obter um token de desenvolvedor?​

Acesse dev.games.guebly.com.br, crie uma conta DEVELOPER e gere um token em Configurações → Tokens de API.

Meu jogo publicado não aparece na store​

Jogos recém-publicados passam por revisão do admin. Aguarde aprovação em admin.games.guebly.com.br.

O export_game.py diz "runtime não encontrado"​

Compile primeiro:

cmake --preset release
cmake --build --preset release

O executável estará em build/release/runtime/guebly_runtime.exe.


Plataformas​

O engine roda no Linux/macOS?​

O código-fonte usa SDL2/OpenGL que são cross-platform. Porém, os instaladores e scripts .bat são Windows-only. Build manual no Linux/macOS requer adaptações no CMakeLists.txt para localização de dependências.

Posso exportar para Web (WebAssembly)?​

Não na versão 1.0.0. O pipeline de exportação atual gera apenas executáveis Windows nativos. Suporte a Emscripten está planejado para versões futuras.