◂ GAMEENGINE.LIZTEM.COM ▸ TAREFAS DE PRODUÇÃO
Setup de produção.
Sponsored by Cergio Games
Engine e estilo decididos: Unreal 5.8 + low-poly pintado. Esta página é a lista do que falta pra primeira linha de código existir — o que já preparei, o que depende de você, e (a parte curta) o que eu preciso que você me passe. A infraestrutura de servidor está pronta e ensaiada: veja gameserver.liztem.com/tasks.
Read HANDOFF.md and set up the project. Dentro vão HANDOFF.md (briefing completo: decisões travadas, arquitetura das três máquinas, as 5 tarefas em ordem, elenco de classes, convenções, packs Synty, comandos de build e deploy), TOOLING.md (plugin oficial da Epic pro Claude Code, clangd, skills de UE — com as pegadinhas), CLAUDE.md (memória permanente do projeto), PROGRESS.md, .gitattributes, .gitignore e a skill monster-pipeline.
AVULSOS: HANDOFF.md · TOOLING.md · CLAUDE.md · PROGRESS.md · .gitattributes · .gitignore
Onde cada coisa vai morar
Isto define quase todas as tarefas abaixo, então vale trinta segundos de leitura. O editor da Unreal precisa de placa de vídeo — ele roda no seu PC, não na máquina da AWS (que é headless). A máquina de dev continua cuidando de infraestrutura, sites e servidores. O jogo compilado para Linux roda em São Paulo.
Já preparei (servidor pronto pra receber o jogo)
Feito hoje via SSM, sem abrir nenhuma porta nova.
Na máquina de São Paulo: bibliotecas que o servidor Linux da Unreal precisa (libicu, libssl, SDL2, libc++, pulse), além de sqlite3, unzip e curl. Confirmado: glibc 2.39 (ok pra UE5), SQLite 3.45, Python 3.12.
/srv/game/saves/progresso.db em modo WAL, com a tabela de jogadores (id, nome, classe, nível, xp). É o começo da persistência — o servidor é a autoridade, nunca o cliente.
Instalei /srv/game/bin/deploy-server.sh: ele baixa a build do S3, troca a versão (guardando a anterior pra rollback), acha o binário do servidor e reinicia o serviço. Também criei o serviço game-unreal.service, que substitui o eco UDP quando a primeira build chegar. O papel IAM da instância agora lê s3://gameserver-liztem-builds/server/ e nada mais.
Quatro arquivos prontos pra entrar no projeto Unreal no dia que ele nascer: CLAUDE.md (memória permanente do projeto), .gitattributes (Git LFS pros binários da Unreal) e .gitignore.
E o principal: HANDOFF.md — o briefing completo pro Claude do seu PC Windows. Baixa esse arquivo, põe na pasta onde o projeto vai morar, abre o Claude Code lá e diz "Read HANDOFF.md and set up the project". Ele contém tudo: decisões travadas, arquitetura das três máquinas, as 5 primeiras tarefas em ordem, o elenco de classes, convenções de código, quais packs Synty baixar, comandos de build e deploy, e o que não fazer. Meses de pesquisa em uma página — o Claude de lá começa sabendo de tudo.
Blender 4.0.2 rodando headless com a API Python (limpeza de malha em lote na esteira de monstros), assimp (conversão entre formatos 3D), ImageMagick, jq, e as libs Python trimesh, pygltflib e numpy no venv. Git LFS também instalado aqui, pra eu conseguir ler o repositório do jogo.
Suas tarefas, Willy
Em ordem. As três primeiras destravam o spike técnico; o resto pode vir depois.
Em syntystore.com/products/syntypass. Duas opções: US$ 40/mês (mínimo 3 meses pré-pagos) ou US$ 30/mês no anual (12 meses pré-pagos, 25% de desconto). Como o projeto é de meses e a biblioteca inteira entra junto, o anual se paga; mas é decisão sua de fluxo de caixa. Dá 5 assentos e US$ 10/mês de crédito pra comprar licenças perpétuas dos packs que a gente quiser guardar depois de cancelar.
T0 — o único bloqueio real hoje. O esqueleto do projeto já existe, está em
C:\Dev\NewGame e no GitHub privado, mas nunca passou pelo compilador: não há engine nem
compilador C++ na máquina. Enquanto os passos abaixo não estiverem feitos, nada compila e a T1 não pode ser
aceita. Cada passo tem como conferir se deu certo — faça a conferência, porque duas dessas falhas são
silenciosas.
Versões conferidas nas tabelas oficiais da Epic em 03/08/2026, e todos os links testados.
Mudança em relação ao que estava aqui antes. Este board e o HANDOFF diziam "Visual Studio 2022". A tabela de compatibilidade da Epic para a 5.8 diz outra coisa: VS 2019 não suportado, VS 2022 a partir do 17.14, e VS 2026 a partir do 18.0 — com a recomendação explícita da Epic: "Use Visual Studio 2026 for general development. Use Visual Studio 2022 for Nintendo development and AGDE below v26.1.102." Nosso projeto é PC/Windows puro, sem Nintendo e sem Android. Então: 2026.
A ordem importa: instale o Visual Studio antes da Unreal, porque a Epic procura o compilador durante a instalação dela.
Baixe em visualstudio.microsoft.com/vs/community, ou pelo PowerShell (hoje o winget entrega a 18.8.2, acima do mínimo):
winget install --id Microsoft.VisualStudio.Community -e
Na tela do instalador, marque as três cargas de trabalho:
- Game development with C++
- Desktop development with C++
- .NET desktop development
E na aba Individual components, estes quatro (são os que a Epic pede por nome):
C++ profiling toolsC++ AddressSanitizerWindows 11 SDK— 10.0.26100 ou mais novoUnreal Engine installer
Conferir: abra o Developer Command Prompt for VS 2026 pelo menu Iniciar e digite cl.
Tem que imprimir a versão do compilador. Se disser que o comando não existe, a carga de C++ não entrou.
Baixe o launcher em store.epicgames.com/download, entre com a conta Epic, vá na aba Unreal Engine → Library, clique no + e escolha a 5.8.
Antes de confirmar, abra Options:
- Target Platforms → Linux — marque. É o que permite gerar o servidor de São Paulo. Adicionar depois vira trabalho manual de casar versões.
- Starter Content — opcional, é pequeno, pode deixar.
- Editor symbols for debugging — deixe desmarcado. São dezenas de GB e só servem pra depurar a engine em si, não o nosso jogo.
Reserve ~120 GB livres no total (engine + Visual Studio + toolchain + projeto). Hoje há 601 GB livres na máquina, então sobra.
Conferir: este caminho tem que existir —
C:\Program Files\Epic Games\UE_5.8\Engine\Binaries\Win64\UnrealEditor.exe
Marcar "Linux" no passo anterior não basta: a Epic distribui o clang de cross-compile como um instalador separado. Sem ele o alvo Linux simplesmente não aparece nas configurações de build — e não dá erro nenhum, só some.
A versão é travada por versão de engine. Pela tabela oficial da Epic, 5.7–5.8 usa o v26 (clang-20.1.8) — a 5.6 usa v25, a 5.5 usa v23. Não dá pra reaproveitar de outra versão.
Baixe (testado hoje: responde, tem ~967 MB): v26_clang-20.1.8-rockylinux8.exe — tabela completa em Linux Development Requirements. Rode o instalador e aceite o caminho padrão.
Conferir — e este é o que economiza uma noite. O instalador cria uma variável de ambiente, e
terminais já abertos não enxergam. Abra um terminal NOVO e rode, no cmd:
echo %LINUX_MULTIARCH_ROOT%
Tem que responder algo como C:\UnrealToolchains\v26_clang-20.1.8-rockylinux8\.
Se vier vazio, pare e me avise — vazio significa que o empacotamento do servidor Linux vai falhar lá na
frente, no pior momento possível.
Em fab.com, mesma conta Epic. É só clicar em "Add to My Library", não custa nada: Game Animation Sample (500+ animações AAA com motion matching), Paragon (personagens) e Infinity Blade (props medievais).
Abra um Git Bash novo e cole:
ls "/c/Program Files/Microsoft Visual Studio/2026" && echo "VS OK"
ls "/c/Program Files/Epic Games/UE_5.8/Engine/Binaries/Win64/UnrealEditor.exe" && echo "UE OK"
[ -n "$LINUX_MULTIARCH_ROOT" ] && echo "TOOLCHAIN OK: $LINUX_MULTIARCH_ROOT"
Três OK e o T0 está fechado. Aí é só abrir o Claude Code em C:\Dev\NewGame e dizer
"T0 está pronto, compila o T1". A partir daí ele segue sozinho: primeira build (que é a aceitação da
T1), conversão dos dois packs antigos pra 5.8, plugins de MCP da Epic e o compile_commands.json
do clangd.
Git 2.55 e Git LFS 3.7.1 instalados, com git lfs install já rodado. Claude Code rodando,
com o plugin oficial da Epic e o clangd-lsp instalados.
Entraram junto, pra esteira de monstros e concept art: LLVM/clangd 22.1.8, Blender 4.5.10 LTS
(testado headless) e as libs google-genai + pillow no Python 3.12.
Todos baixados, extraídos em C:\Dev\Assets\Synty\ (9,1 GB, 25.412 .uasset) e
espelhados no S3 privado em gameserver-liztem-assets/synty/ — 33 objetos, 6,1 GB, conferidos um a
um por tamanho em bytes. Os assets não entram no git: a cota grátis de LFS do GitHub é 1 GiB, e só a
primeira leva já estourava. O S3 é o plano de armazenamento; o repositório fica só com texto.
Duas coisas que apareceram na conferência: o Meadow Forest é pack de 4.25 e o Modular Fantasy Hero é de 4.22 — os dois estão no caminho crítico da T3 e da T4, e converter da 4.22 pra 5.8 é um salto de quatro versões. A conversão está agendada pra logo depois da primeira build, não pra véspera das screenshots.
E o INTERFACE Dark Fantasy HUD + Menus não tem versão Unreal — só PNG e SourceSprites. Isso é normal:
pack de UI é 2D, não tem malha nem material pra empacotar. Mas o INTERFACE Fantasy Warrior HUD tem, com
2.213 .uasset de widgets, materiais e Niagara prontos. O caminho provável é montar a UI em cima
dele (5.3 → 5.8, a conversão mais suave do lote) e retexturizar com a arte Dark Fantasy.
Referência da lista original abaixo — a variante Unreal continua sendo a certa pros packs POLYGON e SIDEKICK; a regra só não vale pros INTERFACE, que são 2D.
| PACK | PRA QUÊ | LEVA |
|---|---|---|
| Unreal Plugin | o importador da Synty — antes de qualquer pack | 1ª |
| POLYGON Fantasy Kingdom | a espinha: castelo e casas modulares com interiores, 22 personagens, armas de cerco | 1ª |
| POLYGON Meadow Forest — Nature Biome | a clareira do teste visual (T3) | 1ª |
| POLYGON Modular Fantasy Hero Characters | corpos-base das 10 classes | 1ª |
| POLYGON Fantasy Village | a taverna/hub do grupo | 2ª |
| POLYGON Fantasy Rivals | os 20 monstros grandes + o "big rig" de chefe | 2ª |
| POLYGON Dungeon Realms | masmorras modulares (1.118 peças) | 2ª |
| Sidekick Character Creator + packs (Knights, Villagers, Skeletons, Goblin Fighters) | classes e hordas modulares — variedade infinita | 2ª |
| INTERFACE Dark Fantasy HUD + Menus | toda a interface | 3ª |
| Enchanted Forest · Alpine Mountain · Swamp Marshland | demais biomas de expedição | 3ª |
| Dark Fantasy · Goblin War Camp · Elven Realm · Viking Realm | arena de chefe (catedral) e sabor de facção | 3ª |
| Dog Pack · Bow and Crossbow · Adventure Pack · Explorer Kit · Frog Shrine | pet do Beastwarden, armas do Huntsman/Arbalest, props de acampamento e um santuário pronto | 3ª |
Prompt pronto pro Claude do Chrome
Se preferir que a extensão do Claude baixe por você: copie o bloco abaixo e cole na conversa com a aba da Synty aberta e logada. Ele já traz as três levas na ordem, a regra de sempre pegar a variante Unreal, e a lista do que não baixar.
You are operating my browser. I am logged into my Synty Store account (syntystore.com) with an active SyntyPass subscription, which gives access to the entire library. TASK: download the asset packs listed below from my SyntyPass library, always choosing the Unreal download variant. RULES 1. Each pack offers several download variants (Unity, Unreal, Godot, SourceFiles). Always choose UNREAL. If several Unreal versions exist, take the newest 5.x. Never download the Unity, Godot or SourceFiles variants. 2. Follow the batch order. Finish BATCH 1 and report before starting BATCH 2. 3. If a pack name does not match exactly, search the library, pick the closest match, and tell me what you chose instead of guessing silently. 4. If a download fails or an Unreal variant is missing, note it and move on to the next pack. Do not abort the whole run. 5. At the end, report: what downloaded, what failed or was missing, and roughly how much was downloaded. 6. Download nothing that is not on these lists. BATCH 1 (download now) - Unreal Plugin <- do this one first, it is the Synty importer for Unreal - POLYGON - Fantasy Kingdom Pack - POLYGON - Meadow Forest - Nature Biome - POLYGON - Modular Fantasy Hero Characters BATCH 2 (after batch 1) - POLYGON - Fantasy Village - POLYGON - Fantasy Rivals Pack - POLYGON - Dungeon Realms - Sidekick Character Creator - Fantasy Knights - Sidekick Modular Characters - Fantasy Villagers - Sidekick Modular Characters - Fantasy Skeletons - Sidekick Modular Characters - Goblin Fighters - Sidekick Modular Characters BATCH 3 (last) - INTERFACE - Dark Fantasy HUD - INTERFACE - Dark Fantasy Menus - POLYGON - Enchanted Forest - Nature Biome - POLYGON - Alpine Mountain - Nature Biome - POLYGON - Swamp Marshland - Nature Biome - POLYGON - Dark Fantasy - POLYGON - Goblin War Camp - POLYGON - Elven Realm - POLYGON - Viking Realm - POLYGON - Dog Pack - POLYGON - Bow and Crossbow - POLYGON - Adventure Pack - POLYGON - Explorer Kit - POLYGON - Frog Shrine DO NOT DOWNLOAD anything modern, sci-fi or seasonal (City, Apocalypse, Battle Royale, Casino, Gang Warfare, Construction, Coffee Shop, Ancient Egypt, Gingerbread, Easter, Bubblegum, Farm Pack, Sci-Fi packs, Zombies packs). They are included in the subscription but we do not want them: they waste disk space and clutter the project.
Pule sem dó tudo que for moderno, sci-fi ou sazonal: City, Apocalypse, Battle Royale, Casino, Gang Warfare, Construction, Coffee Shop, Ancient Egypt, Gingerbread, Easter, Bubblegum, Farm Pack. Vêm de graça com a assinatura, mas ocupam disco, entopem o content browser — e misturar épocas é exatamente como um jogo passa a ter cara de depósito de assets.
Era tarefa separada; virou um checkbox dentro da P2. O jeito certo é marcar Linux em Target Platforms durante a instalação da engine — o clang certo vem junto, casado com a 5.8.
GAS Companion (US$ 24,99) e Combo Graph (US$ 49,99), ambos do mesmo autor, na Fab. Antes de comprar o Combo Graph, confirme na página que existe build pra 5.8 (a doc dele listava 5.6 na última checagem). Não são urgentes: só quando eu chegar na camada de combate.
Só quando a gente for criar monstros próprios (~US$ 40/mês somados). Aí sim vou precisar das chaves de API — e elas vão pro SSM criptografado, igual à chave do Gemini. Não me mande por chat.
O que eu preciso que você me passe
A resposta curta é: quase nada — e isso é de propósito.
| SERVIÇO | PRECISO DE ACESSO? | POR QUÊ |
|---|---|---|
| Synty | Não | Você baixa logado no navegador; os arquivos ficam no seu PC, onde o projeto vive. Sua senha da loja não precisa existir em lugar nenhum além da sua cabeça. |
| Epic / Unreal / Fab | Não | Instalação e "reivindicar grátis" são cliques seus. Eu trabalho no projeto já instalado. |
| GitHub | Já tenho | Esta máquina já está autenticada na sua conta (willylazari) — a mesma que sincroniza o second-brain. Quando quiser, crio o repositório privado do jogo em um comando. |
| AWS | Já tenho | A política gameserver-ops que você anexou. Servidor, S3 e alarmes rodam por ela. |
| Tripo / Meshy | Depois | Só na fase de monstros. Chaves de API vão pro SSM criptografado (nunca por chat, nunca em arquivo do projeto). |
Construção do jogo — tarefas T
Executadas pelo Claude do PC Windows (é lá que a engine e o projeto vivem). Status reportado por ele; esta página espelha.
Bloqueia todo o resto. São instaladores logados na sua conta, então são seus: Epic Games Launcher → UE 5.8 com Linux marcado em Target Platforms (traz junto o clang de cross-compile da Epic — deixar pra depois vira dor de casar versões) e Visual Studio 2022 com as cargas Game development with C++ e .NET desktop development. Sem o VS não existe compilador C++ no Windows.
Depois: toolchain de cross-compile v26 (clang-20.1.8) — cdn.unrealengine.com/CrossToolchain_Linux/v26_clang-20.1.8-rockylinux8.exe — e então echo %LINUX_MULTIARCH_ROOT%, que não pode voltar vazio (se voltar, o alvo Linux some silenciosamente das configurações de build).
Três autorizações pequenas esperando você (o Claude do PC pediu em vez de fazer, e está certo): py -m pip install google-genai pillow (instalação global — precisa pro concept-art), winget install LLVM.LLVM (idem, pro clangd), e instalar o Blender 4.5 LTS pra trabalho de malha. Sem a chave do Gemini no ambiente, a geração de conceito continua rodando aqui na AWS.
E os dois plugins, que são comandos de barra e portanto seus pra digitar: /plugin install unreal-engine-skills-for-claude-code@claude-plugins-official e /plugin install clangd-lsp@claude-plugins-official. O winget install LLVM.LLVM é instalação global — o Claude do PC não faz sem você pedir, e está certo em não fazer.
Esqueleto commitado — projeto C++, os três targets (incluindo o NovoJogoServer.Target.cs que faltava no meu handoff), plugins GAS/EnhancedInput/ModularGameplay, Git LFS e os arquivos de projeto. Aceite pendente da primeira compilação limpa, que só roda depois da T0.
Repositório no ar: github.com/willylazari/newgame (privado) — 23 arquivos, commit e11e7b1. Conferi por aqui: varredura de credenciais limpa, os três targets no lugar (com o NewGameServer.Target.cs), LFS configurado, e o .uproject corretamente sem os plugins de MCP ainda. Agora eu consigo ler o projeto direto — é assim que eu reviso o trabalho do PC.
Ferramentas de agente instaladas no PC: o plugin oficial da Epic (unreal-mcp, create-toolset, unreal-skill) e o clangd-lsp. Ficam inertes até o editor rodar, porque falam com o servidor MCP interno da engine.
Decisão ratificada: os plugins de MCP (ModelContextProtocol + AllToolsets) não entram no .uproject agora. Entram depois que o editor abrir e a lista real de plugins puder ser conferida. Motivo, e está certo: a primeira compilação limpa é justamente o teste de aceite da T1 — declarar plugin que a engine instalada talvez não tenha com aquele nome exato transforma um resultado de compilação numa caixa de diálogo.
ASC no PlayerState (padrão Lyra), um AttributeSet, e as 10 DataAssets de classe criadas já nomeadas — o elenco visível no repositório desde o começo. GameplayTags no .ini, nunca inventadas no código.
A mesma cena Synty renderizada em dois acabamentos (PBR suave × rampa toon), mesma câmera e mesma luz, pro grupo votar por screenshot no Discord. Mesmos assets nos dois: a escolha não custa retrabalho.
O spike de rede de verdade, com as duas câmeras alternáveis — resolve a última decisão de design em aberto. É quando o eco UDP se aposenta. Confere também se os ~200 ms do Willy desde Barcelona são aceitáveis na prática.
Uma missão curta com uma Bênção, uma Maldição e um chefe vagabundo pra dez marmanjos apanharem.
NovoJogoServer.Target.cs, sem o qual o empacotamento do servidor dedicado não tem o que compilar; (2) a seção de downloads dava a entender que /tpl/ era navegável — ela retorna 404 de propósito, porque nada aqui é listável anonimamente; (3) o .gitattributes não cobria psd, tif, exr, jpg, mp3, que entrariam como blobs crus no primeiro import da Synty. Também confirmou, com razão, deixar o Substrate desligado por padrão. Baixe o HANDOFF.md de novo se já tinha pego a versão anterior.