Привет друзья. Последние пару месяцев я разрабатывал плагин для полёта экипажем.
Думаю, пришло время объявить о проекте и приступить к бета тесту.
Итак, возможности плагина:
— пока только связь между двумя компьютерами(не уверен, нужно ли делать третий);
— работа по принципу MASTER — SLAVE с возможностью передачи управления (штурвал и тд.) на SLAVE компьютер;
— полная настройка конфигурационным файлом для каждого самолёта — передача дефолтных и кастомных датарефов должна обеспечить работу как с дефолтными, так и с кастомными самолётами (при участии их авторов).
— экономия сетевого канала насколько это возможно — сейчас я ориентируюсь на передачу 300 float значений 25 раз в секунду, что даёт ~250 — 300 kbit/s.
— экономия сетевого канала ударит по FPS, но я надеюсь незначительно — тут нужно будет много тестировать.
— работа во всех OS и 32-64 разрядностях. (я надеюсь, так как пока работает WIN 32bit) 
Тестирование проводил с дефолтным Baron B58: соединял два компа через VPN и Хамачи: Веллингтон — Амстердам — Веллингтон что даёт порядка 40000 км и пинг около 700 ms — вполне летабельно!
Если конечно SLAVE перехватит контроль, то будет задержка в управлении — но тут, как говорится, уже ничего не сделать.
На текущий момент я пытаюсь улучшить позиционирование самолёта на SLAVE машине что бы уменьшить дёрганье самолёта при потере пакетов (спасибо Супнику за помощь!).
Но даже так, как это работает сейчас — вполне летабельно.
Если всё будет работать как я ожидаю, то плагин будет платным. Цена не определена.
Нужно будет несколько человек, которые смогут тестировать плагин. Естественно они получат лицензии.
Важно, что бы тестер разбирался в дадарефах и смог заполнить конфиг файл для выбранного им самолёта.
Тестеры должны знать друг друга, чтобы тестировать плагин между собой. Ещё важно что бы отозвались пользователи LIN и MAC — для них тестирование начнется позже, когда будет стабильная WIN версия.
Бета тест начался.
Количество тестеров я ещё пока не определил. Пока начнём с малого.
Особых требований нет, кроме следующих:
1) начальные знания что такое датареф в X-Plane и как писать конфиг;
2) тестеры должны знать друг друга;
3) тестеры, или хотя бы один из них, должны примелькаться тут на форуме, что бы можно было спросить потом
.
Наши уважаемые самолётостроители могут также обратиться за бетой. Им проще всего будет разобраться с конфигом.
Пока не работает форум моего сайта плагин можно обсуждать в открытую или в личку здесь.
Для тех, кто просто хочет попробовать плагин прежде чем покупать — как и в случае с XSmartCOM я сделаю демку с ограниченным функционалом и напишу подробную инструкцию. Но попозже.
Сообщение отредактировал Rhard: 21 March 2013 — 05:19
наконец то на авсиме кто-то, кто не создает опросов, не задает вопросов, а ДЕЛАЕТ РЕАЛЬНОЕ ДЕЛО!
Очень отличный проект!
Буду ждать с нетерпением!
Тут важнее не kbit/s, а фрагментация пакетов.
А с чего бы ему вообще дёргаться, если десяток-другой пакетов даже и пропадёт?
Отличная новость! нет слов.
Роман ну про наш с Матвеем «экипаж» думаю ты в курсе.
Дёрнуть датарефы — думаю ума у меня хватит, я не силён в программировании, но даже из модных ныне закрытых саслов, можно выудить датарефы через АЦ3Д, просмотрев манипуляторы и анимацию.
Сообщение отредактировал CheAG_Slava: 14 March 2013 — 11:16
По поводу дёрганья — что бы обойти некоторые ограничения, наткнулся на другие грабли..
Несинхронность? Не совсем понял вопрос.. Если о том как управлять самолётом вдвоём штурвалом — то тут всё просто, управляет только один пилот — дуал импута не будет (пока я даже не думал об этом, возможно потом). Но второй пилот может запросить управление в любой момент и получить его. Обычные переключатели и задатчики будут работать синхронно — эту проблему я решил.
Фрагментация? При текущем размере UDP пакета, фрагментации я не замечал. Нужно будет ещё тестировать.
А че дуал инпута не будет?
Если серьезно, и будет возможность подключать два штурвала по сети по очереди, почему бы не сделать их арифметическое среднее для дуал инпут? И передавать не надо ничего — сказал «Дай я, брось джой неуч!» И усе.
Конечно мне неизвестно, как оно там все крутится-вертится у вас
Сообщение отредактировал skyteacher: 14 March 2013 — 11:47
ИМХО: лучше по кнопке передавать управление, если у неуча шумит джой, может получится каша.
А управление передаётся РУД, РУС раздельно? Или всё сразу?
Нужно разробаться пока с основным функционалом, потом возможно что то придумаю с дуал инпутом.. РУД пока передаётся вместе с РУС, но добавить ещё один триггер будет уже не сложно я надеюсь..
потому что один видит ситуацию с задержкой этак 300 мс. каша получится.
Рома, хорошая новость, я так понял ты полностью сделал плагин мультиплеера? Тоесть подключатся дефолтными средствами плейна не нужно будет?
Да, подключаться дефолтным мультиплеером не нужно будет..
O_O Я так понимаю ты отключал динамику копилота? Для того что бы корректно передавалось местоположение крафта в OpenGL среде?
скорее всего именно так (я ж приводил ссылку на документ, как двигать самолёт).
Да, Игорь.. спасибо за ссылки.. Правда на данный момент я пытаюсь это сделать не отключая динамику

