zS.TeaM Forum
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.


Você não está conectado. Conecte-se ou registre-se

Instalando Counter Strike em servidores Linux

Ir para baixo  Mensagem [Página 1 de 1]

Black Day

Black Day
Membro
Membro

detalhes:

Requerimentos mínimos de hardware

* Pentium II 266Mhz (600Mhz recomendado)
* 128 Mb de RAM (256 MB recomendado)

Instalação

Para instalação do servidor de Counter Strike em Linux são necessários dois arquivos (de acordo com as últimas versões disponíveis enquanto este manual está sendo escrito:

* hlds_13110.tar.gz

Este arquivo contêm os arquivos necessários do Half Life portado para Linux.

* cs_15_full.tar.gz

Este arquivo contêm o "mod" para Half Life, na realidade o Counter Strike.

Ambos arquivos podem ser obtidos gratuitamente nos seguintes sites:

http://server.counter-strike.net
http://www.fileplanet.com

Na época de criação deste manual, não existia pacote deste jogo para nenhuma distribuição Linux (RPM ou DEB, por exemplo) o que de certa forma demonstra o pouco comprometimento com o fabricante do jogo em relação ao porte para Linux: como a maioria dos mods, o Counter Strike é feito por fãs, para fãs.

O procedimento básico seria primeiro descompactar o arquivo do Half Life em algum lugar do sistema de arquivos. Uma escolha bastante trivial seria utilizar o /usr/local e meu conselho é que seja utilizado este diretório para instalação.


root:/# cd /usr/local

root:/usr/local# tar xzvf hlds_13110.tar.gz

Existe um script em Perl para o setup deste arquivo: ele irá basicamente configurar algumas variáveis de ambiente para o programa. Basta executar


root:/usr/local/hlds_13110# setup.pl

Uma vez tendo o diretório criado, basta descompactar o arquivo TAR do Counter Strike

root:/usr/local/hlds_13110# tar xzvf cs_15_full.tar.gz

Hora de configurar variáveis de ambiente:


root:/usr/local/hlds_13110# export LD_LIBRARY_PATH=/halflife/hlds_l:$LD_LIBRARY_PATH

Isso irá configurar o Linux para procurar bibliotecas dinâmicas também no diretório do Counter Strike.

Neste ponto já possível iniciar o servidor para testes. Mas fique atento a um detalhe: este manual somente cobre as configurações necessárias para rodar o servidor numa rede interna (ou intranet se preferir). Se você quiser configurar o servidor para estar disponível na Internet e ser autenticável para permitir jogadores, consulte o site do Counter Strike para obter documentação referente.

Para iniciar o Counter Strike, você poderia digitar na linha de comando:

root:/usr/local/hlds_13110# hlds_run -game cstrike +maxplayers 10 +map cs_assault

Provavelmente irá funcionar, mas você irá descobrir que precisa deixar o shell inativo enquanto desejar que o servidor rode. Você ainda terá que manter a janela do Xterm (ou outro terminal) aberta e não pode efetuar logoff. Se você estiver rodando o jogo como root, pior ainda. Alguém pode dar um simples CRTL+C e ter acesso com privilégios de administração.

Talvez você também tenha pensado em colocar o processo em background, mas isso também não funciona bem. O jogo irá funcionar novamente, mas você precisará de outro programa qualquer para administrar seu servidor, pois não haverá uma forma de enviar comandos ao mesmo.

Existem algumas soluções para fazer isso. Os programas hlmonitor e hlds_ld são ferramentas que permitem, entre outras coisas, iniciar o Counter Strike. Mas, pelo mesmo motivo de realizarem mais tarefas do que estamos querendo no momento, eles podem ser um pouco mais complicados de instalar (na realidade, eles são muito mais complexos).

A alternativa é utilizar um programa disponível em todas distribuições Linux de respeito: o programa screen.

O screen é uma aplicação que permite que você crie telas de terminais virtuais, todas conectadas a uma mesma porta. Esses telas virtuais podem ser desconectadas sem que seus programas sejam finalizados, e conectadas novamente se for desejado. O screen é um programa bastante complexo, e possui muitos comandos. Mas para nossa aplicação, seu uso é bastante simples:

root:/usr/local/hlds_13110# screen -Amds lan ./hlds_run -game cstrike -nomaster -insecure
-noipx +sv_lan1 +maxplayers 20 + map de_dust

Pode parecer um pouco complicado para você, mas tirando os parâmetros do servidor, as duas peças importantes são o comando screen e o ./hlds_run: eles irão efetivamente rodar o jogo.

Uma vez que você execute esse comando, você poderá digitar:

root:/usr/local/hlds_13110# screen -r lan

Dessa forma, você será conectado ao terminal virtual que já está rodando, por um acaso com o nome de lan. Você poderia ter digitado qualquer outro nome, se quisesse. Você pode se desconectar também, mas tenha cuidado! Se você digitar algo como CRTL+C você terá a desagradável surpresa de descobrir que simplesmente matou o processo do servidor, não permitindo que ele terminasse de forma decente. Isso tem implicações, como por exemplo, corromper os arquivos de log. Se você pretende usar eles para criar um ranking, isso poderá se tornar um problema.

A maneira correta de sair do screen sem finalizar nenhum processo é pressionar as teclas CRTL+a e então pressionar a tecla "d". Para finalizar o servidor de maneira correta, digite o comando "Quit". O servidor irá derrubar todas as conexões que tiver no momento e finalizar de forma correta.

Voltando ao comando executado para iniciar o servidor, vamos dar uma olhada nos parâmetros utilizados. O Counter Striker aceita muitos parâmetros para rodar, e alguns desses parâmetros podem ser colocados nos seus arquivos de configuração, mas eu entrerei nesses detalhes depois.

As opções do programa screen (Amds lan) são relativas a esse programa. Você pode checar a página de manual do mesmo para ver os detalhes. A palavra "lan" é como um nome dado ao processo que o screen irá criar.

Os parâmetros utilizados do servidor são:

* game sctrike: identifica o tipo de jogo que o Half Life irá jogar;
* nomaster: esta opção identifica que você está rodando o servidor de forma independente. Isso é importante caso você queira rodar o jogo dentro de uma intranet;
* insecure: esta opção trabalha sem autenticação de jogadores para jogar no servidor;
* noipx: você não quer rodar IPX numa rede TCP-IP;
* sv_lan1: isso simplesmente ativa o servidor como servidor de intranet. Fundamental;
* +maxplayers 20: identifica o número máximo de jogadores permitidos (pode-se configurar esse parâmetro até 32 jogadores);
* map de_dust: qual o mapa que o servidor irá rodar assim que começar a rodar;

Arquivos de configuração

Quando o servidor é iniciado, ele irá ler quatro arquivos de configuração: * autoexec.cfg
* server.cfg
* motd.txt
* mapcycle.txt

O autoexe.cfg é usado para comandos, como maxplayers 12, log on ou map cstrike. Fique atento para o detalhe que se você usar um comando de mapa, este DEVE ser a última linha do arquivo. Este arquivo é lido apenas uma vez pelo servidor (na sua inicialização) e por algum motivo desconhecido, ele não é incluído na instalação do Counter Strike, o que obriga você a criar seu próprio arquivo. A única utilidade deste arquivo é evitar que você tenha que digitar todas as opções do servidor na linha de comando. De acordo com a documentação do site http://server.counter-strike.net, algumas opções só funcionaram sendo colocadas na linha de comando, não dentro do arquivo.

O arquivo server.cfg é o arquivo mais importante do seu jogo, e ele é executado toda a vez que um novo mapa é carregado. Este arquivo possui tanto comandos como configuração de variáveis utilizadas pelo jogo, como configurar quanto tempo de jogo por partida. Você pode também configurar o nome do servidor usando a diretriz "hostname". Um aviso: nunca ative a diretriz log on ou você correrá o risco de gerar arquivos de log enormes e acabar com o espaço de sua partição. O gerenciamento desses arquivos de log eu irei explicar mais tarde. Segue abaixo um exemplo do arquivo de configuração padrão:

// Use this file to configure your DEDICATED server.
// This config file is executed everytime the server changes levels.

// disable autoaim
sv_aim 0

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

// default server name. Change to "Bob's Server", etc.
hostname "Counter-Strike 1.5 Server"

// maximum client movement speed

sv_maxspeed 320

// 20 minute timelimit

mp_timelimit 20

sv_cheats 0

O arquivo motd.txt contem o texto que pessoas irão ler toda a vez que se entrarem no jogo ou houver uma alteração de mapa. O mesmo efeito que possui o arquivo o arquivo motd no Linux (cosmético, por assim dizer). O limite é possui 155 caracteres dentro desse arquivo. Abaixo vai um exemplo:

You are playing Counter-Strike v1.5
Visit the official CS web site
www.counter-strike.net

O último arquivo é mapcycle.txt. Todos os mapas que você deseje que seu servidor carregue deverão estar dentro deste arquivo. Use o nome dos mapas sem a extensão ".bsp". O formato do arquivo exige que cada nome de mapa seja colocado em uma linha, em forma de coluna. Se você ver o servidor sempre usando "hldm1" isso significa que o arquivo está formatado incorretamente.

Apesar deste serem os quatro arquivos básicos para o servidor usar, você pode criar outros arquivos de configuração como adicionais. Existem alguns programas gerenciadores de servidores que irão criar seus próprios arquivos de configuração, então não tenha receio de usar esses arquivos ou ficar imaginando por que eles existem já que o programa de gerenciamento pode rodar baseado neles.

Rodar mais de um servidor Counter Strike dentro de uma mesma máquina.

Isso é possível alterando a porta do servidor que será utilizada. Ainda pode-se fornecer arquivos de configuração diferentes. A vantagem de utilizar este método é não ter que ocupar espaço em disco desnecessário, e manter todos os logs do jogo (para gerar ranking de jogadores, por exemplo) num local só.

Na linha de comando para iniciar o servidor, inclua os seguintes parâmetros:

+ servercfgfile arquivo.cfg +motdfile arquivo.txt -port 27015

O primeiro parâmetro permite um arquivo de configuração diferente, o segundo um arquivo de mensagem diferente do original motd.txt e o segundo indica uma porta diferente da padrão. Para os dois primeiros parâmetros funcionarem, você precisa usar portas dentro da faixa de 27015 até 27024.

Problemas com LAGS e valores de PING alto

Eu admito que o jogo ficar executando LAGs (aquelas "travadas" terríveis que o jogo dá, para depois seu jogador aparecer em um quanto qualquer da tela de uma vez) mas eu sempre me irrito quando alguém reclama sobre valores de PING alto num servidor que roda em Intranet.

Esqueceram de contar para esses jogadores malas e completamente viciados o que é PING (normalmente eles só sabem a definição do jogo) e para que serve esse valor. Esse valor foi criado com a inteligente (?) função de definir se um servidor está sobrecarregado para você jogar. Isso funciona bem em servidor espalhados pela Internet, mas não servem de muita coisa a não ser gerar MAIS processamento no servidor que roda em intranet.

Um valor de PING alto não implica diretamente em LAGS no jogo, mas sempre alguém reclama. Você pode tentar checar processos inúteis no seu servidor Linux primeiramente, depois gerenciar o uso de memória RAM e SWAP através do programa top por exemplo ou colocar um pouco mais de memória RAM caso o servidor esteja abaixo dos requisitos mínimos.

A dica que vou dar abaixo talvez não funcione em servidores de intranet, pois ela foi escrita baseada em servidores disponíveis na Intranet. Não tive condições de testar isso exaustivamente.

O Counter Striker possui dois parâmetros para limitar valores de PING muito baixos ou muito altos:

* sv_maxrate
* sv_minrate

Esses parâmetros não proíbem ninguém de esta fora dessa faixa, mas força os jogadores a se encontrarem dentro da faixa definida por você. Não existem valores "perfeitos" para se configurar esses parâmetros: você deve testar valores maiores ou menores até encontrar uma situação que lhe agrade.

Um bom ponto de partida para o ajuste fino seria tentar esses valores:

sv_maxrate 6500
sv_minrate 2000

Ferramentas que aumentam a capacidade do Counter Striker

* PHPrcon (http://www.phprcon.net) - esta ferramenta substitui completamente o uso do Rcon através de uma interface web (gerada em PHP). Na realidade emula todas as funções do Rcon através de uma interface muito mais simples, sem ter de exibir a senha do rcon para todos jogadores que estiverem bisbilhotando seu monitor como papagaios de pirata (acreditem, eu já vi isso acontecer muitas vezes).
* Hlmonitor: basicamente gerencia o Rcon, até de inicializar de forma otimizada o jogo ao invés de utilizar o screen
* Hlds_ld: o mesmo que o programa acima.
* Psychostats (http://www.psychostats.net/pstats.php) : com toda a certeza a melhor ferramenta disponível para Counter Striker (pelo menos a melhor implementada). Desenvolvida em Perl, essa ferramenta lê todos os registros de log do Counter Striker e gera relatórios de ranking em html dos jogadores, clãs e armas mais usadas. O site também possuí outras ferramentas muito interessantes.
* Limpador de logs: este pequeno script em Perl, de minha autoria, server para apagar os logs antigos do Counter Strike. Ele é realmente muito simples, simplesmente apaga os arquivos que não foram criados no mês corrente. É útil se você procura manter apenas o ranking contado por mês. Para utilizar, execute o script de dentro do diretório aonde estão localizados os arquivos de log. Você pode fazer download dele por aqui.

Sites para maiores informações e download do jogo

* http://server.counter-striker.net - (informações respectivas a servidores Linux)
* http://www.fileplanet.com - (download do Half Life e do Mod Counter Striker)

O download dos programas para o servidor serão incrivelmente demorados e o processo é extremamente chato (a menos que você assine o serviço), então lembre-se de usar um gerenciador de download, assim como gravar as cópias em um lugar confiável, como um cdrom. Ambos os arquivos são gratuítos.
Sobre o autor

Alceu Rodrigues de Freitas Junior é um entusiasta em sistemas Linux e adora Perl. De vez em quando ele assume algumas obrigações esquisitas como instalar servidores de jogos e nunca ter tempo para jogá-los depois.

Maiores informações sobre o autor podem ser encontradas em seu site pessoal http://www.imortais.cjb.net, onde se encontram também outros artigos relacionados a Linux de sua autoria, assim como algumas bobagens de gosto pessoal.

Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos