на главную
об игре

Создание сервера

Для создания сервера нужно:

  1. Развернутый комплект игры версии 1,96 (можно скопировать действующую игру, а не устанавливать заново на сервере).
  2. Файл выделенного сервера:

Файл(ы) запуска выделенного сервера нужно скопировать в корневую директорию игры.
Сервер конфигурируется 3 файлами:

  1. Flashpoint.cfg глобальные установки, производительность, размер памяти и т.д.
  2. UserInfo.cfg режимы и игровые настройки самого сервера ОФП и т.д.
  3. Sample.cfg или server.cfg пароли, список карт, название сервера и т.д.

В значении параметров, применяемые в конфигурационных файлах, при пунктуации символы < и > опустить.

Flashpoint.cfg

Что из себя он представляет - приведу пример файла, предоставленного BIS. Ваши значения параметров в этом файле могут отличаться, так как данный файл является по сути ini-файлом, создаваемым с помощью программы преднастройки (FlashpointPreferences.exe), выполняемой при первом запуске ОФП обязательно и далее по необходимости.

Light_Explo="1";
Cloudlets="1";
Cockpit_Textures="64";
Limit_LOD="0.019";
CPU_Benchmark="1145";
3D_Performance="1145";
Frame_Rate_Pref="500";
VehShadows="1";
File_Heap="8";
Object_Textures="2048";
HW_Type="Direct3D";
MaxObjects="256";
Shadows="0";
Language="English";
Quality_Pref="500";
Resolution_W="1024";
Adapter="0";
Texture_Heap="8";
Resolution_Bpp="32";
Resolution_H="768";
Reflections="1";
MaxLights="12";
Sky="1";
Animated_Textures="128";
Light_Missile="1";
Landscape_Textures="2048";
Textures_Drop_Down="4";
Shadows_LOD="0.050";
LOD="7.500";
Total_Memory="128 MB";
Light_Static="1";


Это базовые параметры для запуска игры. На самом деле большинство из них (как то: разрешение экрана, регулирование теней, установки языка и т.п.) имеют значение только для клиентской версии ОФП, сервер просто не считывает их, но очень рекомендуется здесь ничего не трогать.
Единственный важный тут параметр, это

  • Total_Memory="128 MB";

Соответственно, если объем памяти у вас больше указанного, внесите исправления в соответствии с действительным количеством. Если вам все-таки захотелось более точных параметров, то рекомендуется на сервере, перед запуском, осуществить конфигурацию с помощью FlashpointPreferences.exe. Именно этот .ехе отвечает за конфигурирование файла Flashpoint.cfg. В этом случае все настройки можно отредактировать адекватно именно тому компьютеру, который планируется использовать как сервер ОФП. Дополнительно к базовым параметрам существует возможность тюнинговой настройки, в основном связанной с настройкой сервера в соответствии с имеющимся подключением к интернет.

  • MaxMsgSend=<limit>; - максимальное число сообщений, которые могут быть переданы за 1 цикл. Увеличение может уменьшить лаг, но только на сервере с большим аплоадом. По умолчанию: 128.
  • MaxSizeGuaranteed=<limit>; - максимальный размер гарантированного пакета в байтах, без заголовка. Маленькие сообщения в пакете увеличивают скорость сервера. Используются для не повторения события убийства. По умолчанию: 512.
  • MaxSizeNonguaranteed =<limit>; - максимальный размер негарантированного пакета в байтах, без заголовка. Используются для передачи информации о местоположении солдат и техники. Увеличение параметра потребует от сервера увеличения занимаемой ширины канала (bandwidth), и может вызвать лаг. По умолчанию: 256. Если его уменьшить то можно добиться маленького аплоада с сервера, но при этом будет наблюдаться эффект телепортации.
  • MinBandwidth =<bottom_limit>; - гарантированная минимальная ширина канала сервера в бит/сек. Этот параметр помогает серверу определить доступную ширину канала. Слишком оптимистичное (большое) значение увеличит лаг и нагрузку на процессор, за счет того, что будет передаваться большое количество пакетов, которые при определенной узости канала буду просто теряться и потребуют повторной отправки. По умолчанию: 131072 (128 kbps).
  • MaxBandwidth=<top_limit>; - максимально допустимая ширина канала в бит/сек. Не столь критичен, как MinBandwidth.

