ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
|
» Концепция времени для глобальной стратегии. | страница 3 |
|
|
|
Канал Игры Мечты: «Концепция времени для глобальной стратегии.» |
|
|
Minx
1011 EGP
        Рейтинг канала: 6(332) Репутация: 139 Сообщения: 10548 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005
 |
|
Guest : |
Уже реализовано в KMP для KSP.
|
А как там реализовано разруливание коллизии? Кнопкой Sync? Вселенные делают merge?
Если игрок на Муне оставил луноход в будущем, а на это место в попозже в прошлом кто-то прилетел, то что система делает?
добавлено спустя 1 минуту:
В общем случае KSP хорошо подходит под fork'и, т.к. космос большой и коллизий там немного. Разве если только захотеть в кого-нибудь врезаться.
_________________ μηδείς αγεωμέτρητος εισίτω
Последний раз редактировалось: Minx (00:38 17-05-2014), всего редактировалось 1 раз |
|
|
Guest
2075 EGP
              Рейтинг канала: 5(167) Репутация: 376 Сообщения: 27975 Откуда: Моск. Зарегистрирован: 12.10.2004
 |
|
Minx : |
Если игрок на Муне оставил луноход в будущем, а на это место в попозже в прошлом кто-то прилетел, то что система делает?
|
До синхронизации - ничего, но на Муне виден "призрак будущего лунохода", т.к. луноход к этому времени уже там. Призрак не снабжён с физикой и всё взаимодействие с ним сведено к действию "пыриться".
После синхронизации - merge с известными последствиями.
добавлено спустя 1 минуту:
Minx : |
В общем случае KSP хорошо подходит под fork'и, т.к. космос большой и коллизий там немного. Разве если только захотеть в кого-нибудь врезаться.
|
Фокус в том, что именно последнее действие и интересно с точки зрения мультиплеера. Только ради этого KMP и затевался, т.к. иначе играть можно и "по переписке", безо всякого допонительного кода.
_________________ Трещит земля как пустой орех
Как щепка трещит броня
Последний раз редактировалось: Guest (00:42 17-05-2014), всего редактировалось 1 раз |
|
|
Minx
1011 EGP
        Рейтинг канала: 6(332) Репутация: 139 Сообщения: 10548 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005
 |
