Для реализации некоторых ситуаций, связанных с внутренним временем игры, неплохо было бы иметь некий таймер, он же — глобальный счётчик "тактов" игры. Например, чтобы узнать, как давно в локации побывал персонаж нужно вычесть текущее показание этого счётчика с показанием счётчика на момент пребывания персонажа в локации. Или запрограммировать какое-либо событие на столько-то "тактов" от текущего момента (нет, это не real-time), например, отправление поезда через 20 тактов от покупки билета.
Так вот вопрос — что лучше брать в качестве "такта"? Логично, что в этом качестве может выступать любое действие игрока. Но разные действия, по идее, могут занимать разное число тактов: покупка билета займёт больше времени чем осмотр площади перед кассой и уж тем более — чем смена обоймы в пистолете. Хотя на это можно и забить. А есть ли ещё варианты? Но без скатывания к real-time.
Неактивен
1 переход на другую локацию = 1 такт. Как в игре "Великая Пустота".
Но лучше и надежнее привязать "наступление события" к логически обоснованному длительному действию игрока. Сделал все, что планировал, пошел на обед, вернулся когда время подошло.
Отредактировано Nex (17.01.2011 15:54)
Неактивен
За такт обычно берётся всё-таки одно действие, потому что именно это — единица движения сюжетной сцены (во как завернул). Проще говоря, в бою перезарядить пистолет так же важно, как потратить день на перемещение между Москвой и Воронежем в поездке Париж — Владивосток. То есть, если мы введём какой-то масштаб времени и будем учитывать, что путь Москва—Воронеж требует 5 тактов, а перезарядка пистолета — одного такта, то у нас будет четыре лишних скучных такта, в которых игрок будет ехать в Воронеж. И каждый такт ему придётся нажимать на кнопку «ждать».
Да, это нереалистично. Но зато игрок не скучает в нарочито растянутых сюжетных моментах. Например, когда надо дёрнуть за рычаг, подождать, пока включится питание, дёрнуть за второй рычаг, подождать, пока включится панель управления, набрать комбинацию... Это реалистично, это даёт понятие времени. Но в этой последовательности есть два такта, в которых игроку нечего делать. Если у него нет ничего, чтобы себя занять (например, предметов в котомке), то он просто будет тыкать в кнопку «ждать». Зачем? Это так важно — дать явно понять, что действие совершается дольше обычного? Это можно написать.
Покупка билета занимает больше времени, чем осмотр площади перед кассой. Если так хочется, можно ввести внутриигровое время во внутриигровых минутах и часах. Но их связь с тактами будет очень и очень нетривиальной. Опять же — сколько часов занимает переход на локацию? Если это — соседние комнаты, то между ними минута ходьбы. А если это — соседние города? Я считаю, что такой таймер нельзя привязывать к тактам, он должен находиться полностью внутри игры.
Неактивен
Oreolek написал:
…у нас будет четыре лишних скучных такта, …и каждый такт ему придётся нажимать на кнопку «ждать».
На самом деле можно привязать к действию, количество тактов, за которое оно выполняется. Например предложить автору сообщать игре о факте свершения какого-либо действия (как заинтересовать автора это делать — как-нибудь в другой раз). Так вот, по умолчанию это сообщение говорит о прошествии 1 такта игры, но автор может указать и большее число. Т.е. при перезарядке пистолета автор сообщает игре (повторюсь: о том как его в этом заинтересовать — не в этой теме), что на это ушёл 1 такт, а если он покупает билет — то это уже тактов 50 (или же, если он в хороших отношениях с кассиром, — 15).
Неактивен
А как тогда это объяснить игроку? Почему у меня поезд отходит сразу же, как только я куплю билет, а мой друг Петя купил билет и ещё успел побродить по перрону? Всё равно придётся вводить какое-то внутриигровое отражение.
Неактивен
Банально. В доп. описании делаем часы, на них показываем текущее время.
Если игроку заранее известно, когда состоится следующее событие, то и время этого события отображаем, чтобы можно было более легко отслеживать наступление события.
Неактивен
Oreolek написал:
А как тогда это объяснить игроку? Почему у меня поезд отходит сразу же, как только я куплю билет, а мой друг Петя купил билет и ещё успел побродить по перрону? Всё равно придётся вводить какое-то внутриигровое отражение.
А что мешает заранее донести до игрока, что если в баре угостить кассира пивом, то можно избежать участи приятеля персонажа, который накануне наорал на кассира и битых 20 минут ждал, пока тот мстительно долго оформлял билет?
Неактивен
Неактивен
Cheshire написал:
Это скорее пример того, что можно с этим счётчиком делать.
Неактивен
Если говорить о событиях по таймеру, то какими могут быть параметры запуска и "расписание" для подобных событий?
Привязка. Событие может быть привязано:
Повторение. Событие может происходить:
Периодичность. Событие может происходить с периодичностью:
Неактивен
Вы забыли еще коэфициенте тактов, назовем его фактор такта, который в зависимости от фактора и обстоятельств в игре влияет на величину такта. Согласитесь, что ГГ не может бегать все время, как супермен или могут быть обстоятельства, из-за которых он не может двигаться с обычной скоростью (например, пьяный или съел таблетку быстрой ходьбы и т.д.).
А отражение всегда должно быть таким, чтобы игрок мог понять, что здесь есть закономерность. А часы, портят весь шарм исследовательского духа, даже в плане закономерностей. Прекрасный тому пример, это игры с КР2, там подавляющие число игр показывает условные значения (мы же не компьютеры все точно знать наперед). И они по своему отсчитывают свое понимание тактов. Вот только излишней конкретики на манер, пихать везде часы у них точно.
З.Ы.
Я бы еще лучше изложил суть своих мыслей, но увы, пора на роботу. Извините, позже продолжу.
Неактивен
Eten написал:
Вы забыли еще коэфициенте тактов, назовем его фактор такта, который в зависимости от фактора и обстоятельств в игре влияет на величину такта. Согласитесь, что ГГ не может бегать все время, как супермен или могут быть обстоятельства, из-за которых он не может двигаться с обычной скоростью (например, пьяный или съел таблетку быстрой ходьбы и т.д.).
Как это забыли?
Olegus t.Gl. написал:
На самом деле можно привязать к действию, количество тактов, за которое оно выполняется … Т.е. при перезарядке пистолета автор сообщает игре, что на это ушёл 1 такт, а если он покупает билет — то это уже тактов 50…
Неактивен
Тогда вы упомянули лишь вскользь, не обозначив этот важный момент. А потом, начали мудрить, забыв, что в игре всегда есть какие-то условности и сущий реализм тут уже перебор.
На мой взгляд, у вас должна быть условная система тактов, основанная на азах и шаблонах той деятельности, к которой вы ее применяете. Тогда игрок примет вашу игру такую, какую вы ее реализовали. Так во многих играх делают.
З.Ы.
Блин, я бы написал по подробнее, но устал после вчерашней напряженной работы. Так что отпишусь полнее, ближе к вечеру, извините, но устал. Хотя, очень хочется присоединиться к обсуждению и есть, что сказать. Надо отдохнуть.
Отредактировано Eten (21.05.2012 06:54)
Неактивен