BIS приводят пример для сервера с каналом в 1Мbps (1024kbps) установить:
MaxMsgSend = 256;
MinBandwidth = 768000;

В любом случае, если вы не очень разбираетесь в тонкостях сетевой передачи данных или не знаете конкретно, что вы хотите получить от сервера, лучше эти параметры не редактировать, а остаться на дефолтных.
Неправильная конфигурация может привести, как уже отмечено, к эффектам телепортации, или, допустим, в ДМ, у вас будет великолепная скорость и четкость, а на ЦИХ, где большое количество техники и юнитов, могут возникнуть лаги и десинх между сервером и клиентом.

Для мониторинга именно этих параметров существует специальная команда. Для этого вам необходимо зайти на сервер, и, в качестве админа, прописать в чате:

#monitor ** где ** - количество секунд, через которые сервер будет выдавать статистику. Вам будет предоставлена следующая информация:

  1. Количество используемой памяти;
  2. ФПС сервера, аплоад и даунлоад сервера.

Как правило, сервер считается правильно настроенным и вообще годным для ОФП, если его ФПС не падает ниже 30. Но по опыту можно сказать, что есть сервера, которые при игре 10 на 10 выдают 5-10 ФПС, в принципе и так играбельно, но лагает и появляется десинх (разница по времени между моментом отправки сервером данных клиенту и фактическим моментом получения этих данных).
Отключить вывод этих сообщений можно командой #monitor 0. Кроме этих, существует еще один дополнительный параметр, широко применяющийся при настройке сервера:

  • MaxCustomFileSize=<*****>;

где ***** - максимальный размер кустомных файлов (лицо и звуки), с которыми игрок может зайти на сервер, в байтах; Этот параметр ограничивает доступ на сервер игроков, с размером кустомных файлов выше установленного ограничения, для понижения размера трафика, потребляемого каждым клиентом для закачки этих файлов к себе. UserInfo.cfg

Этот файл находиться в папке по пути ....Usersnameplayer, где nameplayer тот ник, который будут видеть игроки, кикнутые с сервера. По умолчанию, при первом запуске игры, берется имя пользователя компьютера. Т.е. если ваш пользователь ВАСЯ ПУПКИН, то и папка будет с его именем. А также все кто будет выброшен с сервера, будут знать, что выбросил их ВАСЯ ПУПКИН. Поэтому, так сказать для красоты и объективности, рекомендую переименовать вашу папку, к примеру, в Administrator.

В файле UserInfo.cfg, скопированном из развернутой версии ОФП, тоже много параметров, не оказывающих влияния на настройку сервера, приведу лишь самые важные:

  • viewDistance=<дальность видимости в метрах>;

- на МР влияет в малой степени, так как он ограничивает видимость в игре, но, как правило, в каждой сетевой карте параметр видимости устанавливается отдельно. Теперь глобальные переменные, где первая цифра соответствует уровню сложности кадет, вторая ветеран (0 - нет, 1 - да) как пример здесь приведены типичные настройки сервера:

  • diffArmor[]={1,0}; - усиленная броня;
  • diffFriendlyTag[]={1,0}; - дружеский целеуказатель (скобки зеленные);
  • diffEnemyTag[]={0,0}; - вражеский целеуказатель (скобки красные);
  • diffHUD[]={1,0}; - дисплей нашлемного целеуказания;
  • diffAutoSpot[]={1,0}; - автоотчет;
  • diffMap[]={1,0}; - внешняя информационная карта (посредством значков дает представление о собственном расположении и замеченных объектов на карте);
  • diffWeaponCursor[]={1,1}; - прицельный маркер;
  • diffAutoGuideAT[]={1,0}; - захват цели ракетами AT ручными;
  • diffClockIndicator[]={1,1}; - индикатор времени часы;
  • diff3rdPersonView[]={1,0}; - вид от третьего лица;
  • diffTracers[]={1,1}; - видимость трассеров;
  • diffUltraAI[]={0,0}; - суперинтеллект АИ;

