sábado, 4 de outubro de 2008

Jogar Assaultcube numa LAN

Há um tempo atrás fiz um post sobre o assaultcube. Infelizmente o jogo ainda não tem uma data prevista para o lançamento de uma nova versão. O projecto parece que está parado há algum tempo. Como já tinha referido, o jogo é muito básico em termos gráficos e não exige muito em termos de hardware, até roda num portátil com placa gráfica integrada.
Esta dica serve para você criar o seu próprio servidor na rede Local, para jogar com os amigos, e adicionar novos mapas. (Também e possível criar um servidor disponível para todos na Internet, so é preciso algumas precauções com a segurança do seu sistema, e configurar o firewall do router para fazer "port forwarding". Mas não é minha intenção abordar o assunto neste post.)

Por uma questão de segurança e de facilidade de configuração, vou apenas explicar como criar um server privado na rede local (LAN). Nem é preciso conexão à internet :P Tudo o que precisa é de um router.
Dentro da pasta do jogo Assaultcube existem dois scripts, o assaultcube.sh que executa o jogo, e o assaultcube_server.sh que roda um server.
No mesmo computador irei executar o server (assaultcube_server.sh) em "background" e o cliente (assaultcube.sh) ao mesmo tempo, para jogar. Basta abrir uma consola no Linux na pasta do AssaultCube e executar o seguinte comando:

./assaultcube_server.sh -c8 -mlocalhost -oBem-vindos

-c8 indica o numero máximo de clientes, por omissão o numero de jogadores máximo é 6.
-mlocalhost com este parâmetro o server "corre" em modo privado, ele será na mesma um server dedicado, mas não irá conectar-se ao masterserver principal em masterserver.cubers.net. Ou seja, o masterserver será a máquina local.
-oBem-vindos é opcional, serve para mostrar uma mensagem ao cliente quando este se conecta ao servidor.
O resultado do comando deverá ser esse:



Existe ainda uma opção importante, que define a password do servidor. "-xpassword" mas, eu não usei este parâmetro, porque o servidor estará disponível apenas na rede local.
O "-d" foi outra opção que não utilizei. Ele cria um servidor dedicado, mas continua usando o masterserver principal (masterserver.cubers.net).

Agora que o servidor já esta "rodando", só falta os clientes estabelecem a conexão com o servidor
É so ir ao Menu (tecla Esc) -> Multiplayer -> Join Lan Game.
Mas nos testes que eu fiz, a conecção com o servidor ia abaixo após alguns minutos de jogo. Por isso optei por adicionar o ip do servidor na lista dos clientes, basta carregar na tecla T para inserir o comando na consola do jogo:

/addserver ip-da-maquina-rodando-assaultcube_server.sh

Exemplo:


Agora vá até ir ao Menu (tecla Esc) -> Multiplayer -> Update serves (aguarde um pouco para actualizar a lista)
Depois basta ir até Menu (tecla Esc) -> Multiplayer -> Join Game (aguarde até o ip aparecer na lista)
Se tudo correr como previsto irá aparecer na lista apenas o ip do servidor local. Click enter para conectar.
Repare que na consola onde esta sendo executado o servidor, aparecerem os números de ip de todos os clientes, que estabelecem ligação.


Assim que entrar no jogo, use este comando para adquirir privilégio administrativos:

/setmaster 1

O primeiro cliente a executar o comando /setmaster 1 será o "dono" do servidor. Em condições "normais" seria necessário inserir a password do servidor. Mas como já tinha explicado, não achei necessário definir uma password.
Agora que você tem privilégios administrativos, você já pode mudar o mapa e o modo de jogo. Exprimente mudar para o mapa ac_mines, jogando em "death match":

/dm ac_mines

Se vovê criar algum mapa novo, coloque na pasta AssaultCube/packages/maps no servidor (computador que executa o assaultcube_server.sh).
Agora para que os clientes consigam "entrar" nesse novo mapa será necessário enviar o mapa através do seguinte comando na consola do jogo:

/sendmap nome-do-mapa

Apartir desse momento os clientes podem pegar o mapa novo:

/getmaps

O ficheiro maprot.cfg dentro da pasta AssaultCube/config serve para indicar a "rotação" dos mapas, o modo de jogo, o tempo de duração, e se a opção "votar" esta habilitada ou não.

Por exemplo:

ac_desert:2:15:1

Neste exemplo o mapa será o ac_desert, no modo 2, "death match" (cada modo de jogo corresponde a um numero), duração de 15 minutos, e os jogadores podem votar.
Esses são os comandos essenciais. Para mais detalhes sobre os comandos disponíveis, consulte o manual do assaultcube server (em inglês).

Nenhum comentário :