DDRaceNetwork (Português)

Status de tradução:
Esse artigo é uma tradução de
DDRaceNetwork
. Data da última tradução: 2020-09-03. Você pode ajudar a sincronizar a tradução, se houver
alterações
na versão em inglês.
DDNet
, como é popularmente conhecido, é um jogo de plataforma de rolagem lateral, apresentando armamento e uma jogabilidade cooperativa, e é um mod de
Teeworlds
. O nome do jogo vem de "Dummy Drag Race Network", já que foi baseado no DDRace.
Do site oficial
ddnet.tw
(tradução nossa):
DDraceNetwork (DDNet) é uma versão ativamente mantida do DDRace, uma modificação do Teeworlds com uma jogabilidade cooperativa única. Ajude uns aos outros a jogar através de mapas personalizados com até 64 jogadores, compita contra os melhores em torneios internacionais, crie seus próprios mapas ou administre seu próprio servidor. Os servidores oficiais estão localizados na Alemanha, Rússia, EUA, Canadá China, Japão, Cingapura, Chile, Brasil, África do Sul e Austrália. Todas as classificações feitas em servidores oficiais estão disponíveis em todo o mundo e você pode acumular pontos!
Você controla um
tee
, um personagem 2D em forma de bola, usando seu teclado e mouse para atirar, enganchar e pular para interagir com outros jogadores e o ambiente no mapa com a linha de chegada como alvo.
O jogo funciona em um modelo cliente-servidor, onde o usuário joga usando um cliente que se conecta a um servidor local ou remoto. Como o DDNet tem servidores oficiais, você provavelmente só iniciará o Cliente e jogará online.
Instalação
Instale
ddnet
AUR
. Alternativamente, você pode instalar sua versão de desenvolvimento
ddnet-git
AUR
.
Skins opcionais
Instale
ddnet-skins
AUR
[
link quebrado
: package not found]
.
Este pacote fornece todos os skins do
DDNet Skin Database
(banco de dados de skins do DDNet) para o seu cliente, então você pode escolher entre muitos skins para jogar com um
tee
extravagante. No entanto, isso não afetará nada na jogabilidade.
Estes skins são instalados em
/usr/share/ddnet/data/skins/
.
Observe que outros jogadores só verão o skin escolhida se também tiverem ele instalado e, do contrário, verão o skin padrão amarelada. Portanto, isso pode acontecer com as skins deste pacote ou qualquer outra skin que você modificar ou criar.
Dica
É possível criar ou modificar skins e usar para o seu personagem. Se você fizer isso, considere publicá-lo, para que outros usuários possam usá-lo via DDNet Skin Database. Para publicar skins, acesse
este tópico do fórum
Atenção
Este pacote traz consigo um consumo adicional de memória RAM de 120 MB para o cliente DDNet, então os usuários que jogam em um computador com pouca RAM disponível podem querer evitá-lo.
Mapas offline
Instale
ddnet-maps-git
AUR
.
Este pacote fornece todos os mapas jogáveis do
repositório ddnet-maps
com arquivos de configuração padrão para executar um servidor DDNet offline. Assim, uma vez instalado, facilita a execução de um servidor offline.
Nota
O cliente baixa mapas automaticamente na conexão ou alteração de mapa de uma instância do servidor. Portanto, é opcional.
Ter esses mapas offline é benéfico para o cliente e para o servidor:
Os clientes não precisarão baixar os mapas já instalados por este pacote. Apenas novas versões de mapas instalados (raramente acontece) ou novos mapas serão baixados para o diretório do usuário (Veja
#Arquivo e diretório para configurações de usuário
.
Os servidores podem usar os mapas e arquivos de configuração fornecidos para serem executados sem que o administrador do servidor tenha que perder tempo criando configurações para eles; veja
#Servidor
para mais informações.
Jogar
Para jogar DDNet, execute o comando
$ DDNet
ou execute o arquivo
.desktop
fornecido no pacote (por exemplo, no GNOME, procure por "ddnet" no panorama de atividades)
É muito simples — todas as configurações do usuário (seleção de skin, vídeo, controles etc.) podem ser feitas a partir da GUI do cliente DDNet.
Nenhuma configuração de servidor é necessária; se você deseja configurar um servidor local, consulte
#Servidor
.
Além disso, algumas ferramentas extras — das quais você provavelmente não precisará — estão disponíveis em
/usr/lib/ddnet/tools/
. Veja
#Ferramentas extras
.
Tipos de jogo
Tipos de jogos (também conhecidos como modos de jogo, "gametypes" ou "game types") são maneiras diferentes de jogar jogos do tipo Teeworlds (DDNet incluído!) E maneiras diferentes de explorar seus recursos (por exemplo, física, armas matam ou simplesmente empurram outros jogadores, etc.).
No painel principal do cliente DDNet, várias instâncias do servidor são listadas (não apenas DDNet), cada uma é iniciada com apenas um tipo de jogo. Para jogar um tipo de jogo, você deve entrar na instância do servidor que tem o tipo de jogo desejado (por exemplo, você deseja jogar "ctf", você deve procurar e entrar em uma instância do servidor "ctf")
Veja abaixo uma lista não exaustiva com o nome e uma explicação dos tipos de jogos que podem ser encontrados nos servidores oficiais da DDNet (embora existam muitos mais).
Tipos de jogo DDNet
Estes são os tipos de jogo oficiais do DDNet, mantidos pelo DDNet. Isso significa que os mapas desses tipos de jogos são armazenados e disponibilizados no repositório de mapas da DDNet. Isso também significa que a equipe de teste executa alguns testes antes de os mapas serem adicionados ao repositório e publicados.
Alguns deles podem exigir uso do DDNet Client devido aos recursos (por exemplo, "tee"
dummy
, formação de equipes, combinações de teclas específicas) que este cliente fornece, mas outros podem ser jogados com outros clientes, como Teeworlds.
O objetivo desses mapas, salvo quando mencionado de outra forma abaixo, é superar obstáculos e outras dificuldades do mapa, enquanto se ajudam mutuamente, a fim de alcançar a linha de chegada do mapa.
Este conjunto de tipos de jogos consiste em:
novice
– Os mapas colaborativos mais fáceis podem ser encontrados aqui. Os novatos devem começar aqui.
moderate
– Mapas colaborativos de nível moderado para usuários mais experientes.
brutal
– Mapas colaborativos difíceis para usuários muito experientes.
insane
– Mapas colaborativos incrivelmente difíceis para usuários incrivelmente experientes.
solo
– Jogue sozinho o mapa inteiro, sem nenhum
dummy
ou qualquer interação física com os usuários (mas você pode conversar com outros jogadores)
ddmax
– Mapas de DDracemaX, um dos primeiros mod de corrida e muito popular. Este projeto foi descontinuado, então DDNet adotou
[1]
seus mapas e os disponibilizou nos servidores oficiais. Veja
[2]
para mais informações sobre este tipo de jogo.
dummy
– Mova seu
dummy
até a linha de chegada, de forma colaborativa ou solo, dependendo do mapa.
oldschool
– Alguns mapas antigos para deixar os jogadores de longa data nostálgicos.
race
– Alcance a linha de chegada o mais rápido que puder em uma corrida solo.
Nota
Ao olhar a lista de servidores do painel do cliente, você pode notar que todas as instâncias do servidor DDNet têm a coluna Tipo como
DDRace
e o nome da instância do servidor incluirá o tipo de jogo listado acima, por exemplo, "DDNet GER - DDmaX [DDRaceNetwork]"
Tipos de jogo vanilla
Os tipo de jogos chamados de
vanilla
são os primeiros, e foram criados em Teeworlds, e que o DDNet tem suporte. Este conjunto de tipos de jogos inclui:
dm
(
d
eath
m
atch) – O objetivo é matar o máximo possível de jogadores até atingir o limite de portes ou de tempo. A partida termina assim que uma das condições é atingida, e o vencedor é o jogador que acumulou o maior número de mortes.
tdm
(
t
eam
d
eath
m
atch) – Igual ao Deathmatch acima, exceto que os jogadores são organizados em duas equipes, com cada equipe tendo sua própria contagem de mortes.
ctf
(
c
apture
t
he
f
lag) – Baseado no famoso "pique bandeira", duas equipes têm, cada uma, uma bandeira (vermelha para equipe vermelha e azul para equipe azul) e o objetivo é capturar a bandeira da outra equipe, localizada na "base" da equipe, e trazê-la com segurança de volta para sua própria base até atingir uma determinada pontuação ou o tempo acaba. Mate o inimigo para evitar que sua bandeira seja capturada ou para levar a bandeira de volta à base de seu time.
Tipo de jogo blocker
Nota
Você o encontrará com o tipo
ddrace
, mas o título do servidor e o nome do mapa podem ser facilmente identificados como Blocker
Blocker
tem como único objetivo bloquear outros jogadores, o que significa brincar jogando em áreas congeladas. Não há pontuação ou limite de tempo neste tipo de jogo, ou pelo menos não importa.
Observe que embora seja esperado ser bloquear outros neste tipo de jogo blocker, o mesmo
não
se aplica a
#Tipos de jogo DDNet
— neste último caso é rude e você provavelmente será banido por votação de outros.
Tipos de jogo tipo FNG
Tipos notáveis:
fng
(descontinuado, incompátível),
openfng
(
tópico
),
fng2
(
fonte
).
Nesse tipo de jogo, os jogadores são divididos em 2 times e o objetivo é ganhar fazendo mais pontos. Você marcará pontos ao acertar o jogador com um martelo ou arma laser (as únicas armas disponíveis), o que causará o congelamento, e lançá-los me estacas.
Configuração
As configurações são armazenadas em arquivos de texto simples no diretório inicial do usuário e podem ser aplicadas nas opções da GUI ou no console incorporado. Veja mais informações abaixo sobre este tópico.
Arquivo e diretório para configurações de usuário
O diretório
$HOME/.teeworlds/
armazena a configuração do usuário, demos (vídeos de jogo gravados), capturas de tela, mapas baixados e outros conteúdos do usuário.
O arquivo de configuração
settings_ddnet.cfg
é onde a configuração do usuário é armazenada, em um formato de texto simples em uma sintaxe apropriada. Este arquivo é carregado pelo cliente DDNet na inicialização e atualizado ao sair. Portanto, você não precisa definir suas configurações manualmente no arquivo de configuração. Para todas as configurações de cliente com suporte, consulte
Client Settings
.
O subdiretório
downloadmaps/
armazenará mapas baixados em tempo de execução pelo cliente DDNet ao se conectar a instâncias do servidor, se os mapas ainda não estiverem disponíveis.
Dica
Com
ddnet-maps-git
AUR
instalado, você evita ter que baixar mapas ao se conectar a instâncias de servidor.
Servidor
Embora um servidor DDNet local não seja necessário para jogar DDNet (Veja
#Jogar
), pode-se querer executá-lo para jogar sem conexão com a Internet, evitando alta latência ("ping" na interface do jogo) dos servidores na Internet, simplesmente deseja testar recursos, etc.
Para mais informações, veja
Server Features
,
Server Settings
,
Server Commands
e muito mais em
DDNet Forums
(todos em inglês).
Servidor por meio de serviço de systemd
Os pacotes de DDNet fornecem o arquivo unit
ddnet-server.service
de
systemd
para facilmente
iniciar
,
parar
etc. a instância de servidor.
Este arquivo unit executa a instância de servidor como o usuário de sistema
ddnet
a partir de sua própria pasta pessoal
/var/lib/ddnet/
como diretório de trabalho, tendo mensagens log disponíveis no arquivo
/var/lib/ddnet/autoexec_server.log
e via a linha de comando
journactl -u ddnet-server
do
journal do systemd
.
Suporte a MySQL
DDNet fornece suporte MySQL para armazenar registros obtidos no servidor, porém
não
está habilitado por padrão.
Para habilitar o suporte MySQL ao usar
ddnet
AUR
ou
ddnet-git
AUR
, simplesmente edite o
PKGBUILD
definindo a variável
_enable_mysql
para
1
, e as dependências adequadas serão adicionadas e os sinalizadores adequados serão habilitados.
Caso você esteja compilando DDNet manualmente (isto é, sem usar os pacotes acima), certifique-se de:
instalar as dependência de tempo de compilação
boost
e as dependências de tempo de execução
mariadb-libs
e
mysql-connector-c++
AUR
;
anexar
-DMYSQL=ON
à linha de comando do
cmake
.
Dica
Certifique-se de consultar
MariaDB
para algumas instruções pós-instalação para evitar problemas.
Executando um servidor com ddnet-maps-git
ddnet-maps-git
AUR
fornece mapas e configurações de servidor que permitem a execução de um servidor sem outras configurações. Para ter o servidor ativo:
Instale
ddnet-maps-git
AUR
Inicie/habilite
ddnet-server.service
Sua instância de servidor local agora deve estar disponível e visível na guia "LAN" do Cliente DDNet.
Ferramentas extras
Esta seção lista e descreve algumas ferramentas que, embora a maioria não precise delas, podem ser úteis para, por exemplo, mapeadores. Algumas dessas ferramentas são desenvolvidas pela equipe de desenvolvimento do DDNet, mas outras ferramentas foram herdadas do Teeworlds ao criar um fork do seu código-fonte no início.
As ferramentas abaixo são fornecidas em
/usr/lib/ddnet/
pelos pacotes DDNet.
config_retrieve
$ /usr/lib/ddnet/config_retrieve
arquivomapa.map
Recupera a configuração incorporada no arquivo de mapa DDNet e armazena em um .cfg com o mesmo nome de arquivo (por exemplo, "Kobra 4.map" retorna "Kobra 4.cfg")
Disponível desde DDNet versão 9.0.
config_store
$ /usr/lib/ddnet/config_store
arquivomapa.map
Armazena um arquivo de configuração de mapa no arquivo de mapa. Os arquivos de configuração e de mapa devem ter o mesmo nome de arquivo no mesmo diretório, caso contrário, a operação falhará.
Disponível desde DDNet versão 9.0.
Nota
Se não houver diferença entre a configuração a ser armazenada e a configuração embutida no mapa, a operação será cancelada com a mensagem
configs coincide, not updating map
.
crapnet
$ /usr/lib/ddnet/crapnet
Testa a conexão definindo uma conexão cliente-servidor localmente e executando ping entre eles. Relata pacotes perdidos com mensagem
dropped packet
e sucessos com
cfg =
número
, sendo que
número
varia de 0 a 2.
dilate
$ /usr/lib/ddnet/dilate
arquivoimagem1
[
arquivoimagem2
... ]
É uma ferramenta gráfica, útil principalmente para mapeadores. Ela cuida das áreas transparentes para evitar contornos em preto/branco ao redor de suas imagens no jogo, evitando assim problemas de mesclagem e mipmap. Veja
Edge padding
("Preenchimento de borda") para mais informações.
Nota
Isso funciona apenas em arquivos de imagem RGBA. Portanto, não funcionará, por exemplo, em arquivos JPEG.
dummy_map
$ /usr/lib/ddnet/dummy_map
Cria um pequeno mapa vazio fictício para ser usado para iniciar um servidor. Veja
[3]
para mais informações.
fake_server
$ /usr/lib/ddnet/fake_server
Cria um servidor fictício para teste.
map_convert_07
$ /usr/lib/ddnet/map_convert_07
arquivomapaorigem.map
arquivomapadestino.map
Torna
arquivomapadestino.map
compatível com Teeworlds versão 7.x que de outra forma seria compatível
apenas
com Teeworlds versão 6.x. Se for bem-sucedido, ele cria um mapa de destino compatível com 07 válido; caso contrário, ele retorna o seguinte:
uma mensagem de uso, se argumentos incorretos forem fornecidos
failed to open source map
se ocorrer um erro ao abrir o mapa de origem
failed to open destination map
se ocorrer um erro ao abrir o mapa de destino
error loading storage
se falhar em abrir o armazenamento por algum motivo
failed to open image file
se ocorrer um erro ao abrir uma imagem PNG
invalid image format
se o PNG estiver incorretamente formatado
Disponível desde o DDNet versão 12.9.
map_diff
$ /usr/lib/ddnet/map_diff
arquivomapa1.map
arquivomapa2.map
Compara dois arquivos de mapa, relatando um dos seguintes:
sem saída comparativa (mapas são iguais)
different layer numbers
, se um mapa tem mais camadas do que o outro
different tile layers
, se o número de camadas for o mesmo, mas pelo menos uma camada for diferente
por fim, as posições de índice e sinalizadores que divergem.
Se houver nenhuma diferença entre os mapas, retorna 0; do contrário, retorna 1.
map_extract
$ /usr/lib/ddnet/map_extract
arquivomapa.map
[
diretório
]
Extrai conteúdo de
arquivomapa.map
para o
diretório
. Se o argumento opcional
diretório
não for fornecido, extrai para o diretório atual.
map_replace_image
$ /usr/lib/ddnet/map_replace_image
arquivomapa1.map
arquivomapa2.map
nomeimagem
arquivoimagem
Substitui a imagem
nomeimagem
atualmente dentro do mapa com nome de arquivo
arquivoimagem1.map
com a imagem de caminho de arquivo
arquivoimagem
e salva isso no mapa com nome de arquivo
arquivomapa2.map
.
Nota
Ambos nomes de arquivos de mapa devem ser relativos à pasta de usuário padrão do DDNet
Nome do caminho de arquivo de imagem pode ser absoluto, ou relativo à posição atual
map_resave
$ /usr/lib/ddnet/map_resave
arquivomapa.map
arquivoimagem
Atualizar o arquivo de mapa
arquivomapa.map
com o arquivo fornecido
arquivoimagem
.
O erro de status 255 é retornado se 1) um número de argumentos diferente de 2 foi fornecido, 2) se o
arquivomapa.map
não é válido ou 3) se
arquivoimagem
não é um arquivo de imagem válido (por exemplo, é um arquivo texto); do contrário, retorna 0.
packetgen
$ /usr/lib/ddnet/packetgen
Gera pacotes de rede para localhost na porta padrão (8303) para testar a comunicação com uma instância de servidor local.
tileset_borderadd
$ /usr/lib/ddnet/tileset_borderadd
tileset1
[
tileset2
...]
É uma ferramenta gráfica, útil principalmente para mapeadores. Ela corrige problemas de mesclagem, semelhantes a
#dilate
, mas se aplica apenas a arquivos de tileset ("conjuntos de blocos"). Ele espera, como entrada, tilesets com um tamanho de 960x960 pixels com 60x60 blocos. Depois de aplicar a operação borderadd, a imagem será de 1024x1024 com blocos 64x64 com uma borda de 2px.
Retorna 255 com uma mensagem de uso se menos de 1 argumento for fornecido, retorna 1 se a imagem não for uma imagem RGBA (ou seja, arquivo de tileset inválido) e retorna 0 para operação bem-sucedida.
tileset_borderfix
$ /usr/lib/ddnet/tileset_borderfix tileset1 [tileset2 ...]
Assim como
#tileset_borderadd
, esta é uma ferramenta gráfica, útil principalmente para mapeadores, que corrige problemas de mesclagem de tilesets. Porém, esta ferramenta espera, como entrada, tilesets com um tamanho de 1024x1024 pixels e não produz imagens de saída tão boas quanto tileset_borderadd. Por exemplo, ela não adiciona uma borda de 2px.
Retorna 255 com uma mensagem de uso se menos de 1 argumento for fornecido, retorna 1 se a imagem não for uma imagem RGBA (ou seja, arquivo de tileset inválido) e retorna 0 para operação bem-sucedida.
tileset_borderrem
$ /usr/lib/ddnet/tileset_borderrem tileset1 [tileset2 ...]
Esta é uma ferramenta gráfica, útil principalmente para mapeadores. Ela faz a operação inversa de
#tileset_borderadd
e
#tileset_borderset
, isto é, ela remove a borda de tilesets.
Retorna 255 com uma mensagem de uso se menos de 1 argumento for fornecido, retorna 1 se a imagem não for uma imagem RGBA (ou seja, arquivo de tileset inválido) e retorna 0 para operação bem-sucedida.
tileset_borderset
$ /usr/lib/ddnet/tileset_borderset tileset1 [tileset2 ...]
Esta é uma ferramenta gráfica, útil principalmente para mapeadores. Ela faz praticamente o mesmo que
#tileset_borderadd
, mas espera imagens 1024x1024 em vez de 960x960, e a borda é feita na hora. Então, cada bloco 60x60 deve ser colocada dentro de um bloco 64x64.
Retorna 255 com uma mensagem de uso se menos de 1 argumento for fornecido, retorna 1 se a imagem não for uma imagem RGBA (ou seja, arquivo de tileset inválido) e retorna 0 para operação bem-sucedida.
unicode_confusables
$ /usr/lib/ddnet/unicode_confusables
string1
string2
Compara
string1
com
string2
e relata se elas são "confundíveis", ou seja, se os caracteres são "iguais" e podem causar confusão. Para que isso funcione, os personagens com acentos ou outras coisas ao seu redor são considerados "confundíveis" com o personagem base. Portanto,
aa
e
aá
são confundíveis (
á
foi considerado como
a
), enquanto
aa
e
ab
não são.
Se forem confundíveis, retorna
not_confusable=0
; caso contrário, retorna
not_confusable=1
.
Disponível desde DDNet versão 10.3.5. Desde DDNet versão 12.9, tem suporte a Unicode 12.0 e o nome da ferramenta foi renomeado de
confusables
para
unicode_confusables
.
uuid
$ /usr/lib/ddnet/uuid
nome
Exibe o uuid para o
nome
fornecido.
O sistema uuid foi implementado para ser facilmente estendido por autores independentes sem colisões, algo que o sistema antigo — com números inteiros crescentes — não permitia. Isso funciona para mensagens do motor e do jogo, itens de instantâneos e eventos.
Sai com status de erro 255 se
nome
não for fornecido.
Disponível desde DDNet 10.6.1
Solução de problemas
Compilação falhou, MYSQL_CPPCONN_INCLUDEDIR e MYSQL_CPPCONN_LIBRARY não encontrados
Problema:
A compilação falha e a seguinte mensagem é exibida:
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
/build/ddnet/src/DDNet-11.1.9/MYSQL_CPPCONN_INCLUDEDIR
   used as include directory in directory /build/ddnet/src/DDNet-11.1.9
   [...]
   used as include directory in directory /build/ddnet/src/DDNet-11.1.9