Если вручную редактировать не хочется, можете зайти в игру на локальном компьютере, в опции>сложность и отконфигурируйте игру стандартными средствами с теми настройками, которые хотелось бы иметь на вашем сервере. После этого выйдите из игры и скопируйте свой UserInfo.cfg в соответствующую директорию сервера. Sample.cfg

Как правило, этот конфиг можно назвать как угодно. Существует практика называть его server.cfg. Единственное, в случае использования bat-файла для выделенного сервера строку -config=sample.cfg необходимо заменить на -config=server.cfg.
Вообще можно обойтись и без отдельной программы выделенного сервера. Просто создайте иконку для FLASHPOINTRESISTANCE.EXE и пропишите в строке запуска следующее - FLASHPOINTRESISTANCE.EXE -server -config=sample.cfg. И ваш ехе загрузиться в режиме выделенного сервера, с конфигом, указанным в sample.cfg.

  • password = <session_password>; - пароль на вход сервера, если не требуется, опускаем;
  • passwordAdmin = <admin_password>; - пароль администратора;
  • hostname = "<user friendly host name>"; - название вашего сервера;
  • motd[]=
    {
    "<1st MOTD line>",
    "<2nd MOTD line>",
    &&&&,
    "<Last MOTD line>"
    };
    - приветственная надпись, при входе на сервер выдающаяся для каждого игрока - может быть несколько строк, соблюдайте пунктуацию;
  • motdInterval=<interval_in_sec>; - интервал в секундах при показе строк приветственных сообщений по линии motd[];
  • voteThreshold=<threshold>; пропорция проголосовавших игроков за одну и ту же кандидатуру при голосовании за админа (по отношению к общему числу игроков на сервере) - от 0 до 1. Оптимально - 0.3. При параметре выше единицы (например 1.1) голосование запрещено;
  • reportingIP="<id_address>"; - IP адрес для передачи состояния сервера. Использование "" отключает. По умолчанию: "master.gamespy.com" для отображения сервера в системе All Seeing Eye;
  • voteMissionPlayers=<number>; - количество игроков, находящихся на сервере - для автоматического старта диалога выбора миссии (при игре без админа). По умолчанию: 1. Оптимально 4; Количество голосов, поданных за одну и ту же миссию, для ее активирования в качестве текущей, возможно, регулируется параметром voteThreshold (по отношению к общему числу игроков на сервере)

Назначение миссий для автостарта - здесь прописываются миссии, которые будут крутиться на сервере автоматом, циклично (можно опустить, при этом заходящий на пустой сервер игрок будет видеть Wait for server на черном фоне):