Напрасно, имхо, дефолтный копилот решил бы часть проблем, типа этой.
Если используются какие-либо аппаратные органы управления, то они, очевидно, могут оказаться в несогласованном положении. Или расчет исключительно на клаву с мышью?
Понятно, что для 300флоат это еще не актуально, но ленточка не так уж и далека.
К сожалению, в дефолтном мультиплеере нельзя использовать только позиционирование или ещё какую либо часть значений.. Он переписывает всё и сразу.. Было бы конечно гораздо проще..
Я надеюсь вложиться в 300 значений.. Вчера посмотрел лог за 10 мин — при моём «ВПН» ни одного пакета отличного по размеру от посылаемого не пришло.. То есть или пакет теряется, или приходит целиком..
Сообщение отредактировал Rhard: 14 March 2013 — 22:00
жать пакеты не пробовал?
Сообщение отредактировал inv: 14 March 2013 — 22:32
Пока не пробовал. Если будет мало датареф для нормальной работы, тогда буду думать..
Тут нужно подойти с другой стороны — например, зачем передавать значения всех отклоняющих поверхностей, если можно обойтись передачей сигнала джойстика.. Всё равно SLAVE самолёт копирует положение из MASTER.
То же самое с двигателями. Сейчас я передаю 12 флоат значений — этого достаточно чтобы обеспечить базовый функционал для одномоторника..
Так не мультиплеер, а экстравижн. Поток емнип однонаправленный.
А откуда они могут взяться-то, другого размера? Резаных не бывает — либо весь, либо никак.
П-переведи?©
жать
rle каким-нибудь.
Но к чему такая жестокость?!
Что тогда фрагментация?
фрагментация — разделение пакета роутером на части а потом сборка. (параметр, определяющий, будет ли пакет фрагментирован или нет зовётся MTU = maximum transmission unit).
обычно mtu 1500, но может быть и меньше, потому ты уже на грани почти.
чтобы избежать фрагментации ip датаграмма должен быть не более 576 байт кажется
Разобрался.. 1500 байт пакет — на это я и ориентировался изначально..
Роутер не нужен для этого
Незавидная судьба ждёт длинные пакеты еще в родном компутере.
Только не пугайтесь — 68
Такие точно экзекуциям подвергнуты не будут. В реальности без нужды не стоит делать пакет данных длиннее 1472 байт.
ok, правильнее было бы сказать — на третьем уроне
упс