DDRaceNetwork
DDNet は武器類と協力ゲームプレイが特徴の人気のサイドスクロールプラットフォームゲームで、Teeworlds の mod です。ゲームの名前は Dummy Drag Race Network に由来しており、DDRace がベースです。
公式ウェブサイトの ddnet.tw より:
- DDraceNetwork (DDNet) は活発に開発されている DDRace のバージョンのひとつです。Teeworlds にユニークな協力ゲームプレイの改造が加えられています。最大64人のプレイヤーが協力してカスタムマップをプレイしたり、世界の強豪たちと競い合うことができ、マップを自分で作成したりサーバーを立ち上げることができます。公式サーバーはドイツ・ロシア・アメリカ・カナダ・中国・チリ・ブラジル・南アフリカに存在します。公式サーバーのランクは世界共通で獲得したポイントで順位が付けられます。
キーボードとマウスを使って丸っこい 2D キャラクターの tee を操作し、武器を発射したりワイヤーで移動・ジャンプして他のプレイヤーと一緒にマップの中のフィニッシュラインを目指します。
DDNet はクライアントサーバーモデルで動作し、ユーザーはクライアントを使ってローカルまたはリモートのサーバーに接続してプレイします。DDNet には公式サーバーが存在するため、オンラインで遊ぶときに必要なのはクライアントだけです。
インストール
ddnetAUR パッケージをインストールしてください。また、開発版は ddnet-gitAUR パッケージでインストールできます。
スキン
ddnet-skinsAUR パッケージをインストールしてください。
上記のパッケージには DDNet Skin Database の全てのスキンが含まれており、多数のスキンの中から好きな tee キャラクターを選ぶことができます。スキンで変わるのは見た目だけでゲームプレイには影響しません。
パッケージのスキンは /usr/share/ddnet/data/skins/
にインストールされます。
他のプレイヤーもスキンをインストールしていないと、あなたが選んだスキンは表示されないので注意してください。インストールしていない場合、他のプレイヤーからはデフォルトの黄色のキャラクターが表示されます。
オフラインマップ
ddnet-maps-gitAUR パッケージをインストールしてください。
パッケージには ddnet-maps リポジトリ の全てのマップが含まれており、オフラインの DDNet サーバーを立てるためのデフォルト設定ファイルが付属します。インストールすることで、オフラインサーバーの実行が楽になります。
オフラインでマップをインストールすることにはクライアントとサーバー双方に利益があります:
- クライアントは既にインストールされているマップをダウンロードする必要がなくなります。インストールされているマップの新しいバージョンがある場合や新しいマップだけユーザーディレクトリにダウンロードされます (#ユーザー設定を参照)。
- サーバーはマップの設定を作成しなくてもパッケージに提供されているマップと設定ファイルを使うことができます。詳しくは#サーバーを見てください。
プレイ
DDNet を遊ぶには以下のコマンドを実行:
$ DDNet
もしくはパッケージに含まれている .desktop
ファイルを実行してください (例えば GNOME であればアクティビティの概要で "ddnet" を検索してください)。
遊ぶのはとても簡単です。全てのユーザー設定 (スキンの選択やビデオ・コントロールの設定) は DDNet クライアントの GUI から行うことができます。
サーバーの設定は必要ありません。ローカルサーバーを設定したい場合は#サーバーを見てください。
さらに、追加ツールが /usr/share/ddnet/tools/
に存在します。#追加ツールを見てください。
ゲームタイプ
このセクションでは DDNet のいくつかのゲームタイプの名前と簡単な説明を記載します。
DDNet ゲームタイプ
以下は DDNet がサポートしているゲームタイプで、DDNet のマップリポジトリに保存されています。そして、リポジトリに追加される前にテストスタッフによってテストされていることを意味します。
特に表記がないかぎり、配置された障害物を乗り越えて他のプレイヤーと協力してフィニッシュラインに達することがマップの目標になります。
- novice – 一番簡単な協力マップ。初心者向け。
- moderate – 中級者向けの適度なレベルの協力マップ。
- brutal – 上級者向けの難しい協力マップ。
- insane – 熟練者向けの非常に難しい協力マップ。
- solo – マップをひとりでプレイします。他のユーザーのダミーや干渉はありません (他のプレイヤーとチャットすることはできます)。
- ddmax – DDracemaX のマップ。最初のレース mod のひとつで非常に人気があります。プロジェクトが終了したため、DDNet が開発を引き継ぎ、公式サーバーからマップを遊べるようになっています [1]。詳しくは [2] を参照。
- dummy – ダミーをフィニッシュラインまで移動させます。マップによって協力したりソロでプレイします。
- oldschool – 往年のプレイヤーに懐かしさを感じさせる古いマップ。
- race – ソロランと同じ速度でフィニッシュラインを目指します。
Vanilla ゲームタイプ
いわゆる vanilla ゲームタイプは Teeworlds で作られた最初のゲームタイプで、DDNet でもサポートされています。
- dm (deathmatch) – 特定のスコアに達するか時間切れまで、できるかぎり多くの敵プレイヤーを倒すのが目標です。
- tdm (team deathmatch) – 目標はデスマッチと同じですが、プレイヤーは2つのチームに分かれて戦います。
- ctf (capture the flag) – 2つのチームが敵の旗を奪うことでスコアが入ります。特定のスコアに達するか、時間切れでスコアが高いチームが勝利します。
Blocker ゲームタイプ
Blocker は他のプレイヤーをフリーズエリアに追いやって他のプレイヤーを止めることが目標です。スコアやタイムリミットは存在せず、あったとしても意味を持ちません。
blocker ゲームタイプではブロッカーになることが当然求められますが、同じことは #DDNet ゲームタイプには適用されません。しつこく他のプレイヤーをブロックすると ban されることになるでしょう。
FNG-like ゲームタイプ
次のタイプが存在します: fng (開発は終了しており、遊べません), openfng (スレッド), fng2 (ソース)。
FNG ゲームタイプでは、プレイヤーは2つのチームに分かれてより多くのポイントを得ることで勝利します。ハンマーやレーザーガンをプレイヤーにあてて、凍ったところをトゲに投げ込むことでポイントが得られます。
設定
このセクションでは設定ファイル・ディレクトリと使用方法について説明します。
ユーザー設定
$HOME/.teeworlds/
ディレクトリにはユーザー設定・デモ・スクリーンショット・ダウンロードしたマップ・その他ユーザーコンテンツが保存されます。
コンフィグファイル settings_ddnet.cfg
にはユーザーの設定がシンプルなテキスト形式で保存されます。クライアントは起動時にこのファイルをロードし、終了時に更新します。設定ファイルを手動で設定する必要はありません。クライアントの設定について詳しくは Client Settings を見てください。
サブディレクトリの downloadedmaps/
にはサーバーインスタンスに接続したときに DDNet クライアントがダウンロードしたマップが保存されます。
サーバー
友達と遊んだりテスト用に LAN にローカルサーバーを立てたい場合、以下の手順に従ってください。
MySQL サポート
DDNet パッケージにはサーバーのバイナリが含まれていますが、MySQL のサポートは無効になっています。MySQL のサポートを有効化したい場合 PKGBUILD を編集してください:
- depends() 配列に mariadb と mysql-connector-c++AUR を追加
- cmake コマンドラインに
-DMYSQL=ON
を追加
サーバーのセットアップ
サーバーを作るには DDNet をインストールして、設定ファイルとマップが必要です。
ddnet-maps-gitAUR パッケージをインストールしてください。
そして、パッケージに含まれている .desktop
ファイルを使ってサーバーを起動するか (例えば GNOME ならアクティビティオーバービューで "ddnet server" を検索)、以下のコマンドを実行:
$ DDNet-Server
サーバーインスタンスが立ち上がり、クライアントの LAN サーバータブから認識するようになるはずです。
追加ツール
以下のツールは /usr/share/ddnet/tools/
に入っています。
config_retrieve
$ /usr/share/ddnet/tools/config_retrieve mapfile.map
DDNet マップファイルに埋め込まれている設定を抽出して同じファイル名の .cfg として保存します (例: "Kobra 4.map" からは "Kobra 4.cfg" が出力されます)。
config_retrieve は DDNet バージョン 9.0 から利用できます。
config_store
$ /usr/share/ddnet/tools/config_store mapfile.map
マップの設定ファイルの設定をマップファイルに保存します。設定ファイルとマップファイルは同じディレクトリで同じファイル名にしないと操作が失敗します。
config_store は DDNet バージョン 9.0 から利用できます。
confusables
$ /usr/share/ddnet/tools/confusables string1 string2
string1 と string2 を比較して紛らわしいかどうか報告します。キャラクターが同じで混乱を招きかねないかどうかを判断します。ベースのキャラクターと比べてアクセントなどが考慮されます。aa と aá は紛らわしいとされますが (á は a と同じと判断されます)、aa と ab は紛らわしいとはされません。
紛らわしい場合、not_confusable=0
が返され、そうでない場合は not_confusable=1
が返ります。
confusables は DDNet バージョン 10.3.5 から利用できます。
crapnet
$ /usr/share/ddnet/tools/crapnet
クライアントサーバー接続をローカルで設定して ping を実行することで接続をテストします。破棄されたパケットは dropped packet
というメッセージが、成功したパケットは cfg = number
というメッセージが表示されます (number は 0 から 2 の値になります)。
dilate
$ /usr/share/ddnet/tools/dilate imagefile1 [imagefile2 ... ]
マップ作成者のためのグラフィカルツールです。ゲーム内の画像のまわりに白黒の縁が表示されないように透過領域を処理し、ブレンド・ミップマップ問題を避けることができます。詳しくは Edge padding を見てください。
dummy_map
$ /usr/share/ddnet/tools/dummy_map
サーバーを起動するためのダミーの小さな空のマップを作成します。詳しくは [3] を参照。
fake_server
$ /usr/share/ddnet/tools/fake_server
テスト用に疑似サーバーを作成します。
map_diff
$ /usr/share/ddnet/tools/map_diff mapfile1.map mapfile2.map
2つのマップファイルを比較して、以下のどれかを報告します:
- 差分出力なし (マップは同じです)
different layer numbers
(マップのレイヤーの数が異なる場合)different tile layers
(レイヤーの数は同じだが、異なるレイヤーがある場合)- 異なるインデックスとフラグの位置
マップに違いがない場合、0 が返ります。違いがある場合は 1 です。
map_extract
$ /usr/share/ddnet/tools/map_extract mapfile.map [directory]
mapfile.map の中身を directory に抽出します。任意の引数 directory を指定しなかった場合、カレントディレクトリに抽出されます。
map_replace_image
$ /usr/share/ddnet/tools/map_replace_image mapfile1.map mapfile2.map imagename imagefile
Replaces the image imagename currently inside the map filename mapfile1.map with the image filepath imagefile, and save into the map filename mapfile2.map.
map_resave
$ /usr/share/ddnet/tools/map_resave mapfile.map imagefile
Updates the map file mapfile.map with the provided file imagefile.
The error status 255 is returned if 1) a number of arguments different from 2 is provided, 2) if the mapfile.map is not valid, or 3) if imagefile is not a valid image file (e.g. it is a text file); otherwise, return 0.
packetgen
$ /usr/share/ddnet/tools/packetgen
Generates packets to localhost in default port (8303) to test communication with a local server instance.
tileset_borderadd
$ /usr/share/ddnet/tools/tileset_borderadd tileset1 [tileset2 ...]
It is a graphical tool, mainly useful for mappers. It fixes blending issues, similar to [#dilate], but only applies to tileset files. It expects as input tilesets with a size of 960x960 pixels with 60x60 tiles. After you apply the borderadd operation, the image will be 1024x1024 with 64x64 tiles with a 2px border.
Returns 255 with a usage message if less than 1 argument is provided, returns 1 if the image is not a RGBA image (i.e. invalid tileset file), and return 0 for success operation.
tileset_borderfix
$ /usr/share/ddnet/tools/tileset_borderfix tileset1 [tileset2 ...]
Similarly to #tileset_borderadd, it is a graphical tool, mainly useful for mappers, that fix blending issues by tilesets. However, this tool expects an input file with 1024x1024 pixels and does not produce output images as great as tileset_borderadd. e.g. it does not add 2px border.
Returns 255 with a usage message if less than 1 argument is provided, returns 1 if the image is not a RGBA image (i.e. invalid tileset file), and return 0 for success operation.
tileset_borderrem
$ /usr/share/ddnet/tools/tileset_borderrem tileset1 [tileset2 ...]
This is a graphic tool, mainly useful for mappers. It does the inverse operation of #tileset_borderadd and #tileset_borderset, i.e. this remove border of tilesets.
Returns 255 with a usage message if less than 1 argument is provided, returns 1 if the image is not a RGBA image (i.e. invalid tileset file), and return 0 for success operation.
tileset_borderset
$ /usr/share/ddnet/tools/tileset_borderset tileset1 [tileset2 ...]
This is a graphic tool, mainly useful for mappers. It does pretty much the same as #tileset_borderadd but expects 1024x1024 images instead of 960x960, and the border will be done in place. So each 60x60 tile should be placed inside a 64x64 tile.
Returns 255 with a usage message if less than 1 argument is provided, returns 1 if the image is not a RGBA image (i.e. invalid tileset file), and return 0 for success operation.
uuid
$ /usr/share/ddnet/tools/uuid name
指定された name の uuid を出力します。
The uuid system was implemented to be easily extended by independent authors without collisions, something that the old system – with increasing integers – did not allow. This works for engine and game messages, snapshot items and events.
Exits with error status 255 if name is not provided.
uuid は DDNet バージョン 10.6.1 から利用できます。