[кокой та там Twitter] Ответы Антона Юдинцева на Gamescom 2015
war_tundra — 25.08.2015 Ответы Антона Юдинцева на Gamescom 2015официальная версия выложена на форуме http://forum.warthunder.ru/index.php?showtopic=157623&p=4775884#entry4775884
Особенно, часть где читы упоминаются, позабавила. Ну и судя по всему кораблей до релиза не будет:
Антон: Уже на моменте планирования War Thunder мы серьёзно отнеслись к вопросам соединения и работе в сети. Вообще, в игровой индустрии есть два подхода к онлайн-играм: 1) “клиентская” или p2p игра - по этой схеме построено большинство “мультиплеерных”-игр. В данном случае, даже если есть выделенный сервер (для дополнительной валидации) , приходится в той или иной степени “доверять” компьютерам-клиентам 2) “тонкий клиент”, когда всё, что происходит в игре, происходит на выделенных серверах, а клиент только отправляет команды по управлению и визуализирует данные (возможно, с некоторой долей “предсказания”, основанном на командах управления). Так вот, оба подхода имеют свои слабые стороны - первый очень уязвим к разрывам соединений с клиентом, а также подвержен “читам”, хотя и требует гораздо меньше серверов. Кроме того, такие игры могут ставить игроков с плохим соединением в более выигрышное положение. Второй подход чрезвычайно чувствителен к качеству соединения, при плохом интернете такие игры очень неотзывчивы, играть в них бывает даже невозможно. Особенно сильно это заметно на быстродвижущейся технике со сложной физикой - простая экстраполяция работает очень плохо, а скорость управления очень важна, иначе самолёт, например, просто уйдёт в сваливание.
Мы изобрели свой собственный подход.
Всё происходит на сервере, но каждый игровой клиент также полностью симулирует собственный физический мир, при этом отправляя команды управления (с некоторой избыточностью) на сервер. Сервер принимает команды управления и воспроизводит клиентский мир на определённый момент времени, как бы возвращаясь в прошлое и переприменяя управление, поэтому даже несколько процентов потерянных пакетов не столь влияет, а затем сервер отправляет клиенту текущие данные, из настоящего - положение машины, скорость, и т.д. На этот раз уже клиент отправляется в прошлое, и переприменяет более свежее управления (кнопки нажатые позже). В идеальном мире - и без взаимодействия с другими игроками - все данные будут синхронизированы даже с пингом в 700 миллисекунд, потому что сервер и клиент воспроизводят одинаковое положение в игре, с одинаковым управлением, примененным в одно и то же “объективное” время. При этом читы здесь невозможны - “взломанный” клиент может только поменять своё положение локально, не влияя на других игроков или своё реальное положение на сервере, а сам сервер в ответ присылает клиенту его действительное положение - фактически читер, скажем, со “спидхаком” или “бессмертием”, может только испортить себе игру, и вообще не может повлиять на других игроков.
Единственный заметный эффект большой задержки соединения (пинга), который выглядит как “скачок” происходит только когда какой-то другой игрок вступил в какое-либо взаимодействие с вами на сервере, однако проблем взаимодействия при плохом соединении даже теоретически нельзя избежать ни в одной сетевой модели. Таким образом, управление самолётом/танком является независимым от задержки времени! Единственное, что вам нужно, это стабильный (постоянный устойчивый) пинг и соединение без слишком больших потерь данных.
У нашего подхода тоже есть недостаток - он требует существенно больших серверных мощностей, (и немного больших вычислительных мощностей от клиентов с большой задержкой, однако клиент считает только собственное положение, а вот сервер просчитывает целый мир!).
Все игровые элементы, которые мы запланировали на момент релиза, либо в работе, либо уже в игре. На ближайшее время после релиза в плане разработки остаются режим “Мировой войны” и третья составляющая War Thunder - флот
|
</> |