Цитата SuperA-E23 (
)
Достал оригинальные диски Фрилансера (да, есть у меня такие их 2 шт CD, номер К 167562ВИ лицензионное соглашение 28/11 от 28.11.2003)
В оригинальной версии есть мультиплеер, т.е. исходно Фрил делали и для мультиплеера, хотя это по тем временам больше дополнение,
чем основная функция, но оно точно не предполагало сетевых баталий, с большим кол-вом кораблей и уж точно не капов с большим кол-вом пух.
Итак чуть более года назад решил поставить Фрил и пройти заново.
Прошел, нашел обновления, поставил и опять играл до тех пор пока не уткнулся в "непропускающий" далее портал.
Обновил и оказался ... здесь. Обновлялся Фрил, как вы понимаете отсюда же и регулярно, иначе не зайдешь в игру.
Это предистория. Все это время графика в бою была одна и та же.
Потом решил создать второй ключ, (долгая история), но Фрил который был, я снес и поставил то, что скачивается отсюда.
Графика поменялась. Т.е. далаю вывод, что Андри все таки прав, графика находиться в клиентской части, и на функционирование
не оказывает большого влияния.
Теперь по кол-ву кораблей и пух. Когда собралась большая группа кораблей возле дыри в Процион и в самом Проционе - не было фризов.
Если принять как данность, что обработка графики идет у клиента, то получается, что сервер, грубо говоря, должен передавать клиенту
точку где расположен кор, вектор нос/корма и вектор и скорость движения. Объем корабля для работы клиента в принципе не нужен.
Этих данных вполне достаточно чтобы клиент уже сам доработал картинку.
Обновление этих данных - неизвестно с какой частотой, но и пакеты такого небольшого объема не сильно грузят трафик.
Наверное вы замечали, что при появлении неписей на мисках комп "икает", т.е. на мгновение притормаживает, а значит сервер пересылает
клиенту данные по тому, что до этого не требовалось для работы клиента.
По мортам и пухам - после выстрела они летят прямо, и при обработке всей механики на сервере (та же защита от читерства)
надо всего лишь переслать начальную точку, вектор, скорость и атрибуты, что бы отобразить графику у клиента. Весь выстрел
это всего лишь один пакет каждому клиенту. Торпы типа 1 (условно самонаводящиеся) это или 1 пакет или несколько с очень
маленькой частотой обработки сервером, такие как у Ударников это (напишем тип2 - с нормальным самонаведением) это раз
в 10 большее кол-во пакетов пересылаемых всем участникам (это цена самонаведения), а такие как у Князя и Хеллбоев (условно тип 3)
те вообще просто куча корректировок, которые должны не только общитываться, но отправляться всем участникам боя.
В технике всегда используются наиболее простые и/или экономически обоснованные решения, в программировании не всегда,
поэтому утверждать, что описанное выше именно так и сделано - не берусь, но с большой долей вероятности это так.
Чего то уже много для одного поста написал, если слишком многа букафф - просто не читайте.
Да, ты пришел в итоге к правильным выводам. Причем почти во всем. Почему почти... чуть ниже расскажу. Миша (Акелла) может подтвердить, я ему то же самое рассказывал сегодня по аудиосвязи в скайпе... Правда, ты разрушил тем самым мир Гены (ему снова придется перестраивать в очередной раз линию своего повествования), но то ладно, переживет Ты, так же как и я, допускаешь, что можешь ошибаться. Это очень хорошо.
Теперь поясню насчет "почти"...
Цитата SuperA-E23 (
)
то получается, что сервер, грубо говоря, должен передавать клиенту
точку где расположен кор, вектор нос/корма и вектор и скорость движения. Объем корабля для работы клиента в принципе не нужен.
Этих данных вполне достаточно чтобы клиент уже сам доработал картинку.
Вот этот момент. Тут не совсем так. Кроме модели каждого корабля, текстур (то, что мы видим) есть кинетическая модель того же корабля (и не только корабля, игровых объектов различных), это сильно упрощенный скелет модели, в который вписывается сама модель. В игре мы эту модель не видим, но именно по ней просчитываются все столкновения с другими объектами. И сервер учитывает положение координат этой модели, когда рассчитывает столкновения. так что объем корабля, как таковой, серверу известен и учитывается. В школе мы вписывали одно геометрическое тело в другое, это именно такой случай. А графика действительно находится в клиентской части. Это и админ мне подтвердил и Гена, слепо копируя чужие слова, не обратил внимание и процитировал то, что графика находится в клиентской части. И да, у торпед-ракет траектория описывается более сложно, поэтому и вычислений с ними больше и нагрузки на сервак,
соответственно. Еще раз повторюсь, что старая игра не рассчитана на такое количество одновременных выстрелов (расчетов, а не эффектов). Эффекты нагружают ваш родной комп, но не сервак.
Цитата GEN13ISH (
)
а клиент использовать только для отображения красивой картинки...
И да, Гена, ты когда пытаешься использовать чужие мысли и слова для своей защиты, ты хоть читай все полностью... Ты зачем столько текста "оттуда сюда перекинул", ты не понял то, что там я выше этой ссылки написал, что я эту статью для примера привел? Что это современный масштабный проект а не старая игра Фрилансер, что, естественно, архитектура их серверной части насыщена современными решениями, что у нас и близко нет большинства этих сервисов? Да ты Капитан Очевидность...