Search | LastPosts | Recent | Register

E-mail:

Password: (Forgot it?)

Login

This forum is archived. You may not reply.

Uplanet => Прожекты => Движение кораблей и планет

Jump to:

Next Oldest | Next Newest

3/18/2008 6:05:05 PM Link | Reply | Edit | Quote

gegMOPO3

Profile Send Private Message Send E-Mail
Location: Lapland | Joined: 7/13/2006 | Posts: 833 |

Мне нужен совет. Скоро мне придётся делать выбор между несколькими вариантами реализации движения кораблей с учётом движения планет. Я приведу особенности, положительные и отрицательные стороны вариантов, хотелось бы от опытных игроков услышать насколько важны доводы за тот или иной вариант, какие детали я упустил, что же в результате предпочтительнее.

  1. При движении планет не изменяется расстояние до планеты назначения (как во всех зарубежных потомках Galaxy и оригинальной ДГ). Именно в этом случае верна поговорка "от инкаминга убежать нельзя". Запустив корабли, можно быть уверенным, что они долетят до цели именно тогда, когда планировалось, с каждым ходом "отъедая" от расстояния величину, равную скорости. Движение планет не влияет на время прибытия.

    Как следствие -- очень удобно использовать планеты для перевозки грузов. Можно отправить планету и грузовики "вдогонку" за ней, с рассчётом, чтобы догнали у цели, таким образом сэкономить ход или больше.

    Пример: С планеты А(0;0) на планету Б(40;0) отправляется корабль со скоростью 20. Если планета Б летит вправо со скоростью 10, то на следующем ходу координаты Б будут (50;0), а координаты корабля (30;0). Если планеты А и Б летят вверх со скоростью 10, то на следующем ходу их координаты будут (0;10) и (40;10), а координаты корабля (20;10). В любом случае корабль прибывает на Б через 2 хода.


  2. При движении планет не изменяются координаты кораблей (как в современной ДГ и ОГС). Этот вариант несовместим с форматом отчёта, в котором предполагается, что корабли летают только по прямой между планетами, что приводит к разнообразным неприятностям (см. "Малоизвестные особенности Dragon Galaxy", GC#66). В принципе есть решение этой проблемы, предложенное Крашем (удивительно, что никто не додумался до этого раньше), при этом рассчёт положения летящих кораблей на следующем ход остаётся громоздким, но в принципе возможным -- владелец в клиенте видит действительное положение корабля. Но время прибытия остаётся неопределённым, очень трудно использовать планеты для перевозки грузов, легко "промахнуться", планета-"грузовоз" теряет ход при каждом развороте. В принципе это не критично, но неудобно.

    Пример: С планеты А(0;0) на планету Б(40;0) отправляется корабль со скоростью 20. Если планета Б летит вправо со скоростью 10, то на следующем ходу координаты Б будут (50;0), а координаты корабля (20;0), корабль не долетит за 2 хода. Если планеты А и Б летят вверх со скоростью 10, то на следующем ходу их координаты будут (0;10) и (40;10), а координаты корабля (20;10). Но клиенты покажут корабль в точке (17.64;10).


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

    Пример: С планеты А(0;0) на планету Б(40;0) отправляется корабль со скоростью 20. Если планета Б летит вправо со скоростью 10, то на следующем ходу координаты Б будут (50;0), а координаты корабля (20;0). Если планета А летит вправо со скоростью 10, то на следующем ходу координаты А будут (10;0), а координаты корабля (30;0). Если при этом Б летела со скоростью 10 влево, то её координаты также будут (30;0) и корабль долетит до Б всего за ход. Если планеты А и Б летят вверх со скоростью 10, то на следующем ходу их координаты будут (0;10) и (40;10), а координаты корабля (20;10) (как и в варианте 1).

Вариант 2 в отличие от 1 и 3 плохо приспособлен для случая "дрейфа" планет (как например и в "Бездне"). Движение летящих кораблей становится плохо предсказуемым даже при синхронном движении планет (в некоторых случаях "дрейфа" можно предсказуемо двигать и летящие корабли, но лишь в тривиальных, не представляющих никакого игрового интереса, кроме эстетического).

Вариант 1 классический и отражает естественную внутреннюю структуру отчёта и всех старых серверов.

Но если рассматривать то, что "от инкама убежать нельзя" как безусловный недостаток (для чего вероятно на ДГ и перешли к варианту 2), то интересной альтернативой становится вариант 3.

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

В принципе, возможно реализовать даже все три варианта, сделав это опцией партии. Но я не уверен, что такое усложнение оправдано. К тому же от варианта по-умолчанию будет зависеть внешний формат партии во второй версии ОГС.

Всё вышесказанное относится прежде всего к ОГС, изменения на котором неизбежны (но пройдёт ещё время, достаточное для рассмотрения вопроса). Что касается ДГ, то было бы весьма желательно избавится хотя бы от самой грубой ошибки (не соответсвие координат кораблей в сервере и клиентах) используя решение Краша или подобное. Самый простой способ состоит использовании на сервере кода клиента (доступного ГМ ДГ как автору ГВНГ) для коррекции координат, но можно рассмотреть и другие способы коррекции (могу предложить свою помощь по реализации исправления). Переход же к вариантам 1 и 2 на ДГ как я подозреваю сопряжён со значительным переписыванием кода сервера (если не изменением формата базы игры) и вряд ли Роман решится на него. Но я могу и ошибаться.


http://uplanet.ru | http://pbem.uplanet.ru | http://galaxylegend.ru | http://duelserver.ru | http://www.galaxyclub.ru |
http://galaxylegend.ru/press/pz | http://www.orioner.ru/racelist | http://forum.galaxylegend.ru | http://pbem.eu.org/B-on/logs/html

3/18/2008 6:56:21 PM Link | Reply | Edit | Quote

NeulyBorn

Profile Send Private Message Send E-Mail
Location: | Joined: 2/11/2008 | Posts: 304 |

Мне нравится 3, он прост и по-извращённому логичен. В то же время сохраняется честная проблема: потеря 2 ходов при транспортировке грузов планетами. Хошь-не хошь, а ходы теряешь. Поэтому 3 вариант!

3/19/2008 3:48:48 AM Link | Reply | Edit | Quote

Homo

Profile Send Private Message Send E-Mail
Location: Israel | Joined: 12/3/2005 | Posts: 179 | Offline

В варианте 3 - Б летит вправо со скоростью 10, А летит влево со скоростью 20. Что получим? Подвариант - расстояние между планетами не 40, а 100, например. При скорости корабля меньше скорости планеты вылета, А получается приколотой на месте до прибытия корабля на Б. ОЧЕНЬ НЕУДОБНО!


Homo

3/19/2008 6:36:44 PM Link | Reply | Edit | Quote

gegMOPO3

Profile Send Private Message Send E-Mail
Location: Lapland | Joined: 7/13/2006 | Posts: 833 |

Хомо, это не неудобно, это просто другое поведение. Только вариант 1 гарантирует конечное и предсказуемое время полёта, во всех остальных случаях возможна ситуация, когда корабль никогда (в бесконечной галактике) не догонит планету. Вариант 3 может быть даже удобным, ведь есть возможность "подтолкнуть" инкам со своей планеты.


http://uplanet.ru | http://pbem.uplanet.ru | http://galaxylegend.ru | http://duelserver.ru | http://www.galaxyclub.ru |
http://galaxylegend.ru/press/pz | http://www.orioner.ru/racelist | http://forum.galaxylegend.ru | http://pbem.eu.org/B-on/logs/html

3/20/2008 11:16:56 AM Link | Reply | Edit | Quote

Homo

Profile Send Private Message Send E-Mail
Location: Israel | Joined: 12/3/2005 | Posts: 179 | Offline

gegMOPO3 said:
Хомо, это не неудобно, это просто другое поведение. Только вариант 1 гарантирует конечное и предсказуемое время полёта, во всех остальных случаях возможна ситуация, когда корабль никогда (в бесконечной галактике) не догонит планету. Вариант 3 может быть даже удобным, ведь есть возможность "подтолкнуть" инкам со своей планеты.

Деда, айда в большой ресеч. Ты все сам поймешь Флот с А убегает на Б к подкреплению с 5-ходовым инкамом. А захватывает противник и отправляет в другую сторону (в свой сектор). У противника драйв больше скорости флота. ВСЕ, сдохли оба флота. Это только простейший пример. ИМХО, вариант 3 не играбельный.
В варианте 2 нестыковка сервера и клиентов, которую, в принципе, можно устранить. Возможно, уже исправлено в GVNG5 - не анализировал там инкамы. Сейчас можно исправить и в GComm2. Кстати, прибытие своих инкамов на свои планеты расчитать просто и управлять ими можно.
Но какие кренделя получается выписывать, пряча целые флоты в 20-ходовых инкамах и вылавливая их в неожиданном месте, когда противник потерял твой флот из виду!
Как ты это сделаешь в варианте 3, если планета А уже захвачена противником? Все таки, планету прибытия ты выбираешь сам и отвечаешь перед зеркалом, а планету убытия покидаешь, иногда, вынуждено.

В ресеч, Деда, в ресеч! Поближе к финалу! У тебя мнение само поменяется. Войдешь со своим мнением, а выйдешь с мнением...


Homo

3/20/2008 3:37:54 PM Link | Reply | Edit | Quote

gegMOPO3

Profile Send Private Message Send E-Mail
Location: Lapland | Joined: 7/13/2006 | Posts: 833 |

Хомо, можно было бы на это парировать тем, что и противник в том же положении, против него можно использовать ту же тактику, поэтому всё честно. Но я не буду использовать этот аргумент. Если ты, единственный отвечающий, считаешь, что минусы использования этой тактики против тебя перевешивают плюсы использования её тобой или что наличие такого приёма вообще делает игру хуже, то придётся поверить твоему опыту. Вариант 3 я привёл как альтернативу варианту 1 если галаксиане сочтут "недостатки" варианта 1 слишком большими. Я не настаиваю, я просто хочу узнать мнение более опытных игроков, чтобы не принять неверное решение.

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


http://uplanet.ru | http://pbem.uplanet.ru | http://galaxylegend.ru | http://duelserver.ru | http://www.galaxyclub.ru |
http://galaxylegend.ru/press/pz | http://www.orioner.ru/racelist | http://forum.galaxylegend.ru | http://pbem.eu.org/B-on/logs/html

3/21/2008 2:33:38 PM Link | Reply | Edit | Quote

Homo

Profile Send Private Message Send E-Mail
Location: Israel | Joined: 12/3/2005 | Posts: 179 | Offline

Честно, честно. Я не спорю. Просто, по своему опыту описал ужас по варианту 3 часто встречающейся ситуации.
Отличия будут заметны только в монстроидальных партиях типа ресечей. А сколько игроков, доживших до больших войн в ресечах, регулярно бывают на форуме? А сколько из них хотят вспоминать этот кошмар? Врядли многие из них полезут в ресеч еще раз. Им все равно. А в регулярках отличия между вариантами 2 и 3 почти не будут заметны. Да и убегать от инкама особо некуда. Вот и отвечаю я один, что есть плохо - моя колокольня не самая высокая и еще не достроена
С проблемой координат кораблей я сам сталкивался, иногда до абсурда Может, стоить и говорить о реализации предложения Краша, а не менять принцип?


Homo

3/21/2008 7:27:20 PM Link | Reply | Edit | Quote

Krash Great

Profile Send Private Message
Location: | Joined: 12/1/2005 | Posts: 1034 |

Дед, тут у читателей есть проблемы с пониманием "принципа Краша". Ты не мог бы объяснить всё просто и без цифр. Летит кораблик, летит планета, тут вдруг неожиданно генерится репка,... А то из твоего описания я лично ничиво не понял.

Да, чуть не забыл. Тут же модно в последнее время всё обосновывать. Кароче, пипл грубо можно поделить на лириков и физиков. Одним понятен и прост твой пример с планетами А и Б и они радостно тянуцца за калькулятором проверять твои выкладки. Для других (меня в том числе) вид цифр вызывает неприодолимую тягу закрыть броузер. Мне понятнее образное описание. С цветом игнорируемых звёзд и упоминанием облупленной обшивки космического транспортника. Э-э-э... надеюсь изложил внятно.

*** Edited 21.03.2008 16:34:30 UTC by Krash Great***


3/21/2008 10:57:50 PM Link | Reply | Edit | Quote

gegMOPO3

Profile Send Private Message Send E-Mail
Location: Lapland | Joined: 7/13/2006 | Posts: 833 |

Краш, ну ты же должен сам помнить. Логов у меня нет или я не могу найти. Мы же с тобой на канале беседовали о том о том, что на ДГ корабли летают не по прямой и в результате то, что показывают клиенты отличается от того, что на сервере. Ты сказал что-то вроде "Это же просто решается! Пусть сервер пересчитывает координаты на те, что показал бы клиент!"

Ну и я же физик, а не лирик. Сухарь-сухарём. Что-то просчитать, проанализировать -- пожалуйста. Ярко и доходчиво объяснить -- увы. Надеюсь на твою помощь.


http://uplanet.ru | http://pbem.uplanet.ru | http://galaxylegend.ru | http://duelserver.ru | http://www.galaxyclub.ru |
http://galaxylegend.ru/press/pz | http://www.orioner.ru/racelist | http://forum.galaxylegend.ru | http://pbem.eu.org/B-on/logs/html

3/22/2008 9:54:29 AM Link | Reply | Edit | Quote

lleha

Profile Send Private Message Send E-Mail
Location: | Joined: 11/30/2005 | Posts: 219 | Offline

Вставлю свои пять копеек.

Мне вариант 2, реализованый на ДГ представляется единственно правильным. Проблема с отображением группы относительно порта отплытия и порта прибытия - это проблема только отображения, но не игрового процесса.

Ллеха.

Next Oldest | Next Newest

Uplanet => Прожекты => Движение кораблей и планет

  Please login or register to post.