???
Математика на уровне МГУ

Страница 1 из 2 12 КрайняяКрайняя
Показано с 1 по 25 из 26

Тема: Ещё один командер. Нужен ли?

  1. #1
    Инспектор
    Регистрация
    12.08.2008
    Адрес
    Новосибирск
    Сообщений
    5,345

    Ещё один командер. Нужен ли?

    В процессе ознакомления с новой вижуал студией и первых шагов в с#, решил попытаться создать ещё один серверкомандер.
    Что уже сделано:
    1. Написан класс взаимодействия с сервером и сбора игровой статистики в течении сессии (пока без разбора event.log, но работа ведётся), опробован в первом приближении.
    ........

    Пожалуй, из уже сделанного всё .

    Основные фишки:
    1. Процесс сервера идёт в "спрятанном" состоянии.
    2. Возможность запускать несколько серверов при одной установке самого сервера.
    3. Пока все встреченные ограничения на использование нелатинского алфавита успешно преодолены. Нет причин для запрета русских ников и проблем с их обработкой. Весь юникод можно использовать за исключением служебных символов, пробела, двоеточия, запятой и апострофов.
    4. Телнетовский порт сервера остаётся свободным и может по прежнему обмениваться с любой сторонней программой.

    Что в планах (в порядке приоритетов):
    1. Создание дружественной "мордочки".
    2. Выпуск демонстрационного, предельно облегчённого варианта (с простым ротатором карт по времени для обкатки на существующем сервере и для ознакомления всем желающим.(срок - порядка недели)
    3. Сбор статистики во внешнюю б.д. под Геннадьичевскую базу данных.
    4. Воспроизведение логики ротации карт от SC (цели, ограничения по вооружению, количеству самолётов и пилотов
    5. Попытка заставить всё это работать виндовым сервисом с отдельной панелью управления.
    6. Попытка заставить работать с удалённой панелью управления.

    Собственно вопрос:
    Нужно ли полностью копировать функционал SC? Или есть функции не востребованные.
    Чего больше всего не хватает в существующих демонах и командерах?
    Что из вышеперечисленного вообще не интересует?

    Вобщем-то, задача ставилась создать основу, главный "кубик" для, предложенной в своё время, идеи борады по созданию "конструктора" иловского сервера.
    Стараюсь идти по пути создания структурных единиц, легко заменяемых своими разработками и дополняемых любым внешним софтом.
    Создания готовых войн не обещаю, но кубиков постараюсь наделать побольше.
    Исходники основных компонентов пока открывать не собираюсь - не из-за жадности, а из-за достаточно сырого почерка программирования (что, впрочем, на функциональности не скажется). После отладки и приведения в удобоваримый вид - исходники будут открываться по мере неуспевания следования пожеланиям по дополнению функционала.(во завернул )

    И самый главный вопрос:
    Есть ли интерес к этому у кого-либо ещё или все кто хотел уже удовлетворены?
    Борада! Твоё мнение особенно интересно.
    Готов ли ты снова вспомнить свою идею?

  2. #2
    Теоретик широкого профиля Аватар для Waso
    Регистрация
    21.12.2007
    Адрес
    IRQtsk
    Возраст
    49
    Сообщений
    386

    Ответ: Ещё один командер. Нужен ли?

    Цитата Сообщение от Mirnyi Посмотреть сообщение
    4. Телнетовский порт сервера остаётся свободным и может по прежнему обмениваться с любой сторонней программой.
    Идея наверное даже хорошая. Хотя и чуток наверное поздно.
    Вопрос про "телнетовский" порт. Если он остается свободным, то как общается с сервером движок демона?
    Или демон открывает сокеты до сервера на "нестандартных" портах, порт 20000 слушает сам и, грубо говоря, является транслятором?

  3. #3
    Инспектор
    Регистрация
    12.08.2008
    Адрес
    Новосибирск
    Сообщений
    5,345

    Ответ: Ещё один командер. Нужен ли?

    Нет. Программа с сервером телнетом вообще не общается. Всё построено на перехвате стандартных потоков I/О.
    Т.е. сервер вместо окошка отдаёт вывод командеру и соответственно командер общается с сервером через стандартный ввод. Именно поэтому окно сервера можно вообще спрятать - смысла от него никакого, кроме крестика в правом верхнем углу , что тоже решается программно.

  4. #4
    Танки не летают? Аватар для mr_tank
    Регистрация
    29.03.2003
    Адрес
    СТОЛИЦА ДЕРЕВЕНЬ
    Возраст
    47
    Сообщений
    9,378

    Ответ: Ещё один командер. Нужен ли?

    Цитата Сообщение от Mirnyi Посмотреть сообщение
    Чего больше всего не хватает в существующих демонах и командерах?
    1) у SC нет возможности сделать любые составы комманд, например, нельзя чтобы у одной команды были американские машины, у второй - советские. В SC жестко прописано что они могут быть только в одной команде, либо в обеих сразу.

    2) Логи сервера фиксируют такие события, как попадание в цель без ее разрушения, это типично при атаках кораблей. Если сорганизовать накопление такой информации, то вполне реализуемо понятие групповой победы. Иначе странно, что линкор атаковало 5 самолетов, все попали и кроме последнего - 0

    3) Своя система раздачи баллов, поскольку если для самолетов градация 100-200-300 достаточна, то для кораблей - примитивна. Речь не идет о том, что выдает в чат игры, речь о том, чтобы в БД писалось сообразно уничтоженной цели.

    4) + хотелось бы препроцессор(или пост) БД, чтобы в командных сценариях начисление баллов можно было поставить в зависимость от успеха команд.

    Добавлено через 2 минуты
    вообще, есть опен коммандер, он на с# тоже, если авторы согласны, то может имеет смысл объединяить твой проект и его?
    Крайний раз редактировалось mr_tank; 11.02.2009 в 08:03. Причина: Добавлено сообщение
    остановиться мне-бы...
    но я всю ночь летал

  5. #5
    Инспектор
    Регистрация
    12.08.2008
    Адрес
    Новосибирск
    Сообщений
    5,345

    Ответ: Ещё один командер. Нужен ли?

    3 и 4 уже реализовано отдельной надстройкой к бд SC. Называется rankcalc. Лежит на http://il-2.sinor.ru.
    Возможно, не совсем прямо сделано, но работает.

    1. Не понял. Речь о самолётах? Так команде (синяя/красная) доступны только типы, расположенные на соответствующих базах.
    Или нужно разбиение на команды внутри синей или красной?

    2. Всё что сервер выдаёт в лог можно использовать.

    Вообще, суть проекта в том, чтобы наделать максимально независимых модулей, которые владелец сервера сможет простыми способами объединять, создавая всё, что сам захочет.
    Пока речь о том, чтобы создать основу - кусок кода, позволяющий легко отслеживать любое доступное событие на сервере и отдавать это событие на дальнейшую обработку пользовательской программе. Т.е. упростить реализацию идей на уровне админов сервера, без разбора каждый раз низкого уровня событий. Можно отдельным скриптом , можно дописав логику в той же вижуал студио - кому как удобно.
    Оформить такие модули в виде dll-ок и собрать из них некую программу, как пример использования.
    Использовать же модули можно хоть из бейсика, хоть из явы, хоть из питона - кому как удобнее.

    Опенкомандер, насколько мне известно, ориентирован исключительно на конечного пользователя, освоившего c#.

  6. #6
    Танки не летают? Аватар для mr_tank
    Регистрация
    29.03.2003
    Адрес
    СТОЛИЦА ДЕРЕВЕНЬ
    Возраст
    47
    Сообщений
    9,378

    Ответ: Ещё один командер. Нужен ли?

    Цитата Сообщение от Mirnyi Посмотреть сообщение
    1. Не понял. Речь о самолётах?
    да, конкретно, рисовал я карту войны 1948 года, конечно, с некоторыми допущениями.
    А там расклад следующий красная команда Спиты, мессеры, бофайтеры. Синяя - спиты, темпесты, макки.
    Админ утверждает, что такой расклад нереализуем из за того, что мессеры не могут быть красными, а спиты синими. Что-то там спутывается если это не догфайт простой.
    остановиться мне-бы...
    но я всю ночь летал

  7. #7
    Инспектор
    Регистрация
    12.08.2008
    Адрес
    Новосибирск
    Сообщений
    5,345

    Ответ: Ещё один командер. Нужен ли?

    Понял проблему.

  8. #8
    JGr124_boRada Аватар для boRada
    Регистрация
    28.02.2002
    Адрес
    Южный Урал
    Возраст
    63
    Сообщений
    5,049

    Ответ: Ещё один командер. Нужен ли?

    А я чо скажу? Поздно или нет, спорный вопрос. Для меня главное - это попытка сделать. Мне кажется опыт и основа пригодится и в следующих симах, да и ил хоронить рановато.
    Удачи! Чем смогу - готов помочь. Немного писал на С#, даже книжка есть
    Люблю рисовать панели.
    Тут главное для начала - чтоб не ограничивать функции, не навешивать обработку. Костяк - модуль коммуникации. Принять команды с чата, отдать в чат, принять события, выдать события. С возможностью добавления. Например нужна мне команда "поиметь", я ее вписываю в таблицу - указываю на ее параметры, и что сделать при этом. Типа из выпадающих окошек...
    Тут в общем-то много думать и пробовать, чтоб инструмент сделать.

  9. #9
    Зашедший
    Регистрация
    21.03.2008
    Адрес
    Barnaul
    Возраст
    49
    Сообщений
    77

    Ответ: Ещё один командер. Нужен ли?

    Нужен, нужен коммандер. Ибо SC много чего может, а вот персонифицированное управление пилотами там не реализовано. Кроме кика/бана
    Именно этого не хватает тем проектам, которые на базе SC реализованы.
    Тому же Туману Войны очень не хватает запретов вылета на пару минут после смерти.
    А еще полезные функции персональных ограничений по крафтам/загрузкам, персональная доступность филдов.

  10. #10
    Танки не летают? Аватар для mr_tank
    Регистрация
    29.03.2003
    Адрес
    СТОЛИЦА ДЕРЕВЕНЬ
    Возраст
    47
    Сообщений
    9,378

    Ответ: Ещё один командер. Нужен ли?

    и, да, может, по проторенному пойти, на сурсфорже выложить или ресурс указать чтобы накидали приложений помимо того, что здесь.
    остановиться мне-бы...
    но я всю ночь летал

  11. #11

    Ответ: Ещё один командер. Нужен ли?

    Нужен! И нужен унифицированый.
    Сам такое пробую сварганить

  12. #12
    Инспектор
    Регистрация
    12.08.2008
    Адрес
    Новосибирск
    Сообщений
    5,345

    Ответ: Ещё один командер. Нужен ли?

    Первый блин есть.
    Надеюсь, что не совсем комом

    http://il-2.sinor.ru/forum/viewtopic.php?p=21309

    Что не попало в ридми.
    Ники игроков могут быть русскими.
    Весь юникод разрешить не удалось из-за лога - он пишется исключительно в кодировке по умолчанию для неюникодовых программ для винды, на которой установлен сервер.
    Вобщем, если в нике появятся символы, которые не понимает именно конкретная винда, на которой стоит командер, то он просто не разрешит подключиться к серверу.
    На русской винде стоит кодировка 1251 - все символы прекрасно обрабатываются.
    Запрещены только несколько служебных разделителей и то больше из соображений "перебдеть".
    Крайний раз редактировалось Mirnyi; 19.02.2009 в 18:44.

  13. #13
    Теоретик широкого профиля Аватар для Waso
    Регистрация
    21.12.2007
    Адрес
    IRQtsk
    Возраст
    49
    Сообщений
    386

    Ответ: Ещё один командер. Нужен ли?

    Цитата Сообщение от Mirnyi Посмотреть сообщение
    Хотел поглазеть, да хост чего-то в дауне.

  14. #14
    Инспектор
    Регистрация
    12.08.2008
    Адрес
    Новосибирск
    Сообщений
    5,345

    Ответ: Ещё один командер. Нужен ли?

    Уже работает.
    Были плановые работы.

  15. #15
    Зашедший
    Регистрация
    21.03.2008
    Адрес
    Barnaul
    Возраст
    49
    Сообщений
    77

    Ответ: Ещё один командер. Нужен ли?

    Мирный, насколько я понял, в принципе можно пользовать оба коммандера и SC и твой? То есть навесить на SC те функции, которые он умеет выполнять, а твоим доруливать то что необходимо?

  16. #16
    Инспектор
    Регистрация
    12.08.2008
    Адрес
    Новосибирск
    Сообщений
    5,345

    Ответ: Ещё один командер. Нужен ли?

    Да. Можно и так. Конечно, не в том виде что сейчас.

  17. #17
    Инспектор
    Регистрация
    12.08.2008
    Адрес
    Новосибирск
    Сообщений
    5,345

    Ответ: Ещё один командер. Нужен ли?

    Ребят, нужны тестеры для обкатки уже почти беты с геннадьичевским статом.
    Кому не лень, пожалуйста, заглядывайте периодически на 217.70.119.165:21002.
    Если работает - соберите хотябы человек несколько. При одном игроке уже всё работает, а оттестить под реальной нагрузкой не получается пока.

  18. #18
    Зашедший
    Регистрация
    21.03.2008
    Адрес
    Barnaul
    Возраст
    49
    Сообщений
    77

    Ответ: Ещё один командер. Нужен ли?

    вдвоем слетали, посмотрели, работает.
    народу чо-та так и не появилось.

  19. #19
    Инспектор
    Регистрация
    12.08.2008
    Адрес
    Новосибирск
    Сообщений
    5,345

    Ответ: Ещё один командер. Нужен ли?

    Часть багов отловлена. Работает пока более-менее стабильно. Тест перенесён на сервер 217.70.119.165:21000. Народу там бывает и по 30 с лишним человек.
    Если не будет падать каждый час - дальнейший тест там и останется.
    Не сделано пока - всё что связвно с ini-файлами:
    цели
    ограничения по крафтам и вооружению
    победа стороны
    время миссии

    Стат собирает даже лучше, чем это делает SC (по ходу выяснилось наличие нескольких багов в родной статистике). Статистика пока не доступна для обозрения - есть проблемы с кодировками mysql. перестроить сервер пока не знаю как - на нём же форум, при установке правильной кодировки, форум перестаёт понимать русские буквы. Проблема решается.

  20. #20
    =VPK= Аватар для Andrey_K
    Регистрация
    10.10.2006
    Адрес
    Ровно, Украина
    Возраст
    42
    Сообщений
    553

    Ответ: Ещё один командер. Нужен ли?

    Если будет возможность реализовать - добавлю свою "хотелку"...
    Можно ли будет ввести ограничения по топливу, причём раздельно по крафтам, так как это сделано в SC с вооружением? И чтобы можно было тонко настраивать комбинации топлива и загрузки, например запретить брать подвесные баки если загрузка топлива не равна 100% и тп.
    Очень нужная и полезная фича для проектов, а SC, к сожалению, её предоставить не может...
    Если дойдут руки до реализации ограничений вооружения - надеюсь, и ограничение по топливу будет не слишком сложно сделать, принцип то тот же.

    Что касается багов в статистике SC - вот несколько навскидку, на которые стоит обратить внимание.
    Если вирпил получил ПК на месте стрелка и при этом вышел в меню ДО падения самолёта (или был кикнут сервером при превышении лимита смертей), то смерть ему в стат не идёт, соответственно не идёт сбитый и в стат сбившему. Если получивший ПК дождался падения самолёта - то в стат ему идёт две смерти - первая это непосредственно ПК, а вторая - падение самолёта. Соответственно сбившему в стат также пишется две строчки со сбитым.
    Далее, иногда бывает что пилот был завулчен на полосе до отрыва (и в логе нет строчки "взлетел") - тогда SC пишет эту смерть в предыдущий вылет, стат которого выглядит как "...Вася Пупкин - посадка. Вася Пупкин убит".
    =VPK= http://forum.il2.com.ua/forum

    У всех есть недостатки... У Аспида это неспособность признать себя неправым :) (с) Adolf

  21. #21
    Танки не летают? Аватар для mr_tank
    Регистрация
    29.03.2003
    Адрес
    СТОЛИЦА ДЕРЕВЕНЬ
    Возраст
    47
    Сообщений
    9,378

    Ответ: Ещё один командер. Нужен ли?

    Цитата Сообщение от Andrey_K Посмотреть сообщение
    И чтобы можно было тонко настраивать комбинации топлива и загрузки, например запретить брать подвесные баки если загрузка топлива не равна 100% и тп
    поддержую. Плюс еще один момент, по которому другой разработчик высказал принципиальную возможность. Ограничение количества боеприпасов, т.е. 1000кг бомб выдается 2шт, 500кг - 20, 100/250 сколько угодно.

    Ну и проверить реализуемость альтернативных плейнсетов по типу "вариант бис"
    остановиться мне-бы...
    но я всю ночь летал

  22. #22
    Зашедший
    Регистрация
    21.03.2008
    Адрес
    Barnaul
    Возраст
    49
    Сообщений
    77

    Ответ: Ещё один командер. Нужен ли?

    ну и конечно же запрет вылета после смерти на 1-5 минут, с предупреждениями там, все дела
    а ини-файлы такие же как у SC делать будешь? в смысле это очень хотелось бы, чтоб генератор не переписывать

    Добавлено через 3 минуты
    Цитата Сообщение от mr_tank Посмотреть сообщение
    Ну и проверить реализуемость альтернативных плейнсетов по типу "вариант бис"
    ага, вкусная тема. ну тут скорее надо инструмент наружу выводить, чтоб сами проверяли, либо к некоему ини опять же привязывать.
    Крайний раз редактировалось Plintus; 26.02.2009 в 19:48. Причина: Добавлено сообщение

  23. #23
    Инспектор
    Регистрация
    12.08.2008
    Адрес
    Новосибирск
    Сообщений
    5,345

    Ответ: Ещё один командер. Нужен ли?

    Ребят, пожелания постараюсь по возможности учесть.
    Но.
    Скажу сразу - я не планирую выпускать суперуниверсальный командер.
    Задача стоит по-другому.
    Создаю стабильную основу и как пример несколько примочек, независимо друг от друга реализующих те или иные функции. В отличии от SC, Вы сами сможете дописывать необходимый вам функционал потому, что исходники будут открытыми.
    Удовлетворить все пожелания у меня просто не хватит сил.
    Тут дело не в сложности реализации, а в количестве вариантов. Самые трудоёмкие модули - это непосредственное взаимодействие с сервером и статистика.
    Статистика даже не потому, что её сложно собрать, а потому, что её сложно показать (веб- страничка это даже более трудоёмкая штука, чем сбор статистики в базу).
    Объясняю как я вижу модульность:
    Есть сервер, разговаривающий сразу "в два голоса"(консоль и лог), есть модуль, умеющий слушать сервер и выуживать из обеих источников максимум информации, приводя её к нескольким (порядка 2х десятков) элементарным событиям.
    К этим событиям подключаются уже другие модули - и сложные, вроде сбора статистики, и простые, вроде модуля, выдающего приветствие игроку при подключении.
    Таких модулей может быть сколько угодно - и каждый будет выполнять какую-то функцию. Плюс эти модули могут быть связаны между собой или независимы друг от друга. Вариантов может быть очень много.

    Что касается некоторых багов в SC, то они не всегда поддаются исправлению. Просто потому, что все командеры ограничены тем, что можно получить от сервера.
    Например, баг с пк и выходом в меню:
    Сервер выдаёт только следующие возможные комбинации событий:
    А был убит Б,
    А вышел в меню.
    или
    А был убит Б,
    Самолёт А был сбит Б,
    А вышел в меню.
    Что касается зачёта смерти А - тут нет проблем - по событию А убит мы засчитываем ему смерть.
    А вот по поводу зачёта сбитого для Б - всё сложнее - если мы засчитываем сбитие самолёта по событию Самолёт А был сбит Б (а это логично - ведь А может и не быть убитым, а выпрыгнул или выжил при аварийной посадке), то в первом случае, мы просто не увидим этого события, а если будем засчитывать сбитие за смерть противника и за сбитие самолёта, то получим удвоение сбитых во втором случае.
    С прыжками с парашютом - ещё интереснее ситуация.
    При выходе в меню после прыжка, парашютист, в отличии от самолёта не исчезает.
    И сервер, если прыгнувший снова оказывается на стоянке в самолёте, видит одновременно 2х игроков с одним ником.
    Причём, в логе он их никак не различает (только если первый прыгнул с позиции стрелка, а второй сидит на позиции пилота их можно различить).
    И если парашютист убивается о землю, то в логе мы видим следующую последовательность:
    А прыгнул с парашютом,
    А выбрал самолёт,
    А убит,
    А взлетел.
    Или вначале взлетел потом убит.
    Однозначно верно истолковать такой лог просто невозможно.
    Поэтому, приходиться либо вводить запреты и ограничения, либо игнорировать некоторые события.
    Что касается ситуации с завулченным, то SC пишет в статистику события верно (при выходе в меню закрывается очередной вылет, потом открывается новый), но не все эти события отражаются в стате.
    Эту фишку я уже просёк и исправил.

  24. #24
    Инспектор
    Регистрация
    12.08.2008
    Адрес
    Новосибирск
    Сообщений
    5,345

    Ответ: Ещё один командер. Нужен ли?

    Первая полностью (надеюсь) работоспособная версия со статом в базу от SC.
    На всякий случай - все настройки пока ручками в ини файлах. Лучше вначале прописать, а потом запускать.
    В файлах хххerrorlog.txt собираются всевозможные ошибки (большинство критических отловлено - если что серьёзное со сбоями вылезет - стоит заглянуть вначале туда).
    Настройки сервера(файлы confs.ini и server.cmd) до первго запуска программы скопировать в папку serverconfig.
    Файл missions.txt должен лежать в той же папке, что используемые миссии. В нём указывается полный путь от папки Missions.
    ( Net\dogfight\servermaps\Bitva.mis - как пример) Каждая миссия - одна строка. Пустая строка будет воспринята как конец очереди.

    Действующий стат

  25. #25

    Ответ: Ещё один командер. Нужен ли?

    Огромное спасибо за исходники, пытаюсь дореализовать нужные вещи, например, штраф после смерти с ограничением на взлет. Возник вопрос - планируется ли полностью открыть исходники? Очень хотелось бы увидеть модуль общения с сервером и стат.

Страница 1 из 2 12 КрайняяКрайняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •