{{notification.text}}

MirGames

Wishmaster
03.01.12 15:26
0
Здравствуйте.

Появилась идея маленькой аркады, основанной на управлении временем.
Две возможности: замедление и инверсия.
Собственно, вопрос в реализации второго.
Пока единственное что мне приходит в голову, на каждом update записывать в массив все состояния всех объектов, и при инверсии просто отображать их в обратном порядке.

Может есть варианты лучше?

Заранее спасибо.
#1
Хранитель Флейма
03.01.12 15:41
0
Wishmaster
Все так.
#2
Wishmaster
04.01.12 20:54
0
И больше ничего нельзя придумать?
Всё-таки, держать события за последние 10-15 минут (а я хочу огромные уровни и возможность возвращаться в любой момент времени) в памяти как-то не радует.
#3
Хранитель Флейма
04.01.12 21:00
0
Wishmaster
0o.

Как будет выглядеть промотка на 10 минут назад?

-------
Если у тебя огромные уровни с двумя тремя катающимися по ним шарами - то памяти вполне хватит. Более того может так получится, что даже сотни объектов не создадут особо нагрузки, если они перемещаются по клеткам, скажем.

-------
Логирование наше все.
#4
Wishmaster
05.01.12 03:51
0
Цитата(Said @ 4.01.2012 - 17:00) [snapback]109740[/snapback]
Как будет выглядеть промотка на 10 минут назад?

Полоса прокрутки как при просмотре фильма. например.


Цитата(Said @ 4.01.2012 - 17:00) [snapback]109740[/snapback]

Если у тебя огромные уровни с двумя тремя катающимися по ним шарами - то памяти вполне хватит.

Я тут прикинул, действительно не очень много выходит.


Большое спасибо за ответы.
#5
07.01.12 17:06
0
Wishmaster
Как вариант оптимизации - держать кучу объектов, свойства которых являются функциями времени. Т.е., например, у тебя есть какой-нибудь вечношатающийся маятник. Его отматывать по времени легко. Другой вариант - это логгирование, а потом уже оптимизация какими-нибудь кривыми. На гд.ру была статья.
http://www.gamedev.ru/code/articles/?id=4257
Вот, например.
#6
MirGames Dev
09.01.12 01:29
0
Записывать только действия пользователя. Использовать предсказумую рандомизацию, которая бы выдавала одинаковые значения на одинаковые входные параметры. Делать рандом от локального игрового времени и некоторого сида, генерируемого при старте уровня. Обязательно учитывать delta time в функции update, при инверсии делать дельту отрицательной. Ну и любое действие пользователя должно иметь соответствующее противодействие)
#7
05.06.12 06:21
0
Можно описать всю логику игры математически. При этом ввести базовые функции типа функции ввода с клавиатуры/мыши(ее придется логировать) и например шума со смещением по времени(как предложил Mef). В результате должен получиться набор монструозных "законов" визуализация которых не должна составить особых проблем.

Навыки абстрактного мышления тебе этого не забудут :D
#{{post.Index}}
{{post.Author.Login}}
{{post.CreatedDate | date:'dd.MM.yy HH:mm'}}
{{post.VotesRating}}
Отредактировано: {{post.UpdatedDate | date:'dd.MM.yy HH:mm'}}