|
Т.е. получается, что столкновение в прошлом не влияет на того, кто в будущем, а для того, кто в прошлом - последствия в его Вселенной..
Почти такой же fork, как у меня (;
_________________ μηδείς αγεωμέτρητος εισίτω |
|
|
Guest
2075 EGP
              Рейтинг канала: 5(167) Репутация: 376 Сообщения: 27975 Откуда: Моск. Зарегистрирован: 12.10.2004
 |
|
Minx : |
Т.е. получается, что столкновение в прошлом не влияет на того, кто в будущем, а для того, кто в прошлом - последствия в его Вселенной..
Почти такой же fork, как у меня (;
|
Guest : |
Уже реализовано в KMP для KSP.
|
;~]
добавлено спустя 8 минут:
Minx : |
получается, что столкновение в прошлом не влияет на того, кто в будущем, а для того, кто в прошлом - последствия в его Вселенной..
|
Не совсем - для того, кто в будущем, те же последствия после синхронизации. Последствия вообще возникают после синхронизации, т.к. trunk'ом является самое будущее "будущее". Причём форки появляются в тот момент, когда кто-нибудь врубает ускорение времени и в это будущее уходит. И форками являются именно что отстающие. Потому что у "будущего" время не останавливается, и дельта между ними может только расти.
Тут, правда, возникает ещё один интересный конфликт, а именно процесс синхронизации. Он опять же влияет главным образом на форки. Т.к. в транке конфигурация мира иная, чем в момент синхронизации (как минимум планеты сдвинулись, да и корабль форка на месте не стоял), то с учётом симуляции в течение дельты можно огрести гораздо более серьёзные последствия, особенно если движение в форке не было должным образом стабилизировано.
_________________ Трещит земля как пустой орех
Как щепка трещит броня
Последний раз редактировалось: Guest (01:01 17-05-2014), всего редактировалось 1 раз |
|
|
Minx
1011 EGP
        Рейтинг канала: 6(332) Репутация: 139 Сообщения: 10548 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005
 |
|
Guest : |
Не совсем - для того, кто в будущем, те же последствия после синхронизации.
|
Получается trunk откатывает назад?
Guest : |
Потому что у "будущего" время не останавливается, и дельта между ними может только расти.
|
Почему? А форк не может стать trunk'ом?
Guest : |
то с учётом симуляции в течение дельты можно огрести гораздо более серьёзные последствия, особенно если движение в форке не было должным образом стабилизировано.
|
А в чем фишка геймплея в таком мире, кроме последствий столкновений? Вместо Союз-Аполлон собрать, и конкурировать в одной игре за патенты и контракты?
Получается уходить в будущее совсем не выгодно..
_________________ μηδείς αγεωμέτρητος εισίτω
Последний раз редактировалось: Minx (01:15 17-05-2014), всего редактировалось 3 раз(а) |
|
|
Guest
2075 EGP
              Рейтинг канала: 5(167) Репутация: 376 Сообщения: 27975 Откуда: Моск. Зарегистрирован: 12.10.2004
 |
|
Minx : |
Его получается откатывает назад?
|
Нет. В нём материализуется синхронизирующийся.
"призраков прошлого" у него тоже нет, т.к. ему бессымысленно видеть, где находится прошлое, а дельта достаточно велика, чтобы синхронное ему "будущее" было нереально предсказать.
Minx : |
Почему? А форк не может стать trunk'ом?
|
Нет. Не может. Движение из будущего в прошлое там не изобрели
Будущее - оно уже детерминировано тем, кто в нём. Поэтому оно и транк. И никак не может стать форком, кроме как ликвидацией и приданием абсолютному забвению того, кто в нём находится.
Если бы там была обратная симуляция или запись всех действий, включая траекторию и ресурсы, и это можно было бы "проигрывать назад" - то в этом случае синхронизироваться можно было бы на любую точку времени, причём "прошлые" получали бы преимущество недетерминированности относительно "будущих", каковые только и могли бы, что откатываться к более ранним этапам своего развития/движения.
Minx : |
А в чем фишка геймплея в таком мире, кроме последствий столкновений? Вместо Союз-Аполлон собрать, и конкурировать в одной игре за патенты и контракты?
|
Это уже зависит от геймплея конь-кретной игры.
В KSP пока нет экономики, поэтому хз что там будет насчёт контрактов. А вот стыковка Союза и Аполло причём в режиме пилотирования обоих кораблей своими игроками - это как раз одна из целей, челенжей и задач KMP.
Алсо, к примеру, можно соревноваться, кто быстрее соберёт, запустит и доберётся до Муны. Причём, что опять же характерно - в реальном масштабе времени, включая конструирование.
добавлено спустя 5 минут:
Ещё тут недавно попадалась какая-то игра с реализацией весьма странных темпоральных боёв. Кажись, где-то на кикстартере и в гринлайте. Если вспомню и найду - дам ссылку.
Там предлагалась возможность сбрасывать войска в недалёкое прошлое на небольшое время контроля, и таким образом влиять на настоящее и будущее противника. Ну и себя тоже. Только я до конца не вкурил, как именно разрешается темпоральная коллизия.
_________________ Трещит земля как пустой орех
Как щепка трещит броня
Последний раз редактировалось: Guest (01:25 17-05-2014), всего редактировалось 2 раз(а) |
|
|
Minx
1011 EGP
        Рейтинг канала: 6(332) Репутация: 139 Сообщения: 10548 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005
 |
|
Guest : |
Нет. В нём материализуется синхронизирующийся.
"призраков прошлого" у него тоже нет, т.к. ему бессымысленно видеть, где находится прошлое, а дельта достаточно велика, чтобы синхронное ему "будущее" было нереально предсказать.
|
Эм..
Игрок A прилетел на Муну и оставил там корабль, в 01:00. Игрок B прилетел на Муну в 0:30 и видит призрак. Оставляет гранату, и аккуратно улетает. Нажимаем Sync. Игрок A по идее должен столкнуться в своем прошлом (об гранату). И? Как будто ничего не было?
Guest : |
Будущее - оно уже детерминировано тем, кто в нём. Поэтому оно и транк. И никак не может стать форком, кроме как ликвидацией и приданием абсолютному забвению того, кто в нём находится.
|
Чего-то я не понял.
Есть игрок A и игрок B. A запускает время вперед и становится trunk'ом. Потом долго в реальном времени чего-то делает, а тем временем B включает ускорение и обходит во времени игры игрока A. Получается B уходит в будущее и должен стать trunk'ом. Или нет? Там какие-то заморочки синхронизации?
Guest : |
Алсо, к примеру, можно соревноваться, кто быстрее соберёт, запустит и доберётся до Муны. Причём, что опять же характерно - в реальном масштабе времени, включая конструирование.
|
Ну это можно по почте скринштом..
_________________ μηδείς αγεωμέτρητος εισίτω
Последний раз редактировалось: Minx (01:30 17-05-2014), всего редактировалось 1 раз |
|
|
Guest
2075 EGP
              Рейтинг канала: 5(167) Репутация: 376 Сообщения: 27975 Откуда: Моск. Зарегистрирован: 12.10.2004
 |
|
А, собственно, да, вот она -
Olorin : |
В ключе топика ответы на часть вопросов дает подход Achron
|
Сайт, с видео: http://www.achrongame.com/site/
добавлено спустя 9 минут:
Minx : |
Эм..
Игрок A прилетел на Муну и оставил там корабль, в 01:00. Игрок B прилетел на Муну в 0:30 и видит призрак. Оставляет гранату, и аккуратно улетает. Нажимаем Sync. Игрок A по идее должен столкнуться в своем прошлом. И? Как будто ничего не было?
|
Было. "Прошлое" проецируется на настоящее. Если в момент нажатия игроком B кнопки Sync его "граната" была на месте, игрок A внезапно обнаруживает, что эта "граната" натурально находится в его корабле. Даже если у него уже 4:00 - она появится там именно в момент merge (как и положено при слиянии дерева).
Minx : |
Чего-то я не понял.
Есть игрок A и игрок B. A запускает время вперед и становится trunk'ом. Потом долго в реальном времени чего-то делает, а тем временем B включает ускорение и обходит во времени игры игрока A. Получается B уходит в будущее и должен стать trunk'ом. Или нет? Там какие-то заморочки синхронизации?
|
А, в этом смысле... Да, в этом случае B становится транком, и А должен выбрать симуляцией дельту до него, до того, как он сможет с ним взаимодействовать. Там только одна заморочка - положение "призраков" в пространстве. Т.е. "догонит" ли, летя по той же траектории в процессе ускорения времени, игрок В призрака А (в момент пересечения равного времени этот призрак всё равно исчезнет и призрака начнёт видеть уже А), или нет. По логике - не должен. Реально же в KMP у нас такой ситуации не было, чтобы посмотреть. Когда мы играли, там с синхронизацией клиентов и сервера такая беда была, что призраков было сложно увидеть даже. Играли практически "по переписке", видя только конечные результаты действий друг друга, и старались синхронизироваться почаще, т.к. корабль можно было потерять только так.
добавлено спустя 31 секунду:
Minx : |
Ну это можно по почте скринштом..
|
Это неинтересно
_________________ Трещит земля как пустой орех
Как щепка трещит броня
Последний раз редактировалось: Guest (01:39 17-05-2014), всего редактировалось 2 раз(а) |
|
|
Minx
1011 EGP
        Рейтинг канала: 6(332) Репутация: 139 Сообщения: 10548 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005
 |
|
Здесь у них есть описание: http://www.achrongame.com/site/achron-and-the-grandfather-paradox.php
Во-первых, сделано так, что отпрыгнуть назад есть определенный лимит. В случае парадокса выживает то состояние, которое окажется в момент лимита.
Во-вторых, прыги во времени ограничены по ресурсам. Поэтому может быть выгоднее построить что-то, чем делать лишние прыжки.
В-третьих, куча балансировки.
добавлено спустя 3 минуты:
Guest : |
Если в момент нажатия игроком B кнопки Sync его "граната" была на месте, игрок A внезапно обнаруживает, что эта "граната" натурально находится в его корабле. Даже если у него уже 4:00 - она появится там именно в момент merge (как и положено при слиянии дерева).
|
Теперь понятно. Коллапса как такового нет, а предметы делают телепорт без анализа коллизий (причинно-следственных связей).
_________________ μηδείς αγεωμέτρητος εισίτω
Последний раз редактировалось: Minx (01:46 17-05-2014), всего редактировалось 1 раз |
|
|
Guest
2075 EGP
              Рейтинг канала: 5(167) Репутация: 376 Сообщения: 27975 Откуда: Моск. Зарегистрирован: 12.10.2004
 |
|
Покурил Achron - получается практически обычная RTS, т.к. время до очередного изменения таймлайна стабильно. Что бы ни пришло со следующей волной "синхронизации", до её фронта сохраняется неизменное "настоящее", а потом наступает "настоящее" того, кто находится раньше по времени (в прошлом). Чем дальше в прошлом (точнее, чем больше дельта) - тем больше потенциально реализуемое преимущество, но тем дороже обходятся операции, дабы свести это преимущество к балансу.
Парадоксы разрешаются только по фронту волны синхронизации.
добавлено спустя 13 минут:
Minx : |
Теперь понятно. Коллапса как такового нет, а предметы делают телепорт без анализа коллизий (причинно-следственных связей).
|
Без. Иначе у "будущего" игрока была бы очень неустойчивая ситуация - у него бы требовалось постоянное отображение "будущего" всех "прошлых" (разрешение причин и заодно возможность избегать физических коллизий), а с механикой космических перемещений от небольших действий в прошлом больно уж сильно разнится будущее
Если разрешать причинно-средственные связи, то внезапно оказывается, что корабль А уже разрушен (столкновение с В), а потом не разрушен (В промахнулся с разгоном и не попал), а потом снова разрушен (В поправил траекторию), а затем снова целый (В промахнулся с коррекцией). Как-то внезапно обидно, не находишь?
А тут всё норм - В, нажимая кнопку синхронизации, и зная, что к моменту "настоящего" А его корабль уже должен быть на поверхности, получает на выходе ликвидацию своего корабля как "разбившегося".
Ну или в случае "гранаты" она появляется в корабле А именно в момент синхронизации, а не тогда, когда её положил В.
Дельта между В и А проходится мгновенно, без комплексного промежуточного анализа. Только проверка на положение утыкания в какое-либо небесное тело (это и так делает KSP, показывая нам траектории полёта - для нас эти траектории и есть будущее). Всё. А если чего совпало после синхронизации - это уже физика разрешать будет.
З.Ы.: собственно, "граната" не может взаимодействовать с призраком. Во сколько бы она не была положена.
З.З.Ы.: когда ты применяешь термин "коллизия", я в первую очередь думаю о триггерах физики, а не о темпоральных парадоксах
добавлено спустя 15 минут:
Guest : |
Было. "Прошлое" проецируется на настоящее. Если в момент нажатия игроком B кнопки Sync его "граната" была на месте, игрок A внезапно обнаруживает, что эта "граната" натурально находится в его корабле. Даже если у него уже 4:00 - она появится там именно в момент merge (как и положено при слиянии дерева).
|
Не совсем даже верно написал.
Если в момент Sync (какое бы время там ни было, лишь бы это было прошлое) в форке В "граната" лежала в призраке корабля А (призраки отображают настоящее транка и настоящее всех форков впереди текущего форка по времени!), то она после слияния окажется в реальном корабле А. Только так.
Тут ещё не описан элемент оффлайна.
Если А вышел до того, как на него кто-то синхронизировался, то его версия всё равно будет транком, её держит сервер.
Разумеется, корабль его будет неуправлем, но если он находится на стабильной орбите или на поверхности - он так и будет там летать/стоять. А если не находится - будет уничтожен, либо в реал-тайме на глазах у того, кто синхронизировался, либо попав в форк.
Также этот корабль можно уничтожить, пока А находится в оффлайне, натурально столкнувшись с ним. Или состыковавшись и сведя с орбиты. Или каким-либо другим образом. И это тоже будет уже trunk.
При подключении к серверу игрок всегда получит текущий trunk мира (т.е. самую актуальную версию событий) - это ещё одна причина, почему все форки всегда в прошлом.
_________________ Трещит земля как пустой орех
Как щепка трещит броня
Последний раз редактировалось: Guest (02:32 17-05-2014), всего редактировалось 5 раз(а) |
|
|
Shirson
1605 EGP
           Рейтинг канала: 7(626) Репутация: 219 Сообщения: 16511 Откуда: 79°W 44°N Зарегистрирован: 29.01.2002
 |
|
Minx : |
Входные данные: каждый игрок живет в своем реальном времени, которое может течь с произвольной скоростью, но не может течь вспять.
Классическая коллизия: игрок A ушел вперед, и игрок B ещё нет; со временем игрок B встречает игрока A (может догоняет, а может его в его прошлом) и вопрос что делать.
|
Ну, пара геймплейных вариантов есть.
Например выдавать отставшему игроку темпорально-ресурсные плюшки, с помощью которых он может получить преймущества над опережающем игроком.
Другая версия - есть генеральная линия времени, а все кто от неё отрываются (в любую сторону), получают штрафы. Скажем, за сутки должно проходить сутки плюс сутки ускорения. Кто копается в рилтайме - отстаёт и штрафуется. Кто торопистя - тоже самое.
Тут будет зависить от игромеха, какие именно плюшки и какие именно штрафы.
Например если это стратегия, у отстающего игрока считается его проперти, ресурсы и динамика развития за некоторый период времени, после чего экстраполируется на разницу между вторым игроком и предоставляется возможность построить/колонизировать/чегоужтамеще, на выданные плюшки (как этап синхронизации)
_________________ У меня бисера не доxеpа. |
|
|
Guest
2075 EGP
              Рейтинг канала: 5(167) Репутация: 376 Сообщения: 27975 Откуда: Моск. Зарегистрирован: 12.10.2004
 |
|
Shirson : |
Например если это стратегия, у отстающего игрока считается его проперти, ресурсы и динамика развития за некоторый период времени, после чего экстраполируется на разницу между вторым игроком и предоставляется возможность построить/колонизировать/чегоужтамеще, на выданные плюшки (как этап синхронизации)
|
Если игрок из прошлого может влиять на будущее, при условии невозможности разворота времени - то тут не плюшки надо выдавать, а штрафы, причём очень серьёзные.
Вообще ИМХО так:
1) нельзя штрафовать игрока за то, что он играет в удобном ему ритме (пауза, замедленный, реал-тайм, ускоренный). Это штраф на ровном месте и "ни за что".
2) нужно штрафовать того, кто может влиять в односторонем порядке на другого. Классический пример - изменение будущего из прошлого. Штрафовать при этом нужно за действие, иначе см. п.1.
2.1) за абьюзинг тайм-механики надо штрафовать вообще люто бешено. Потому что абьюзить будут, к Ванге не ходи.
3) нельзя поощрять за невмешательство - это демотиватор межигрокового взаимодействия. Так мы мультиплеер в сингл превращаем.
добавлено спустя 1 минуту:
Shirson : |
(ох, опять я в это ввязался )
|
Дропни! Дропни это!
_________________ Трещит земля как пустой орех
Как щепка трещит броня
Последний раз редактировалось: Guest (09:08 17-05-2014), всего редактировалось 1 раз |
|
|
Minx
1011 EGP
        Рейтинг канала: 6(332) Репутация: 139 Сообщения: 10548 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005
 |
