SupLisEr Fox
51 постов
Карма: 5
#1 22 декабря 2008 в 23:35
Давно интересуюсь этой темой, да и сам работаю над такими фишками (правда, пока ничего рабочего у меня не получилось ;D ).<br /><br />Задача такова - есть два события А и Б, они считаются значительными. Между ними есть третье значительное событие В, и множество мелких незначительных событий. Представим это как концепцию игрового мира. Игрок волен делать с временем что он захочет - может переместиться по времени назад, оказавшись в той или иной точке времени, может переместиться вперед, на любой промежуток времени. Власть над временем, допустим, безгранична, в отличие от всего остального. И игрок должен из точки, предшествующей событию А, добраться до события Б. Он может как дождаться этого момента, придя куда надо, так и манипулировать временем. При этом, в случае, если он все пустит на самотек, на событие Б он слишком сильно опоздает, а если будет использовать способности, может еще и успеть ознакомиться с событием В, которое будет длиться несколько часов (событие Б должно произойти через полчаса после события А), и станет причиной смерти протагониста. При этом, за эти полчаса протагонист должен обрести навыки, необходимые для корректного участия в событии Б, так как в случае ошибки, там его тоже ждет смерть.<br /><br />Замедление, и остановка времени просты, как глоток воздуха - для этого достаточно управлять анимацией окружения. Но перескоки от события к событию, правильное и своевременное срабатывание их алгоритмов - это уже намного интереснее и сложнее. Событие совсем необязательно происходит в пустой, заброшенной деревне, где только два персонажа могут находиться, включая протагониста, а может иметь место и внутри огромного города. Расписать распорядок дня для различных горожан, конечно, можно, но ведь там надо отталкиваться непосредственно от самого времени. Закономерный вопрос - как это правильно реализовать? Использовать таймер? С некоторой точки зрения, это может быть неразумно - тогда от внутриигрового времени может стать зависимым уровень производительности, и наоборот - от скорости компьютера зависеть игровое время. Сразу понятно, что такой способ решения задачи является тупиковым. Есть какие-нибудь предложения?
Каждый из нас ничто без себя, как эго ничтожно без своего обладателя, и лишь высшее эго является совокупностью всех прочих эго. Оно ничто, оно все, оно - Бог.
GT-Agressor
321 постов
Карма: 42
#2 23 декабря 2008 в 07:04
Сделать не цельный игровой мир, из которого герой не выпадает все время, а разделить на отдельные миссии. (?)<br /><br />тогда между миссией А и миссией Б хоть сколько можешь впизать других миссий<br /><br />//возможно такое решение плохо согласует с концепцией игры, хз как ещё сделать
http://gt-team.blog.ru - мой блог :)
http://q3bers.nm.ru - элементы ретекстура для Q3Bers
VorteX
341 постов
Карма: 60
#3 23 декабря 2008 в 08:52
2SupLisEr Fox: несмотря на то, что ты сразу отверг таймер как решение, в задаче у тебя ясно сказано, что &quot;событие такое то&quot; длится X часов. То есть в самом условии задачи таймер предусмотрен :) По поводу перемещения во времени - для перемещения назад можно юзать SAVEGAME&#39;ы :), создаваемые на каждом переломном пункте графа событий. Для перемещения вперед - рассчет прогноза на том же графе. Граф событий игры это сюжет (карты) + игровая логика. Анимация как раз тут совершенно ни при чем.<br /><br />По теме советую посмотреть:<br />http://ru.wikipedia.org/wiki/%D0%98%D0%B3%D1%80%D0%B0_%D0%B6%D0%B8%D0%B7%D0%BD%D1%8C<br />- Яркий пример игры с временем на чистой математике<br /><br />И еще один:<br /><br />http://stalker-game.com/ru/<br />- В этой игре разработчики попытались применить временное моделирование на практике, оно является частью тамошней системы A-LIFE. Команда STALKER AMK мода расширили возможности &nbsp;A-LIFE по процессингу объектов, находящиеся вне игрового уровня (т.н. оффлайн A-LIFE). В общем на фоне красивостей и багов в дебрях движка происходят перестановки, схожие с игрой &quot;Жизнь&quot; Джона Конвея.<br /><br />Злопыхателей СТАЛКЕРА прошу воздержаться от комментариев, речь идет не об игре, а о математике, которая в ней используется)<br />
KRIGSSVIN
930 постов
Карма: 53
#4 23 декабря 2008 в 12:36
Закономерный вопрос - как это правильно реализовать?
<br />Точное и своевременное срабатывание каждого события в расписании (допустим, то же расписание граждан) - без...<br /><br />
С некоторой точки зрения, это может быть неразумно - тогда от внутриигрового времени может стать зависимым уровень производительности, и наоборот - от скорости компьютера зависеть игровое время.
<br />...реализовать не получится. Ну, это и так понятно.<br /><br />Вопрос - можно сразу перескочить в нужный момент времени или, допустим, есть возможность его плавно ускорить? В первом случае всё можно посчитать точно - на загрузке, - ну а если ускорять - тормозов не избежать.&nbsp; 8)<br /><br />Придётся делать краповые оптимизации - увеличение шага горожан, при слишком быстром времени - сразу перемещать в точку назначения. Разговоры и разборки между ними считать в автоматическом режиме, без визуальной составляющей.<br /><br />В любом случае, точного результата без точного расчёта не достичь - нужно идти на компромисс.
willow
570 постов
Карма: 56
#5 23 декабря 2008 в 15:08
SupLisEr Fox<br />Решения есть всегда, тем более когда есть возможность принять нормальное течение времени за единицу. ;)<br /><br />Прыжок во времени назад предусматривается? Течение времени в обратном направлении плавное или дискретное? От этого сильно зависят реализации внутреигровой механики.<br /><br />По поводу перемещения по времени вперёд, это нечто диковатое, аж мурашки. Есть возможность ускорить течение времени до такой степени что это покажется скачком во времени, но просто прыгнуть в будущее это для меня за гранью фантазии. Это противоречит всем мыслимым идеям что я слышал, любой изощрённой логике. И кстати, я всегда считал, что если допустить возможность возвратиться назад в прошлое, то будущее окажется уже недоступным, т.е, я согласен с теми кто считает что нет такой нити что вытянет тебя обратно в твой мир, твою вселенную, твоё измерение - как хотите это называйте. Если мы совершаем прыжок во времени, то мы уже разрываем эту пуповину времени что связывает нас с нашим миром и назад возврата нет.<br /><br />Горожане сменят распорядок дня. Кошка перебежит улицу в другом месте. В магазине закончится совсем другой продукт и т.д. Вы украли деньги из сейфа для выкупа? Значит завтра вам преградят дорогу бастующие, требующие зарплаты и вы опять-таки не выплатили деньги за выкуп. Вселенная изменилась и мы должны возвратиться в точку до кражи денег. Но нас в закрытой зоне заметил банкир, что загружал деньги в сейф, вызвал охрану для получения ответов на трудные вопросы. Мы опять не выплатили выкуп. А что будет, если вашей машинкой времени заинтересуется кто-то иной? А ничего!!! Он просто сгинет из этого мира навсегда и создаст свою собственную вселенную ;) А вы останетесь сидеть в изоляторе тщетно ожидая момента окончания выяснения вашей личности ;D<br /><br />Это то, что прочно сидит у меня в понимании о сути времени, моё ИМХО по вопросу.
KRIGSSVIN
930 постов
Карма: 53
#6 23 декабря 2008 в 15:28
willow<br />Почитай Жерар Клейн &quot;Боги войны&quot; - крыша поедет&nbsp; ;)
GT-Agressor
321 постов
Карма: 42
#7 23 декабря 2008 в 17:58
Ещё вариент:<br />если надо разнести так события во времени, то нужно также разнести их в пространстве.<br /><br />ТЕ событие А происходит в Пункте 1, а событие Б в Пункте 2. Пункт 2 находится в &quot;замороженном состоянии&quot; до прибытия игрока, по прибытию срабатывает триггер, пошло-поехало!<br /><br />Соответственно событие В происходит в пункте 3. И начинает происходить только если персонаж прибыл в пункт 3. Если он уже в пункте 2, то событие В считается свершившимся.<br /><br />Но с вольным перемещением во времени становится как-то запутанно...<br />Внутри одного пункта можно что-то вроде сейв/лоад.<br />(забавно может выглядеть промотка времени назад в ускоренном темпе)<br /><br />Как синхронизировать время между пунктами - опрос отдельный
http://gt-team.blog.ru - мой блог :)
http://q3bers.nm.ru - элементы ретекстура для Q3Bers
willow
570 постов
Карма: 56
#8 23 декабря 2008 в 19:07
Бугага!! А кто сказал, что перемещаясь во времени вы перемещаетесь также в пространстве? :)&nbsp; Не, ну хоть бы кто показал в фильме, как ученый оказался бы в открытом космосе без скафандра, или похороненным заживо в стене или под землёй в связи с коррекцией орбиты земли во времени и пространстве ::)<br /><br />Только представьте, отправляете человека в машине времени неизвестно куда, да и вообще трудно сказать, отправили или просто дезинтегрировали&nbsp; ;D ;D ;D ведь обратно в это измерение он в любом смысле не вернётся<br /><br />А то что обсуждаете вы, вперёд-назад, перемотка - это всё фантазия по типу магии. Время в своём роде тоже базовый элемент мироздания с которым магия может работать в том числе. Потому как магия может всё, на что способна фантазия сказочника&nbsp; ;)
willow
570 постов
Карма: 56
#9 23 декабря 2008 в 19:38
Конкретные технические предложения по сабжу я предложить не могу, т.к. плохо воспринял саму концепцию и просто не согласен её обдумывать.<br /><br />Могу предложить некие &quot;временные аномалии&quot;, когда игрока отшвыривает в произвольную точку игрового мира, а у игрока есть только детектор позволяющий эти самые дырки найти и активировать. Дырка уже предполагает некий заранее продуманный сетап - время, место, события. Для игрока дать возможность лишь примерной оценки места и времени. Что-то большее мой мозг не переварит. Плюс, классические ускорение-замедление времени, нет проблем. А вот, кстати интересно, как если бы при резком выходе из замедления времени у игрока разрывало бы от бешенного пульса сердце&nbsp; ::) и наоборот, при замедлении останавливалось бы и медленно адаптировалось, набирая пульс.<br /><br />Напрямую воздействовать на время для игры я считаю неверным тактическим шагом. Должны же быть какие-то пенальти чтобы не злоупотреблять фичей. Предсказание будущего кстати - это тоже Бан. Почему предсказателей никто толком понять не может - а потому что скажи они хоть слово по делу и будущее изменится. Факт станет лишь вероятностью. Хотите убить игру в зародыше - придумайте ей управление временем и предсказание будущего.<br /><br />Нужно будет заценить фичу Diablo 3 c локальным замедлением времени.
VorteX
341 постов
Карма: 60
#10 23 декабря 2008 в 20:08
GT-Agressor: интересная мысль, &nbsp;как будто различные концовки, только игра еще продолжается :)<br /><br />willow пишет:<br />
Бугага!! А кто сказал, что перемещаясь во времени вы перемещаетесь также в пространстве?
А почему нет?<br /><br />Прыгнуть в будущее возможно, это доказано всякими нострадамусами и прочими пророками-предсказателями. Еще интересную идею показали в сериале &quot;Мертвая Зона&quot;, где главный герой пытается скорректировать будущее направленными действиями в настоящем.<br /><br />Давайте не выбираться за пределы использования времени В ИГРАХ. Нагородить теорий и ИМХОВ по времени можно сколько угодно, только вряд ли это будет кому-нибудь интересно в этом топике.<br />