GameServer MU Online: Guia Completo de Configuração, Portas, Conexões e Erros
Entenda como funciona o GameServer do MU Online, como configurar portas, ServerCode, conexões com ConnectServer, DataServer e JoinServer, além de diagnosticar os principais erros que impedem jogadores de entrar no servidor.
O GameServer do MU Online é um dos componentes centrais de um servidor privado. É nele que grande parte da lógica do jogo é executada durante a conexão dos jogadores.
Dependendo da source, o GameServer controla ou participa de sistemas como personagens, mapas, monstros, drops, eventos, PvP, skills, resets, quests, itens, experiência e comunicação com outros serviços do MuServer.
Quando o GameServer está configurado incorretamente, podem surgir problemas como sala que aparece e desconecta, GameServer que não conecta no ConnectServer, falha no DataServer, personagem que cai ao entrar, porta indisponível ou servidor offline.
Neste guia do Aprendiz MU Online, você aprenderá como funciona o GameServer, quais configurações devem ser verificadas e como diagnosticar os principais erros.
O que é o GameServer do MU Online?
O GameServer é o serviço responsável por executar grande parte da lógica que mantém o mundo do MU Online funcionando.
É nele que o jogador permanece conectado depois que passa pela etapa inicial de seleção do servidor.
De forma simplificada:
Cliente MU Online
|
v
ConnectServer
|
| jogador escolhe a sala
v
GameServer
|
+------> DataServer
|
+------> JoinServer
|
+------> Outros serviços
|
v
SQL Server
Para que serve o GameServer?
Dependendo da versão e da source, o GameServer pode controlar:
- movimentação dos personagens;
- combate PvP e PvE;
- monstros;
- mapas;
- drops;
- itens;
- skills;
- experiência;
- eventos;
- invasões;
- quests;
- NPCs;
- guilds;
- party;
- duelos;
- comandos;
- sistemas customizados da source.
É por isso que alterações no GameServer podem modificar diretamente o comportamento do jogo.
Como o GameServer se comunica com o restante do MuServer?
Em uma arquitetura tradicional, o GameServer não trabalha sozinho.
ConnectServer
|
v
Cliente --------> GameServer
|
+----------+----------+
| | |
v v v
DataServer JoinServer ExDB
|
v
SQL Server
Cada source pode utilizar serviços diferentes, mas essa estrutura ajuda a compreender por que um erro externo ao GameServer também pode provocar desconexões dentro do jogo.
Onde configurar o GameServer?
A localização depende dos server files.
Uma estrutura comum é:
MuServer
|
+-- GameServer
|
+-- GameServer.exe
+-- Data
+-- Config
+-- Logs
Alguns arquivos encontrados em diferentes projetos incluem:
GameServer.ini
GameServerInfo.dat
GameServerInfo.xml
CommonServer.cfg
ServerInfo.dat
GameServer.dat
Config.ini
O que é ServerCode no GameServer?
O ServerCode é utilizado em muitas implementações para identificar cada GameServer.
Exemplo:
GameServer 1
ServerCode = 0
GameServer 2
ServerCode = 1
Em projetos com vários servidores, podem existir códigos destinados a funções específicas.
Por isso, não altere valores aleatoriamente.
Qual é a porta do GameServer MU Online?
Uma porta muito comum em diversos server files clássicos é:
55901
Porém, assim como a porta 44405 do ConnectServer, 55901 não é uma regra universal.
Você também poderá encontrar:
55901
55902
55903
ou portas personalizadas
Exemplo conceitual
ServerCode = 0
GameServerPort = 55901
O nome real dos parâmetros depende da sua source.
Como verificar se a porta do GameServer está aberta?
Supondo que o GameServer utilize a porta 55901:
netstat -ano | findstr :55901
Se estiver funcionando corretamente, você poderá encontrar:
TCP 0.0.0.0:55901 0.0.0.0:0 LISTENING
Isso indica que uma aplicação está aguardando conexões naquela porta.
GameServer e ConnectServer
A relação entre GameServer e ConnectServer é fundamental para a sala aparecer e funcionar corretamente.
Conceitualmente:
GameServer
|
| ServerCode
| IP
| Porta
v
ConnectServer
|
v
Sala apresentada ao cliente
Quando essa comunicação falha, a sala pode:
- não aparecer;
- aparecer offline;
- aparecer com status incorreto;
- desconectar quando o jogador clica.
GameServer não conecta no ConnectServer
Verifique:
- IP do ConnectServer;
- porta do serviço;
- ServerCode;
- firewall;
- compatibilidade dos executáveis;
- arquivos de configuração.
GameServer e DataServer
O DataServer participa da camada de dados em muitas arquiteturas de MU Online.
Se o GameServer não consegue se comunicar com ele, podem surgir problemas em:
- carregamento de personagens;
- inventário;
- warehouse;
- guild;
- dados persistentes;
- entrada no mundo.
Sala aparece, login funciona e cai ao selecionar personagem
Quando a desconexão acontece nessa etapa, DataServer e database passam a ser fortes candidatos no diagnóstico.
GameServer e JoinServer
Em muitas arquiteturas tradicionais, o JoinServer participa da autenticação das contas e comunicação relacionada à sessão.
Se o JoinServer estiver indisponível, pode ocorrer:
- falha no login;
- desconexão após autenticação;
- GameServer incapaz de validar a conta;
- erros relacionados ao usuário já conectado.
O GameServer conecta diretamente no SQL?
Depende da arquitetura.
Algumas sources fazem determinadas operações diretamente no SQL, enquanto outras concentram a comunicação através do DataServer ou outros serviços.
GameServer e cliente MU Online
Para o cliente conseguir entrar no GameServer, ele precisa receber um IP e uma porta alcançáveis.
Um problema clássico acontece quando o servidor anuncia:
127.0.0.1:55901
para um jogador que está em outro computador.
Para esse jogador:
127.0.0.1 = computador do próprio jogador
Isso pode gerar a conhecida situação:
Sala aparece
|
v
Jogador clica
|
v
Desconecta
IP local, interno e público
| Endereço | Uso |
|---|---|
| 127.0.0.1 | Própria máquina. |
| 192.168.x.x | Rede local típica. |
| IP interno da VPS | Comunicação interna da infraestrutura. |
| IP público | Endereço normalmente acessível pela internet. |
GameServer e Firewall
Quando jogadores externos precisam acessar diretamente a porta do GameServer, o firewall deve permitir essa conexão.
Se o GameServer utiliza:
55901
verifique uma regra compatível para essa porta.
GameServer funciona localmente, mas não externamente
Se o próprio servidor consegue entrar, mas jogadores externos não, verifique:
- IP público;
- firewall;
- porta do GameServer;
- NAT;
- redirecionamento de portas;
- CGNAT;
- IP anunciado pelo ConnectServer.
GameServer fecha sozinho ao abrir
Possíveis causas:
- arquivo de configuração inválido;
- DLL ausente;
- DataServer indisponível;
- JoinServer indisponível;
- porta já em uso;
- database incompatível;
- dependência do Visual C++ ausente;
- erro interno da source.
Como descobrir se outra aplicação usa a porta?
netstat -ano | findstr :55901
Observe o PID e identifique o processo correspondente.
tasklist | findstr 1234
Substitua 1234 pelo PID encontrado.
Principais problemas do GameServer
| Problema | O que verificar |
|---|---|
| GameServer não abre | Configuração, DLLs e dependências. |
| GameServer fecha sozinho | Logs, serviços e database. |
| Sala não aparece | ConnectServer, ServerCode e registro. |
| Sala aparece e desconecta | IP, porta e firewall do GameServer. |
| Não conecta no DataServer | IP, porta e serviço DataServer. |
| Não conecta no JoinServer | IP, porta e configuração. |
| Port already in use | Outro processo utilizando a porta. |
| Invalid Column Name | Database incompatível com a source. |
| Stored Procedure não encontrada | Scripts SQL incompletos. |
GameServer conecta, mas dá Invalid Column Name
Esse erro normalmente significa que a aplicação já conseguiu acessar a database ou executar uma consulta, porém encontrou uma estrutura diferente daquela esperada.
Exemplo:
Invalid column name 'ResetCount'
Possíveis causas:
- database de outra source;
- script SQL não executado;
- GameServer de versão diferente;
- customização que depende de coluna adicional.
GameServer mostra Stored Procedure não encontrada
Uma mensagem semelhante a:
Could not find stored procedure
normalmente indica que a aplicação conseguiu acessar o SQL, mas uma procedure obrigatória não foi encontrada.
Procure scripts SQL fornecidos com os server files.
Sala aparece e desconecta ao clicar
Esse é um dos problemas mais importantes relacionados ao GameServer.
Se a sala aparece, o ConnectServer provavelmente já está acessível.
Verifique então:
- GameServer aberto;
- porta do GameServer;
- IP anunciado;
- firewall;
- ServerCode;
- ServerList;
- NAT e CGNAT.
Jogador entra no login, mas desconecta depois
O ponto exato da desconexão ajuda a identificar a causa.
| Etapa | Principal área para investigar |
|---|---|
| Lista não aparece | ConnectServer. |
| Sala não aparece | Registro do GameServer. |
| Sala aparece e cai | IP e porta do GameServer. |
| Login falha | JoinServer e autenticação. |
| Cai ao carregar personagem | DataServer, SQL e GameServer. |
Ordem recomendada para abrir o servidor
A sequência varia, mas em uma estrutura tradicional pode ser:
1. SQL Server
2. DataServer
3. JoinServer
4. ConnectServer
5. ExDB / serviços auxiliares
6. GameServer
A ideia é abrir o GameServer somente depois que as dependências necessárias estiverem disponíveis.
Como diagnosticar o GameServer passo a passo
Checklist do GameServer MU Online
| Verificação | Resultado esperado |
|---|---|
| GameServer.exe | Inicia normalmente. |
| Configuração | Arquivos corretos para a source. |
| ServerCode | Valor correto. |
| Porta | Configurada e escutando. |
| ConnectServer | GameServer registrado. |
| DataServer | Conectado. |
| JoinServer | Conectado. |
| SQL Server | Disponível quando necessário. |
| Firewall | Não bloqueia a porta externa necessária. |
| IP anunciado | Alcançável pelo cliente. |
| Database | Compatível com o GameServer. |
| Logs | Sem erros críticos. |
Perguntas frequentes sobre GameServer
O que é o GameServer no MU Online?
É um dos principais serviços do servidor, responsável por executar grande parte da lógica do jogo e manter a sessão dos jogadores conectados.
Qual é a porta do GameServer MU Online?
55901 é comum em muitas distribuições, mas pode ser diferente. Sempre confira a configuração da sua source.
Por que o GameServer não aparece no ConnectServer?
Verifique ServerCode, IP, porta, firewall e a comunicação entre os dois serviços.
Por que a sala aparece e desconecta?
Normalmente o cliente conseguiu chegar ao ConnectServer, mas falhou ao conectar ao GameServer. Confira IP, porta, firewall e endereço anunciado.
GameServer precisa de DataServer?
Em muitas arquiteturas tradicionais, sim. O DataServer participa das operações relacionadas aos dados persistentes utilizados pelo GameServer.
GameServer precisa de SQL?
Depende da implementação. Algumas sources utilizam serviços intermediários, enquanto outras realizam determinados acessos diretamente.
Por que o GameServer fecha sozinho?
Pode ocorrer por configuração inválida, dependências ausentes, falha em serviços obrigatórios, porta em uso, database incompatível ou erro interno da source.
Posso usar outro GameServer na minha source?
Somente se houver compatibilidade real. Misturar executáveis de projetos diferentes pode provocar erros de protocolo, database e comunicação com outros serviços.
Conclusão
O GameServer MU Online é um dos componentes mais importantes de toda a infraestrutura do servidor.
Para configurá-lo corretamente, você precisa compreender ServerCode, porta, IP, ConnectServer, DataServer, JoinServer, firewall e compatibilidade da database.
O ponto em que o jogador desconecta também ajuda muito no diagnóstico. Se a sala não aparece, olhe para o registro no ConnectServer. Se aparece e desconecta, analise IP e porta do GameServer. Se o jogador entra mais longe e cai ao carregar personagens, investigue DataServer e SQL.
Essa metodologia facilita a manutenção de servidores MU Online 97D, 99z, Season 2, Season 6 e projetos personalizados.