Páginas

sábado, 6 de agosto de 2011

FreeBSD: Servidor de Counter Strike

At 09:49 AM 11/7/2002, you wrote:
Para aqueles que se interessaram em montar um servidor CS no FreeBSD, acabei de faze-lo, mas não é tão direto quanto se acredita, nem ao menos é parecido com Linux.

Passos básicos:

1) Instale/atualize a árvore dos ports com o cvsup (favor consultar documentação específica)

2) Instalar a compatibilidade de Linux mais atualizada (/stand/sysinstall); Consulte documentação específica. Por volta de 24 MB.

3) Baixar o pacote http://gwforum.net/cs/ua/HL_CS_Files/halflife/hlds_l_3110_full.bin

(por volta de 118 MB)

Esse arquivo pode ser baixado de vários outros pontos na Internet. Use o Google ou similar para procurar. (esse é o SERVIDOR de Half Life propriamente dito, o "engine" que roda o MOD Counter Strike.)

Coloque-o em /usr/ports/distfiles

Neste caso esse já é o binário de Linux. É um arquivo auto-descompactável que tem a licensa de uso. Caso você concorde com ela, o arquivo irá descompactar o pacote .tar.gz completo no diretório local, que no FreeBSD TEM QUE SER o /usr/ports/distfiles .


4) Baixar o pacote de atualização para Counter Strike mais atual (1.5, hoje)
O link
http://gwforum.net/cs/ua/HL_CS_Files/cstrike/lin_server/cs_15_full.tar.gz
funciona bem, mas continua valendo o comentário anterior. Por volta de 108 MB.

Coloque-o em /usr/ports/distfiles

Esse não precisa executar. O conteúdo do arquivo vai ser usado para "patchear" o módulo de Linux hlds, e isso vai acontecer quando VC der um make.

5) tudo pronto para começar a compilar;

execute

cd /usr/ports/games/halflifeserver/

make

make install

(provavelmente este passo 5 e o seguinte são redundantes, ou, na pior das hipóteses, iguais, mas foi assim que eu fiz, e ainda não tive tempo de testar outro modo)

6) execute

cd /usr/ports/games/hlserver-cs/

make

make install

7) Edite o arquivo de configuração do servidor em

/usr/compat/linux/usr/games/hlds_l/cstrike/server.cfg

o meu está assim:

// disable autoaim
sv_aim 0

// disable clients' ability to pause the server
pausable 0

// default server name. Change to "Bob's Server", etc.
hostname "Cap_BR"

// maximum client movement speed
sv_maxspeed 320

// 20 minute timelimit
mp_timelimit 20

sv_cheats 0

rcon_password "senhadoserverCS"
mp_c4timer 30
mp_flashlight 1
mp_footsteps 1
mp_friendlyfire 1
mp_autoteambalance 1
mp_freezetime 6
mp_roundtime 3
mp_maxrounds 0
mp_mapvoteratio 0.8
mp_forcechasecam 0

Finalmente rode o servidor como USUÁRIO NÃO PRIVILEGIADO (não root, ou não pertencente ao grupo wheel). Comando:

./usr/compat/linux/usr/games/hlds_l/hlds_run -game cstrike + maxplayers 6 + exec server.cfg + map de_dust &

(tudo em uma linha só, claro. Preste atenção no "." no início do comando e o "&" no final!)

Com isso um servidor CS básico vai estar rodando em background, sem senha, para os usuários.

Lembre que assim que VC inicia o servidor ele vai:

-Baixar atualizações do site principal
-publicar-se como sendo um servidor público nas listas internacionais (portanto VC vai ser conhecido em todo o mundo) -se seu servidor estiver por trás de um firewall e/ou gateway, e com IP reservado (192.168.x.y, 10.x.y.z, 172.16.x.y) o IP do GATEWAY vai ser publicado como sendo de um servidor de jogo, e várias requisições de conexão (porta udp 27015/27005), informação (porta udp 27010) passarão a acontecer entre o servidor de jogo e a Internet, ou o GATEWAY e a internet.

Para tornar público um servidor de jogo, mantendo-o por trás do firewall/gateway, use o redirecionamento do natd ou similar da seguinte maneira:

todas as conexões chegando para o gateway para udp 27015 devem ser redirecionadas para o ip interno do servidor de jogo.

O servidor de CS é muito econômico e estimo que consuma por volta de 3 a 4% dos recursos de processamento de um Pentium 3 500 MHz com 128 MH de ram (rodando apenas isso) por jogador conectado. O único probleminha é que - pelo que eu interpretei do TOP - ele ocupa algo como 53 MB de memória ram.

Calculo uma média de 3.5 KBytes/s de saída e 2.5 Kbytes/s de entrada de dados, por cliente (jogador) conectado. Ou seja, donos de speedy 256/128, sinto muito mas não vão jogar mais do que 4 pessoas no seu server (remotamente), com boa performance. Esse consumo de banda não é estável, e varia muito durante o jogo, não atinei exatamente o porque.

Dica: Para tornar o jogo balanceado entre jogadores remotos e locais, use o pipe do ipfw para reduzir a velocidade e alterar o tempo de resposta da conexão local, e equalizar o tempo de resposta. O tempo de resposta de um cliente pode ser verificado durante o jogo apertando a tecla tab. Esse tempo de resposta é conhecido como "ping" pela comunidade CS (mas designado como "latency"), e estando entre 35 e 45 é considerado excelente. "Pings" de 100 e acima dificultam em muito o jogo para esse determinado cliente (vira presa fácil).

Clientes na rede interna deverão ter um "ping" de aproximadamente 15 a 40, com bastante flutuação.

Ainda não tenho os comandos mais avançados do servidor de CS e agradeceria se alguém os passasse para mim.

Se VC tem um servidor um pouco mais avantajado que está funcionando só como DNS ou coisas pequenas, taí uma máquina ideal para fazer uma servidor de Couter Strike.

[]s

Capriotti

FONTE: http://www.fug.com.br/historico/html/freebsd/2002-11/msg00230.html

Nenhum comentário:

Postar um comentário