![]() |
Ответ: Black Bird
В общем тестировал сегодня со всеми, очень понравилось, прикольно, но не хватает очень много на стороне клиента плюшек.
Например система стрельбы ракетами, прикольная, т.к. ракеты контролируются мышкой, но при этом это сбивает прицел для туррели. Но это имхо ок. А вот то что не чувствуется дистанция ракет и других персонажей - это имхо важно. Для этого есть имхо две идеи как можно это улучшить: 1. Ракеты должны подсвечиваться аугментной реальностью, и иметь данные о дистанции. 2. Радар. На деле это нужно 3д радар, с плоскостью и вертикальными линиями для улучшения ориентации в пространстве и понимании где кто находится. Ракеты тоже должны находиться на этом радаре. Желательно и патроны туреллей. Конечно такой элемент в интерфейсе весьма тяжёлый, и требует очень много усилий для реализации. Плюс, ну тут не прими как недостаток - у тебя опыта работы с сетью не так и много, плюс объём работы большой. Но нужна синхронизация и предсказания (экстраполяция), а не интерполяция. Иначе картинки у игроков сильно отличаются.. В такую игру хочется иметь наводную базу с туреллями, которую будут игроки атаковать, точнее две базы (две команды). |
Ответ: Black Bird
Появилась возможность играть без хамачи.
Ну как, прошлые версии понравились по игре? Стоит - ли развивать тему? Скорее всего это последнее, во что я вложусь на ксорсе. Планируется гаражик, что-то вроде World of tanks, можно будет настроить свой самолет , купить новый и тп. Ну и по игре самой - режим с базами, как Мока предложил. Что скажите? |
Ответ: Black Bird
Ни на один тест увы не смог попасть, а очень хотелось, люблю авиасимуляторы. Скрины радуют. Если есть время - конечно развивай.
|
Ответ: Black Bird
Продолжай, если хочется.
Мне понравилось как мы полетали в прошлый раз) |
Ответ: Black Bird
Работа продолжается.
Поработал в сабере, получил опыта, открыл блек бирд. Сразу кучу всего пределал) Графика снова будет переработана. Прикрутил оптимизации, поднял около 30ти фпс, это хватит, чтобы обустроить игровую сцену. Убрал лишнее из худа, переделал работу с камерой. на карте предположительно будет ночной каньон. Может кто-нибудь подкинит каких-нибудь крутых идей, кроме выше пречисленных? Идеи должны быть направленны на поднятие гемплея. Пока идеи такие: 1) Добавить на Q/E какие-нибудь финты с уворотами от ракет 2) Можно сделать какие-нибудь абилити для игроков на кнопку X. Например сброс ИК ловушек, починка и тп. 3) Ангар, где можно настроить самолет и купить новый, также с оружием для него. 4) Добавить небольшую РПГ систему. За сбитого игрока будет начисляться опыт, за опыт начисляется уровень, уровень может давать доступ к новым самолетам и оружиям, абилитям. Сразу возникает вопрос как потом отделять нубов от высокоуровневых игроков. 5) Можно попробовать воткнуть на мой сайт статистику. 6) Есть идея летать не только на самолетах. Хочется какие-нибудь штуки с множеством турелей что-ле. Или открыть классы самолетов, сделать перехватчиков, истребителей, что-то в таком духе. Отсюда можно будет делить абилки. 7) Ракеты поделить на:
9) Убрать физику баллет. |
Ответ: Black Bird
Переделать сетевую часть, с нормальной и честной синхронизацией с экстраполяцией (а то из-за задержки, стреляя и попадая - не попадает).
|
Ответ: Black Bird
Цитата:
Знач так, идея такая. На клиенте будут отслеживаться нажатые клавиши, кнопки посылаются на сервер, сервер их обсчитывает и посылает посчитанные пакеты клиентам. Полученные пакеты клиент будет приводить в действие на экране игрока, движение самолетов будет немного сплайниться. |
Ответ: Black Bird
Суть "справедливых" решений заключается в том кто решает что игрок попал, а кто нет, и на основании каких данных.
Т.к. избежать задержки невозможно, и данные с одного клиента будут идти до другого за промежуток времени задержки одного клиента плюс задержки другого, то тут нужно думать о симуляции "будущих" данных на клиентах. Суть проста: Authoritative Server <> Client модель самая стойкая и популярная на данный момент. Сервер всегда прав и просчитывает всё сам. Клиент лишь "просит" у сервера всё, и отдаёт ему собственный ввод. Сервер получает ввод и симулирует поведение сетевых объектов. Затем с определённой частотой раздаёт клиентам пакеты состояний. Частота раздач намного меньше чем частота симуляции. Например симуляция может быть 30 тактов в секунду, а раздач 10 в секунду. Следственно клиент должен сглаживать данные. Но т.к. мы уже говорили о том что клиент должен предсказывать, следственно получая данные от сервера, клиент должен вычислять предполагаемые будущие данные, и затем симулировать поведение уже с расчётом на предполагаемые данные. Это называется экстраполяция. Долгота предположений должна зависеть от промежутка времени между пакетами состояния мира (в данном случае 100 мс), плюс собственный пинг (сглаженный по времени), таким образом клиент будет пытаться предположить весьма далеко состояние которое на самом деле сейчас происходит на сервере. Задача симулировать как можно ближе реальное состояние на данный момент у всех клиентов. Собственные данные, применять сразу, но смешивать с предполагаемыми данными как и других клиентов, сглаживать границу своей симуляции так, чтобы не сильно отличалось от данных при экстраполяции, но и не чувствовалось лага, иначе игроку очень не понравиться задержка реакции, тем более в такой активной игре. Далее самое сложное, это серверная часть. Т.к. симулируем всё на клиентах приближенно к серверным в реальном времени данным, ошибка будет, но мы её не учитываем. Задача тут, является вычисления в прошлом. Например клиента А с задержкой 80мс, в момент 100мс, стреляет. Пакет приходит на сервер уже в момент 180мс, но данные основывались на 80мс времени ранее. Для справедливости, сервер должен посмотреть на критичные данные для справедливых вычислений (позиции самолётов), на 80мс назад по времени с момента получения пакета (180мс), сделать вычисления, и послать клиенту ответ. Клиент же уже всё симулировал (выстрел), но реально попал или нет, узнал только от сервера на 300мс. Почему не 260? Потому что сервер посылает пакеты обновлений каждые 100мс. И лишь потом мы можем увидеть изменения в ХП у противника, и возможно эффекты взрывов (если уже не симулировал). Отклик будет 200мс хоть и задержка у клиента 80мс. Хитрости которые можно тут применить, это полёт пули на клиенте, как раз не мгновенный, когда сервер же вычисляет всё сразу (лучи), тем самым можно клиенту дать инфу о поподаниях, даже до того как у клиента пуля долетит до противника. Следственно с такой хитростью, упрощается логика на сервере, и не чувствуется лага. |
Ответ: Black Bird
Шикарно
|
Ответ: Black Bird
|
Часовой пояс GMT +4, время: 05:01. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot