Multiplayer
Mais ações
Multiplayer é um termo usado para representar um jogo com vários jogadores. Isso pode ser em um estilo competitivo, como deathmatch, ou em um estilo cooperativo contra os monstros do jogo.
Detalhes técnicos
O ZDoom usa
UDP/IP para todo o jogo em rede. O estado do jogo é rastreado em um sistema peer-to-peer, ao contrário dos derivados do csDoom ou do Zandronum, que são muito mais adequados para jogos em maior escala por focarem em uma arquitetura cliente-servidor. A vantagem do ZDoom, porém, é o baixo uso de largura de banda (média de 300 bytes por segundo por nó) e a ausência do fenômeno de “vantagem do host” (a rede é lock-step). A “escala” do mapa (quantidade de inimigos, complexidade etc.) também não afeta a largura de banda, porque em netgames no ZDoom só é necessário enviar dados de controle do jogador.
Jogos multiplayer devem ser iniciados pelo comando de linha ou por algum tipo de launcher. A seguir, um conjunto de exemplos de linhas de comando:
zdoom -host 2 -warp 01 -skill 4 zdoom -host 2 -deathmatch -warp 01 zdoom -join 192.168.0.1 zdoom -host 1 +map map29
Para mais comandos, veja Command line parameters e CVars.
- O primeiro comando diz ao computador para hospedar dois nós (ele mesmo e mais um), ir imediatamente para MAP01 e definir a dificuldade como Ultra-Violence.
- O segundo também hospeda dois, mas usa a dificuldade padrão (Hurt Me Plenty) e define o modo de jogo como deathmatch.
- O terceiro entra em um servidor hospedando qualquer tipo de jogo, no endereço IP especificado e na porta padrão 5029.
- O quarto inicia um jogo multiplayer “solo” no map29. Assim, o jogo começa imediatamente com todas as regras de multiplayer com apenas um jogador. Um mapa precisa ser especificado.
Uma pessoa entrando em um jogo não precisa especificar parâmetros adicionais além de carregar quaisquer WADs ou patches DeHackEd personalizados que o host esteja usando. Usar níveis e patches personalizados que não estejam em uso por todos no jogo causará falhas de consistência e o jogo vai desincronizar.
Como o único requisito para se conectar a netgames é um endereço IP, você também pode jogar ZDoom online usando o endereço WAN do host. Há alguns requisitos adicionais dependendo do netmode usado se você tiver 3 ou mais jogadores, explicados abaixo neste artigo.
Se você quiser uma forma simples de organizar jogos em rede com pessoas aleatórias, pode usar uma ferramenta como Doom Connector para encontrar oponentes e configurar uma partida.
Modos de jogo
O ZDoom suporta três modos de jogo multiplayer diferentes. Multiplayer source ports também podem implementar modos adicionais, como Capture The Flag ou Domination.
Deathmatch
Deathmatch é um estilo de jogo multiplayer popularizado por Doom em que jogadores se enfrentam entre si, conectados a uma área comum por uma rede.
Um ponto, chamado de frag, é concedido a um jogador sempre que ele ou ela mata um oponente.
Ao morrer, os jogadores reaparecem em um deathmatch start aleatório.
Os jogadores surgem com todas as chaves, e chaves nunca são colocadas no mapa (atualmente não há uma forma limpa de contornar isso).
Team deathmatch
Team deathmatch é uma variação do deathmatch em que os jogadores são colocados em dois ou mais teams. Os jogadores pontuam frags ao matar membros de equipes adversárias. As Gameplay options permitem reduzir ou remover o dano de fogo amigo.
Cooperativo
Jogabilidade cooperativa, geralmente chamada de co-op ou coop, é um modo multiplayer no qual jogadores humanos cooperam contra os monstros de um jogo. O modo cooperativo é o modo padrão se o parâmetro -deathmatch não for especificado na linha de comando.
Modos de rede
O ZDoom oferece dois modos de rede para alterar como os nós se conectam entre si. Dependendo das condições da rede, um pode ser mais favorável que o outro. Você pode forçar um netmode usando o parâmetro de linha de comando '-Netmode #' .
Peer-to-Peer
Netmode 0, o padrão, é o modo tradicional. O mais rápido dos dois: cada nó conversa diretamente com cada outro nó, e o jogo só é desacelerado pela conexão mais lenta entre dois nós. Em jogos pela Internet, isso exige que todos os nós consigam contatar todos os outros nós, ou o jogo parecerá travar quando iniciar (isso só se aplica se você tiver 3 ou mais jogadores). Hole punching é usado por todos os nós convidados para se conectar aos outros nós.
Servidor de pacotes
Netmode 1, que precisa ser forçado, é um modo alternativo adicionado ao ZDoom. O mais lento dos dois (dependendo das condições de rede): cada nó fala com o árbitro (tipicamente o primeiro jogador), e o árbitro então roteia as informações para cada outro nó. Como você está adicionando o tempo que o árbitro leva para rotear as informações para cada nó, jogos pela Internet podem ficar significativamente mais lentos nesse netmode, mas com a vantagem de uma configuração de rede mais simples (somente o host precisa ser contatável). É recomendado que você não force esse netmode em jogos de 2 jogadores, pois não é necessário (nada muda sobre como a conexão é iniciada e mantida) e só resulta em pacotes maiores.
Savegames
É possível criar savegames em multiplayer (útil para o modo cooperativo). Ao salvar, o save é gravado em cada computador usando o mesmo nome de arquivo. Porém, carregar um savegame deve ser feito pela linha de comando. Tanto o host quanto cada jogador que entrar devem usar -loadgame nome_do_savefile além de -host ou -join. Não é possível carregar enquanto o jogo já está em andamento.
Source ports multiplayer
Há cinco ports baseados em ZDoom que têm código de rede melhorado, especializado para multiplayer online:
- csDoom não é mais mantido. Ele era baseado no código-fonte do ZDoom versão 1.22 e tinha seu próprio código de rede. csDoom foi o primeiro port multiplayer cliente/servidor.
- Odamex é uma continuação do csDoom desenvolvida com uma abordagem “volta ao básico”. Ele tem suporte a alguns recursos do ZDoom 1.23 beta para competir com o ZDaemon.
- Skulltag, não apenas um source port voltado para multiplayer, mas um mod multiplayer completo com novas weapons, bots com seu próprio conjunto de características únicas de personagem, novos níveis projetados para usar os recursos especiais disponíveis nesse port e mais. Ele era baseado no código moderno do ZDoom 2.x, mas não é mais mantido.
- Zandronum é o sucessor do Skulltag. As armas adicionais, níveis e outros conteúdos extras foram movidos para um pacote de add-on opcional, mas fora isso é totalmente compatível com Skulltag.
- ZDaemon é outra continuação do csDoom por uma equipe diferente e com recursos adicionais, incluindo alguns recursos das betas do ZDoom 1.23, como slopes. É o único source port de código fechado.