Играем в Linux – netPanzer

9 Янв
2008

Игра netPanzer (http://netpanzer.berlios.de) относится к тактическим он-лайн многопользовательским играм, спроектированная для игры через Интернет, по локальной сети. Возможно, также играть при соединении двух компьютеров на прямую. В этой игре не надо собирать ресурсы вы получаете некоторое количество техники и сразу вступаете в бой, захватывая территорию противника. Если вся техника потеряна, она снова появится и битва будет продолжена. В Интернет можно найти несколько серверов, на которых идут горячие баталии, количество игроков может достигать 100, а количество техники у каждого нескольких десятков. Доступны три вида баталий: захват объектов, frag limit и time limit. Разработки netPanzer начаты в 1999 году, с 2002 года он выпускается под лицензией GNU GPL. Кроме основного сайта проекта есть общество netPanzer, официальный сайт которого располагается по адресу http://www.netpanzer.org.

Установка netPanzer

Судя по информации на сайте проекта пакеты с netPanzer можно найти в репозитариях

дистрибутивов Linux (Debian, Gentoo, Mandriva, PLD Linux). Если вашего дистрибутива в этом списке нет, то можно скачать пакет x86 Linux Installer, скомпилировать используя исходные тексты, доступен и архив svn. Пользователи других систем в стороне тоже не останутся, имеются также версии и для Windows, Mac OS X. В отдельном архиве download.berlios.de/netpanzer/netpanzer-music.zip (32 Мб) есть дополнительные звуки. Хотя можно использовать и свои файлы в формате mp3, ogg или mod. Смотрим, что есть в KUbuntu:

$ sudo apt-get update

$ sudo apt-cache search netpanzer

netpanzer – online multiplayer tactical warfare game

netpanzer-data – data files for the netPanzer game

Как видите все необходимое уже подготовлено, нам остается его только установить.

$ sudo apt-get install netpanzer netpanzer-data

В меню KDE закладка netpanzer, после установки не появилась, но это не страшно, те кому лень набивать название в консоли могут сделать это вручную. Заходим в «Системные-Редактор меню» или вызываем его из консоли.

$ kmenuedit

Заходим в меню «Игры» щелчком правой кнопки мышки по заголовку вызываем контекстное меню, в котором выбираем пункт «Новый элемент». Вводим название нового элемента «Netpanzer» и нажимаем OK. Новый элемент появится в меню. Теперь приступаем к редактированию его параметров. Выбираем значок, поле Имя оставляем как есть, «Описание» и «Комментарий» по желанию, а в «Команда» необходимо указать команду запуска приложения, желательно полный путь. Узнать где находится программа, можно с помощью утилиты whereis.

$ whereis netpanzer

netpanzer: /usr/games/netpanzer /usr/share/man/man6/netpanzer.6.gz

Вот и вся установка.

В бой

Запускаем netPanzer, появится главное окно программы. В бой пока еще рано, необходимо сначала разобраться с настройками. Выбираем Options, здесь несколько вкладок. Зайдя в Visuals, настраиваем разрешение (Resolution), размер юнитов (Mini map Unit Size). Флажок Fullscreen отвечает за запуск игры в полноэкранном режиме, а Draw All Shadows и Blend Smoke отвечают за вывод спецэффектов. В Interface один параметр – Scroll Rate, отвечающий за скорость прокручивания. Вот собственно и все. Для соединения с игровым сервером выбираем Multiplayer. Есть несколько вариантов выбора игрового сервера. Для контроля доступных используется так называемый Master Server с которого можно получить требуемые адреса. Поэтому можно перейти в следующее окно и выбрать сервер из списка (поиск займет некоторое время), если сервер установлен в локальной сети, можно сразу ввести его IP-адрес при запуске.

$ netpanzer -c ip_адрес_сервера

По адресу www.netpanzer.info/games.php можно найти список серверов, кроме того, для ручного поиска серверов можно использовать утилиту qstat.

Список серверов

Также разработан php скрипт «netPanzer – Browser» (http://developer.berlios.de/project/showfiles.php?group_id=1250&release_id=4745). Его можно поместить на своем сервере и отслеживать доступные серверы netPanzer. Его рабочий вариант доступен по адресу netpanzer.n-d-m.net/index.php.

На момент написания статьи изменился IP-адрес и имя Master сервера на netpanzer.selfip.net. Поэтому при попытке соединиться с ним, в лог файле (~/.netpanzer/log.txt) появилась такая запись.

Problem querying masterserver: Couldn’t connect to ‘193.138.229.12′ port 28900: Connection refused.

No success querying masterserver.

Чтобы не мучиться с настройками, скачиваем готовый файл настроек www.netpanzer.info/data/netpanzer.ini и помещаем его в домашний каталог пользователя ~/.netpanzer/config. После этого перезапускаем игру.

Если соединиться с мастер севером все равно не получается, адреса можно найти и на http://www.netpanzer.info/alternative_adresses.php

И вот удалось найти один из серверов. Может возникнуть ситуация, когда вы вроде подключаетесь, но в игру попасть не можете, хотя место в игре еще есть. Смотрим в логи.

Lobby: Link to Server Established

Lobby: Protocol Version: 1019

Lobby: Connecting …

Error while loading map ‘Crop Circles’: Error while reading mapfile ‘maps/Crop Circles.npm’: couldn’t open file ‘maps/Crop Circles.npm’ for reading: No such file or directory

Lobby: MAP Crop Circles NOT FOUND!

Trying to join server ‘84.131.101.179′

Это означает, что у вас нет нужной карты. Проблема решается просто, скачиваем файл http://tutorium.tu.funpic.de/netpanzer/maps/maps.rar. Для распаковки rar архива в KUbuntu требуется дополнительно установить пакет unrar.

$ sudo apt-get install unrar

Переходим каталог /usr/share/games/netpanzer/maps

$ cd /usr/share/games/netpanzer/maps

И распаковываем архив.

$ sudo unrar e /home/grinder/source/maps.rar

Пробуем еще раз зайти в игру. Теперь все нормально. Сам процесс игры вообщем то прост. Вам дается несколько бронемашин различного назначения, с их помощью требуется победить.

Бой

Краткое описание юнитов приведено на netpanzer.berlios.de/units.html.
Для перемещения по карте используйте клавиши со стрелками, а для указания целей и направления движения мышку. Можно объединять юнитов в группы, для этого нажимаем Shift (или Ctrl) и обозначаем щелчком левой кнопки юнитов. Затем определяем его в группу, нажав Ctrl и цифры от [0...9]. Вызов группы производится нажатием на соответствующую цифру. Список параметров доступен по клавише F1. Для того чтобы захватить базу требуется зайти в кружок внутри, слева экрана появится надпись, о том, что “Jouf’ has been occupied by ‘grinder’”. Следует помнить, что это все-таки тактическая игра, в лоб противника не победить. Требуется скорость и маневр. Легкие танки передвигаются быстро, но также быстро и погибают. Тяжелые способны продержаться некоторое время под шквальным огнем, хотя тащатся как черепахи. Ракетницы способны быстро передвигаться, бьют далеко, но, увидев рядом танк противника лучше убрать ее куда подальше.

Утилита flexlay

Любая игра может быстро приесться, если не привязать чем-то пользователей. Одним из вариантов является возможность самому поучаствовать в создании игры. Для создания новых карт в netPanzer есть специальная утилита – Flexlay. Ее можно скачать после регистрации на сайте комюнити. Далее следует распаковать архив в домашний каталог.

$ tar -jxvf netpanzer-flexlay.tar.bz2

Теперь заходим в каталог netpanzer-flexlay/netpanzer и в файле netpanzer.rb в переменной datadir (54 линия) уточняем путь к каталогу с данными в Kubuntu и SUSE это /usr/share/games/netpanzer.

$ datadir = «/usr/share/games/netpanzer»

$ sudo chown -R grinder /usr/share/games/netpanzer

И запускаем.

$ ./netpanzer-editor

Пользоваться ей очень просто. Перед вами появляется новая карта, справа размещены объекты необходимо их перетащить на карту.

Устанавливаем сервер

Сервер входит в комплект игры. Точнее исполняемый файл имеет специальную опцию указывающую, что нужно работать в качестве сервера. Для настройки сервера потребуется файл netpanzer-dedicated.ini, готовый шаблон можно скачать с www.netpanzer.info/data/netpanzer-dedicated.ini. После чего скопировать в каталог ~/.netpanzer/config. Если этого файла не будет, сервер запустится и остановится, так как не будет знать, чем ему собственно заниматься. Сервер будет работать с параметрами, установленными в файле по умолчанию. Те, кто в Linux не первый день, разберутся с настройками внутри без труда, большинство параметров легко понять по контексту. Расскажу лишь о некоторых из них:

- serverport – порт, на котором сервер принимает TCP и UDP соединения (по умолчанию 3030);

- bindaddress – IP- адрес, на котором сервер будет слушать клиентов (по умолчанию на всех интерфейсах);

- logging – ведение журнала, в котором будет сохраняться статистики битв (yes/no по умолчанию no);

- public – регистрация на Master Server, чтобы ваш сервер появился в списке доступных по умолчанию yes, если планируется игра только в LAN установите в no;

- maxplayers – максимальное количество игроков (по умолчанию 8);

- mapcycle – список карт через запятую, которые будет использовать сервер (Cramped, Tight Quarters, Two Villages»);

- maxunits – максимальное число юнитов у всех игроков (500), у каждого игрока будет maxplayers/maxunits танков;

- gametype тип игры – 0=Objectives, 1=FragLimit, 2=TimeLimit (по умолчанию 0);

- timelimit – лимит времени при gametype = 2 в минутах (по умолчанию 50 минут)

- fraglimit – ограничение фрагов в gametype=1 (500);

Для тренировок в отсутствии оппонентов можно использовать ботов. Дерутся они довольно хорошо, и на первых порах сражаться с ними будет трудно. Для их запуска следует добавить параметр -b и имя сервера. Итак, вперед.

Запускаем сервер.

$ netpanzer -d &

Добавляем двух ботов.

$ netpanzer -b localhost &

$ netpanzer -b localhost &

И сами входим в игру.

$ netpanzer -c localhost


Вот и все. Больших побед. Linux forever!

2 Комментариев к Играем в Linux – netPanzer

Аватар

prince

Май 16th, 2008 | 10:13

я не геймер но игра мне очень понравилась -достаточно сильные боты! да и спрайты нарисованы очень хорошо

Аватар

Олег

Июнь 4th, 2009 | 19:49

Ужасное описание, ошибки и несвязно в целом.

Комментировать

Наверх