Criando um painel web e rankings a partir do banco
Um dos maiores ganhos do MySQL é que o site do servidor pode ler os mesmos dados do jogo. Rankings, perfis de jogadores e painéis de controle aumentam o engajamento e deixam o servidor mais profissional.
O que dá para criar
- Rankings: mais ricos, mais horas jogadas, mais kills, melhores corredores;
- UCP (User Control Panel): o jogador vê personagens, propriedades, histórico e troca a senha;
- Status do servidor: jogadores online, eventos, últimas notícias;
- Painel da staff: consulta de logs, banimentos e denúncias.
Exemplo de ranking
SELECT nome, dinheiro + banco AS fortuna
FROM personagens
ORDER BY fortuna DESC
LIMIT 10;
Arquitetura recomendada
Jogo (open.mp) ─┐
├─> MySQL
Site (PHP/Node) ┘
- Crie um usuário de banco só de leitura para o site, com acesso apenas às tabelas necessárias;
- Ações que alteram dados (troca de senha, por exemplo) devem ter validação forte;
- Nunca exponha o hash de senha, IPs ou dados pessoais nas páginas públicas.
Desempenho
Rankings consultados a cada visita podem pesar no banco:
- Cache: gere o ranking a cada poucos minutos e sirva a versão pronta;
- Índices nas colunas ordenadas;
- Tabelas de estatísticas atualizadas periodicamente em vez de somas complexas a cada página.
O banco é compartilhado com o jogo. Uma consulta pesada do site pode causar lag no servidor.
Acesso ao banco pelo site
O site pode estar em outro servidor. Nesse caso, o MySQL precisa aceitar conexões externas para aquele usuário. Restrinja por IP quando possível e use senhas fortes. Verifique com o suporte da sua hospedagem como liberar o acesso remoto.
Segurança do painel
- Login com o mesmo hash usado no jogo (bcrypt);
- Proteção contra força bruta e CSRF;
- HTTPS obrigatório;
- Consultas parametrizadas (prepared statements) no site também.
Hospede seu servidor com a VittHost
Os planos OPENMP-BR da VittHost incluem MySQL para você integrar jogo e site. Servidores no Brasil, painel Pterodactyl, proteção DDoS, compatibilidade total com scripts SA-MP e teste grátis de 3 dias. Para hospedar o site, conheça também os VPS-NVME-BR da VittHost.