|
Интересным подходом слияния fork'ов, хотя немного трудоемким и не всем понятным, может быть подстраивание обеих Вселенных так, что в точке слияния они идентичны друг другу.
Например есть игрок A и игрок B. Оба они движутся во времени с отличной от нуля скоростью. Если A отстал от B, и начинает приближаться к Вселенной B, то во Вселенных происходят события, которые сближают ветки A и B.
Например, в A произошел захват планеты X. А в B произошел захват планеты Y. Если Вселенные сближаются, то происходят события вида "освобождена/захвачена X/Y", а в merge ветке получается материализуется вклад каждого из игроков.
_________________ μηδείς αγεωμέτρητος εισίτω |
|
|
Guest
2075 EGP
              Рейтинг канала: 5(167) Репутация: 376 Сообщения: 27975 Откуда: Моск. Зарегистрирован: 12.10.2004
 |
|
Некстати, тут KMP умер и появился DMP. И там используется механизм проецирования прошлого на будущее без лишних кнопок, и это, я вам скажу, хоть и "правильнее" с религиозной точки зрения, но выглядит кошмарно.
Ибо в небесной механике незначительные изменения векторов скоростей в прошлом дают значительный разброс параметров в (отдалённом) будущем. И так для игр делать, пожалуй, не стоит. А то сплошные телепорты...
_________________ Трещит земля как пустой орех
Как щепка трещит броня |
|
|
|
|
|
Канал Игры Мечты: «Концепция времени для глобальной стратегии.» |
|
К списку каналов | Наверх страницы |
Цитата не в тему: Мелька, не отмелькивайся от темы! (посоветовал Vitalii MeLeK)
|
» Концепция времени для глобальной стратегии. | страница 3 |
|