Configurando um servidor de World of Warcraft Wrath of the Lich King
Eu passei dois anos mantendo um servidor privado de WotLK rodando com uns dez jogadores fixos. O processo começou com TrinityCore e terminou com problemas de performance que ninguém te conta nos tutoriais do YouTube. Vou explicar como as coisas realmente funcionam, sem filtro.
warcraft wrath of lich king - o que você precisa saber antes de começar
O primeiro erro que todo mundo comete é baixar o repositório do TrinityCore e tentar compilar sem ler o arquivo README inteiro. O repositório principal não inclui o código do WotLK por padrão. Você precisa especificar o ramo correto ou fazer merge manual das mudanças. Eu perdi três dias tentando rodar uma build que simplesmente não carregava os mapas. A versão que funciona para WotLK é a branch 3.3.5a. Sem ela, você vai ter problemas com spells que não existem no código, mobs que não spawnam, e NPCs que ficam mudos porque o script deles foi removido ou nunca foi escrito. A comunidade AzerothCore também mantém uma branch 3.3.5a que é mais estável em alguns aspectos, especialmente no sistema de spell scripts. Eu migrei para lá depois de resolver um bug onde o Lich King não aplicava o efeito de dano correto durante a fase 2 do Sartharion.
O cliente do jogo precisa ser exatamente a build 12340. Qualquer versão diferente vai causar disconnects aleatórios, problemas de pathing, e em alguns casos o servidor simplesmente não reconhece os packets do cliente. Baixe o patch 3.3.5a oficial da Blizzard se conseguir, ou encontre o instalador completo que já vem com essa build específica. Versões 4.x ou 2.x vão quebrar a compatibilidade com o TrinityCore 3.3.5a de formas difíceis de diagnosticar.
Compilação e primeiros passos
Use CMake 3.10 ou superior. Versões mais antigas falham silenciosamente em configurações de find_package que o compilador precisa. Instale o MySQL Server 5.5 ou 5.6, não o MariaDB. O MariaDB funciona na maioria dos casos, mas há edge cases com stored procedures do WoW que usam sintaxe MySQL específica e dão erro de syntax nos logs. O processo de compilação leva entre 20 e 45 minutos em uma máquina com 8 núcleos e SSD. Use o comando -DCMAKE_BUILD_TYPE=RelWithDebInfo. Build tipo Release remove debugging que você vai precisar quando algo quebrar. Build tipo Debug deixa o servidor 30% mais lento e gera logs enormes que enchem o disco em poucas horas.
Depois de compilar, execute os bancos de dados na ordem exata: first realmd.sql, depois world.sql, e os patches individualmente. Cada patch tem dependências. Se você pular um patch de database, scripts de quest vão falhar e mobs não vão dropar itens. O patch World_3.3.5a_db_database.sql é obrigatório para ter os dados básicos do expansion.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Problemas que ninguém menciona
O sistema de pathfinding do WotLK é um dos pontos mais frágeis do TrinityCore. Mobs em Icecrown Glacier e no Forge of Souls às vezes entram em loop de pathing porque o mapa de navegação tem falhas de grid. A solução temporária é usar o comando .modify npc pathing 1 no gm, mas isso não resolve o problema raiz. Eu tive que escrever um script customizado que detectava mobs presos e os teleportava 2 yards para frente automaticamente. Funcionou para 80% dos casos, mas mobs de algumas raids ainda precisavam de ajuste manual. O sistema de guilds e chat cross-realm tem um bug conhecido onde jogadores de realms diferentes aparecem na mesma guild mas não conseguem enviar mensagens. A workarround é resetar a tabela guilds na database e reconectar os membros. Isso acontece porque o código de cross-realm guilds do 3.3.5a não foi totalmente implementado no TrinityCore. O AzerothCore resolveu isso parcialmente na branch 3.3.5, então vale considerar migrar se cross-realm for essencial para o seu servidor.
Performance com 50 jogadores online em Northrend pode cair para 20fps no servidor se você não ajustar o config.conf corretamente. Os valores padrão são otimizados para development, não para produção. Mudar GameServerInstanceSize para 100 e WorldServerInstanceSize para 50 resolve boa parte do problema. ThreadCount deve ser igual ao número de núcleos físicos menos um, não o total de threads do processador.
O que funciona na prática
Para ter o Lich King funcionando corretamente, o script ICEDefiler.cpp precisa ser patcheado com a versão correta do combate em fases. A versão upstream tem um bug onde o Lich King não invoca os add spawns na fase 3. A correção está no pull request #14823 do TrinityCore, mas ainda não foi merged na branch principal. Você precisa aplicar o patch manualmente ou usar uma build com o fix aplicado. Quests de Wrathion e o início da expansão Falretribution têm problemas de reward distribution. O item 40232 (Crest of Ulduar) não dropa nos mobs corretos porque a table de drop está configurada para a versão Wrath original mas o spawn dos mobs foi ajustado para um balanceamento diferente. A workarround é modificar a tabela creature_loot_template diretamente no banco de dados.
O sistema de achievement relacionada a raids tem bugs de tracking em servidores privados. Alguns achievements de Ulduar não contam progressão correta porque o código de achievement criteria não foi completamente portado do WoW 3.3.5a. Players podem completar a raid inteira e não receber o achievement. Não existe correção definitiva além de verificar manualmente e adicionar via comando .learn achievement ou modificar a tabela character_achievement.
Limitações reais
Um servidor WotLK completo com todas as raids funcionando 100% não existe no estado atual de Open Source. O TrinityCore e AzerothCore cobrem talvez 85% das funcionalidades. Raids como Ulduar, trial of the crusader, e Icecrown Citadel têm mecânicas que funcionam de forma diferente do live. Sartharion 3 wings, Forlorn Wraith, e alguns buff de Veezara precisam de configuração manual ou não existem. Manter um servidor WotLK ativo exige pelo menos 2 horas diárias de manutenção para 50 jogadores. Bugs aparecem semanalmente, scripts de raid quebram após atualizações, e a database precisa de patches constantes para corrigir problemas de quests e drop. Se você não tiver disposição para dedicar tempo weekly, o servidor vai degenerar em poucos meses com quests incompletas e raids impossíveis.
Hardware mínimo recomendado: 16GB RAM, processador com 8 threads, SSD NVMe para os mapas, e banda larga simétrica de pelo menos 100Mbps. Servidores rodando em VPS barato com 4GB RAM e processador de 2 cores vão travar frequentemente durante encounters de raid com múltiplos mobs e efeitos de spell simultâneos. O custo de hosting profissional varia entre 50 e 150 reais mensais para uma configuração estável. A comunidade brasileira de WotLK é pequena. A maioria dos servidores privados ativos roda com 10 a 30 jogadores concurrentes. Encontrar outros para jogar em grupo é difícil fora de Discord e fóruns específicos. O conteúdo de endgame se esgota rapidamente sem atualização manual de events e drops. Planeje-se para investir tempo criando conteúdo customizado ou aceitar que o servidor vai ter vida útil limitada.