MYSQL_CPPCONN_LIBRARY
    linked by target "DDNet-Server" in directory /build/ddnet/src/DDNet-11.1.9

-- Configuring incomplete, errors occurred!
See also "/build/ddnet/src/build/CMakeFiles/CMakeOutput.log".
See also "/build/ddnet/src/build/CMakeFiles/CMakeError.log".
Solução:
Significa que sua linha de comando do
cmake
tem o sinalizador
-DMYSQL=ON
definido, você tem o pacote
mariadb-libs
instalado, mas
mysql-connector-c++
AUR
está faltando.
Instale
mysql-connector-c++
AUR
para compilar com suporte MySQL ou remova
-DMYSQL=ON
(ou desative com
-DMYSQL=OFF
) para compilar sem ele.
Compilação falhou, arquivo boost/shared_ptr.hpp inexistente
Problema:
A compilação falha e a seguinte mensagem é exibida:
[ 38%] Building CXX object CMakeFiles/DDNet-Server.dir/src/engine/server/server.cpp.o
In file included from /build/ddnet/src/DDNet-11.1.9/src/engine/server/sql_server.h:4,
                 from /build/ddnet/src/DDNet-11.1.9/src/engine/server/sql_connector.h:4,
                 from /build/ddnet/src/DDNet-11.1.9/src/engine/server/server.h:28,
                 from /build/ddnet/src/DDNet-11.1.9/src/engine/server/server.cpp:40:
/usr/include/mysql_connection.h:31:10: fatal error: boost/shared_ptr.hpp: No such file or directory
 #include <boost/shared_ptr.hpp>
          ^14:06, 19 June 2018 (UTC)14:06, 19 June 2018 (UTC)14:06, 19 June 2018 (UTC)14:06, 19 June 2018 (UTC)~
compilation terminated.
make[2]: *** [CMakeFiles/DDNet-Server.dir/build.make:116: CMakeFiles/DDNet-Server.dir/src/engine/server/server.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:281: CMakeFiles/DDNet-Server.dir/all] Error 2
make: *** [Makefile:152: all] Error 2
Solução:
Significa que sua linha de comando do cmake tem o sinalizador
-DMYSQL=ON
definido, você tem os pacotes
mariadb-libs
e
mysql-connector-c++
AUR
instalados, mas
boost
está faltando.
Instale
boost
para compilar com suporte MySQL ou remova
-DMYSQL=ON
(ou desative com
-DMYSQL=OFF
) para compilar sem ele.
Veja também
Site oficial do DDNet
Fórum do DDNet
Wiki do DDNet
Repositório de código-fonte do DDNet
A história do DDNet
(inglês)
Tutoriais e outros links úteis
(inglês)