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.ttfC:/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_enablednoproject.jsonse 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.