class Missions
{
class Mission01
{
template = <mission_name>; //имя файла миссии (без расширения pbo) миссия должна размещаться в каталоге MPMissions.
cadetMode = 0; //0 = сложность ветеран, 1 = сложность кадет.
param1 = 1800; //выбрать параметр в соответствии с файлом description.ext в комплекте миссии. Как правило время игры.
param2 = 10000; // выбрать параметр в соответствии с файлом description.ext в комплекте миссии. Как правило количество очков одной из сторон до завершения миссии. }; class Mission02
{
template = <mission_name>; //имя файла миссии (без расширения pbo) миссия должна размещаться в каталоге MPMissions.
cadetMode = 0; //0 = сложность ветеран, 1 = сложность кадет.
param1 = 1800; //выбрать параметр в соответствии с файлом description.ext в комплекте миссии. Как правило время игры.
param2 = 10000; // выбрать параметр в соответствии с файлом description.ext в комплекте миссии. Как правило количество очков одной из сторон до завершения миссии. }; И так далее. Количество миссий неограниченно. };

Проверка файлов (файлчекер):

checkfiles[]=
{
"resbinconfig.bin",
"resbinresource.bin"
};
проверка файлов при входе не сервер, могут быть любые, главное указать правильно путь. Обратной стороной медали является то, что если сервер не очень мощный, то при игре на нем и одновременном заходе на сервер игроков, могут возникнуть существенные тормоза, из-за отвлечения ресурсов сервера на проверку файлов пришедших. Поэтому к количеству проверяемых файлов подходите взвешено. Дополнительные параметры.

  • KickDuplicate = "false"; - обязательная команда, начиная с версии 1.92. Регулирует реакцию сервера на одновременное присутствие игроков с одинаковым ID; false или 0 разрешить одинаковые ID, true или 1 запретить (каждый вошедший на сервер с ID, совпадающим с ID игрока на сервере будет отсоединен автоматически).
    Поэтому, если в вашей сети народ использует один ID, нужно прописать эту строку обязательно! В противном случае игрок будет выбрасываться с сервера. ЗАПОМНИТЕ - никакого FADE (кроме самого сообщения fade) при этом не будет, это миф.
  • MaxPlayers=20; - ограничивает максимальную емкость сервера - при необходимости ограничить максимальное число игроков, одновременно находящихся на сервере (например при слабом сервере или его канале).
  • equalModRequired=1; - регулирует вход на сервер игроков, использующих в ярлыке запуска возможность подгрузки аддонов из отличного от оригинального размещения (1 запрещает, 0 разрешает) например: -mod=@ECL.

Пример для работающего сервера файла sample.cfg
Знаки // перед каждой строкой это указание серверу игнорировать параметр в этой строке. Таким образом, можно не удалять строку в случае необходимости проигнорировать параметр, а просто приписать перед ней (строкой) //. Также // используются для маркировки пояснения к параметрам непосредственно в конфигурационном файле. HostName="OFP Server";
reportingIP="master.gamespy.com";

password="";
passwordAdmin="123";

MaxPlayers=30;
KickDuplicate=0;
equalModRequired=0;

voteThreshold=0.33;
voteMissionPlayers=4;

motd[]=
{
"Добро пожаловать/Welcome на сервер OFP Server",
"Custom Files = 12 Kb",
"Наезд на админа - БАН - 100%! Без пересмотра", };
motdInterval=2;

checkfiles[]=
{
"resbinconfig.bin",
"resbinresource.bin"
};

class Missions
{
class Mission01
{ template = dm_island.noe;
cadetMode = 0;
param1 = 1800;
param2 = 10000; }; class Mission02
{ template = ctf 34 ecl cqb lamentin v1.0.eden;
cadetMode = 0;
param1 = 1;
param2 = 1; }; };

Если есть кого банить, в корневом каталоге игры/сервера создайте файл ban.txt и просто впишите туда необходимый ID (каждый следующий с новой строки), больше он на сервер под этим ID не попадет.

Наиболее востребованные ключи запуска:

  • -config=<имя_файла> - имя файла загружаемой конфигурации.
  • -port=<номер_порта> - номер порта, под который запустится сервер (если необходимо запустить сервер под нестандартным портом (стандарт 2302))
  • -logfiles=<имя_файла> - имя файла для записи стандартного лога сервера (ники и ID игроков, время их подсоединения к серверу, список модифицированных файлов (если есть), название и время старта карт и т.д.)
  • -netlog=<имя_файла> - имя файла для записи расширенного лога сервера (перечисленное в предыдущем пункте + протокол сетевых подключений (в том числе IP игроков))

Полезные советы.

  • Серверы ОФП имеют свойство сильно засорять память, если сервер используется активно, поэтому не забывайте его периодически перегружать, особенно это касается слабых машин.
  • Серверы под ЛИНУХом не понимают прописных букв в названии файлов, поэтому для работы сервера необходимо поменять вручную или с помощью скриптов все буквы в названии файлов игры в строчные и следить за тем, чтобы заливаемые на сервер карты тоже состояли только из строчных букв.
  • Обсуждение автоподъема сервера (на английском языке)

Удачной игры.

Автор обзора [TSC] Specar.
Прислал Seaman.

Комментарии: 3
Ваш комментарий

ктонибуть вообще может обьяснить как подключится к сетке .

0

SAMP 77.220.180.232:7777 Есть свободные лидерки,даем 1кк!!!

0

Я что-то упускаю или только меня смущает фраза: "Развернутый комплект игры версии 1,96", в то время как на данный момент существует патч игры "Operation Flashpoint 2: Dragon Rising" только до версии 1.03? Так для какой игры тут блог?

0