Кофе
emergency
дневник заведен 08-07-2007
закладки:
цитатник:
дневник:
местожительство:
Москва, Россия
10-05-2009 23:08 Время вспять
Время, как головная боль - его на самом деле нет (как и болевых рецепторов в мозгу), только ощущение.

Время - это наше ощущение причинно следственной связи.
Как в часах - одна шестерёнка двигает другую, другая - третью, третья - четвёртую. Если заставить шестерёнки двигаться в обратную сторону - часы будут двигаться назад. Ускорить их - они ускорятся. Замедлить - замедлится в часах и время.

Так как все шестерёнки взаимосвязаны - всё "время" можно провернуть, заставивив двигаться назад лишь одну.

То есть управление временем, это не некий мистический процесс из области хай-фая. Это вполне формализумая вещь.

Для эмуляции значит нужна система, работающая по линейным причинно-следственым связям и такая, в которой импульс не исчезает в никуда.
Возьмём, к примеру, классический арканоид. Получилось бы его "развернуть"?

Предположим, что "основной шестерённкой" мы делаем шарик. Тогда:
1) Поведение доски мы делаем линейно зависимым от движений шарика (не имеет значение каким именно способом, к примеру - пишем бота, который бы пытался всегда подставлять доску под шарик).

Далее возникает проблема. Даже повернув "главную шестерёнку" назад (то есть, направив назад шарик) игра назад не пустится. Почему? Потому что не будут появляться назад кирпичи.
А появляться они не будут, потому что от удара шарика по кирпичам теряется импульс.

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

Теперь другая проблема - полёт частиц от шарика не зависит. Т.е. под "главную шестерёнку" шарик больше не подходит. Значит нужно:

3) Сделать некий механизм, позволяющий ускорить, замедлить или повернуть назад движение всех свободно летающих по уровню элементов (а это шарик и частицы - других нет).
Конкретнее: Каждому "летающему" элементу нужно передать импульс, который его бы и двигал.

Теперь этот этот импульс становится "временем". Повернув везде импульс (просто умножив скорость на -1), мы поворачиваем назад всю игру, которую теперь можно как угодно отматывать в любую сторону. Кирпичи будут разлетаться на частицы в обычном времени и собираться назад в обратном.

Это, конечно, максимально упрощённый пример.
Комментарии:
11-05-2009 03:46
Darker than VITAL
Понял. То есть можно будет даже переставлять блоки на поле произвольным образом. Или даже указывать новое место для уже выбитых. )
Камрад
Конечно. Система держит в себе импульс - ей наплевать, что ты куда поставишь.
Она будет довольно странно работать - если долго мотать время туда-обратно потому что тогда пол будет "создавать" импульсы в самых неожиданных местах, отпинывая вообще некие левые предметы.
Однако всё будет правильно работать.
11-05-2009 03:55
Darker than VITAL
А если убрать кубик с того места, откуда его система должна толкнуть обратно и включить обратную перемотку? Куда денется импульс?
Камрад
Никуда. Уйдёт в воздух.
А если на этом месте в тот момент окажется что-то другое (например если рядом будет пролетать шарик) - толкнёт его.

отредактировано: 11-05-2009 04:29 - emergency

11-05-2009 12:47
Darker than VITAL
Тогда нарушается замкнутость системы, если только воздух не является ее частью.
Камрад
Если очень хочется - можно создать мелкие частицы, которые бы разлетались при этом.
Но зачем?

Я вроде бы не замкнутую систему придумывал, а играбельную версию арканоида с промоткой туда-обратно.
11-05-2009 14:42
Darker than VITAL
Вообще, конечно, незачем. Однако, во-первых, оригинальный арканоид все же является замкнутой системой, во-вторых, этот факт у тебя указан в посте. Ну, и в-третьих, как-то не по-чистоплюйски это! Ну, незамкнутые системы.
11-05-2009 14:50
Darker than VITAL
Вообще-то это подстава, все-таки. Если пустить шестеренки назад, это как раз и будет просто "промотка"!!
Камрад
Оригиальный арканоид был замкнутой системой?
Что ты имеешь ввиду по этим?
12-05-2009 04:21
Darker than VITAL
Означает, что там есть абсолютно упругий шарик и весь импульс, который ему придают кирпичи и ракетка, никуда не исчезает. А что ты имел ввиду, когда писал, что Для эмуляции значит нужна система, работающая по линейным причинно-следственым связям и такая, в которой импульс не исчезает в никуда.
12-05-2009 04:21
Darker than VITAL
?
Камрад
Я не понимаю, нафига ты связал в своих рассужениях замкнутую систему и сохранние импульса шарика, и каким боком ты соотнёс это с промоткой времени. Какая-то мешанина у тебя получилась.

Что я имею ввиду - я подробно расписал в записи по пунктам.
12-05-2009 16:48
Darker than VITAL
Не сохранение импульса шарика, а сохранение импульса системы. "Полный импульс замкнутой системы тел остается постоянным при любых взаимодействиях тел этой системы между собой." Далее, определение замкнутой системы - "Замкнутой системой называют группу тел, не взаимодействующих ни с какими другими телами, которые не входят в состав этой группы." Твое определение импульса по сравнению с "Векторную величину р = m v, равную произведению массы тела на его скорость, называют импульсом тела." отличается не сильно, поэтому я позаимствовал и остальную терминологию из физики.
12-05-2009 16:50
Darker than VITAL
А насчет времени - по-моему, любая попытка честно смоделировать все эти взаимодействия в обратном порядке упрется в обычную отмотку назад. Как нейтрино. Вот, что я имел ввиду. Если только не менять импульс системы перестановками кубиков.
12-05-2009 16:54
Darker than VITAL
Вообще, это отдельные мысли были. Типа, параллельные
12-05-2009 16:56
Darker than VITAL
Кстати, если тебя я уже задолбал, прямо напиши. ) И будем считать, что ты автоматически прав
12-05-2009 17:00
Darker than VITAL
Вот тебе такая идея, кстати - шарик при прямом ходе не уничтожает кубики, а забивает их в землю, а при обратном - их вытаскивает. В полном соответствии с законом сохранения импульса. Тогда главной шестеренкой будет именно шарик. А то у тебя неясно, что ей стало.
Камрад
Шарик вытаскивающий кубики при обратной отмотке будет работать неправильно (если не сохранять в нём количество касаний с вбитым кубиком).

Ипульс системы я не рассматривал.
Я брал импульс отдельных элементов.
Смысл сохранения импульса в том, чтобы любое действие, активировало за собой другое. В после активации тем или иным образом "сохранялось" и время и место действия.

Место сохранить не сложно. Сложнее сохарнить время. Можно делать это банальнмы выставлением таймера. Но значительно красивее - если таймер будет скрытый (т.е. как я написал в примере с "выталкивающим кубики полом").

Смысла обязательно делать главной шестерёнкой шарик - я не вижу. Это можно сделать, но тогда придётся отказаться от остальных движущихся элементов на поле (бонусов, деталей, монстров). И это будет значительно менее красиво.
12-05-2009 19:55
Darker than VITAL
Сила удара (В) ушла в А, так что к примеру, если ты отмотаешь время назад, то А в нужный момент соберёт силу чтобы "пнуть" то, что на нём лежит. В чем здесь скрытость таймера?
И какие именно "неправильности" может вызвать шарик, вытаскивающий кубики при обратной отмотке?
12-05-2009 19:57
Darker than VITAL
И все же - а в твоем плане где главная шестеренка?
Закрыть