|
|
|||||
Регистрация: Oct 2009
Сообщений: 12
|
Готовый класс для RECORD и REPLAY?
Ребят, сейчас делаю физ. платформер в котором было бы классно реализовать возможность записи и проигрывания как своего так и чужих прохождений, рекордов и т.д. Как делать запись в принципе понятно (запоминать в массив состояние мира), как проигрывать - тоже, сохранение рекордов на сервере и возможность оттуда смотреть - можно разобраться при желании. Но хочется сэкономить время.
Вопрос - есть ли какие-нибудь готовые инструменты для этого.... какой-нибудь готовый класс плеера хотя бы (кнопочки плей, пауза и т.д.).... есть ли инструменты чтобы хранить записи на сервере, отображать их в игре и проигрывать при желании. Вообщем если вы видели какие-то готовые фишки по этой теме - киньте ссылочки, названия. Просто намекните - сам ничего по теме не нашёл =( а разбираться - времени месяц уйдёт =( |
|
|||||
Регистрация: Feb 2009
Сообщений: 1,195
|
Вообще запись реплеев обычно делается не сохранением состояния мира, а сохранением ввода пользователя. Главным условием является отсутствие настоящих случайностей. Для псевдослучайности нужно запоминать начальное состояние ГПСЧ. Соответственно, чтобы сделать запись ввода, месяц не понадобится.
|
|
|||||
Регистрация: Oct 2009
Сообщений: 12
|
Я думал и над записью ввода тоже. Это конечно представляется более простым решением. Случайностей в игре нет - вся карта абсолютно статична. Единственное что смущает - не могут ли случайные погрешности при повторных вычислениях существенно повлиять на результат воспроизведения. В случае запоминания состояния мира такой проблемы нет. Есть ли готовые реализованные примеры? У кого-нибудь есть опыт реализации такого?
|
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Единственное что на ум приходит - если это платформер, то погрешность может быть только если 1.00000000001 посчитается как 1.0000000000002 в вычислениях, а это на результат игры повлиять явно не должно. Хотя, всякое можно сделать, что повлияет...
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
Регистрация: Oct 2009
Сообщений: 12
|
Ок! Уговорили =) Сделаю replay запоминанием нажатий клавиш - это решение мне представляется более красивым и простым. Ребят... по теме - по прежнему пишите если был опыт реализации подобного или есть ссылки по теме.
|
|
|||||
На результат может повлиять загруженность ЦПУ и как следствие другие результаты таймера.
|
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Бредово это вешать на таймер.
Обработка кнопок все равно происходит на ENTER_FRAME`е, оттуда же и проигрывать надо. Т.е. если есть массив, индекс которого это текущий кадр - даже если фпс упадет до 2 ничего не изменится.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
Регистрация: Oct 2009
Сообщений: 12
|
да - у меня мир РЕАГИРУЕТ на нажатие клавиш только 30 раз в секунду в функции Update. Листенеры нажатия и отжатия клавиш запоминают их состояния в булевы переменные. Соответственно запись 5 игровых клавиш (Left, Right, Up, Down и Space) может быть записана в виде:
00000 00001 00001 00001 00001 Это 5/30 ых секунды, т.е. кадров. На втором кадре был зажат пробел. Не знаю что будет на медленной машине - скорее будет медленней проигрывать. С этим проблем вроде не должно быть. Огорчает другое. Скажем у меня персонаж может стрелять верёвкой и карабкаться-раскачиваться на ней. Иногда при большой скорости верёвка ненамного проскакивает в окружающие тела. Понятно что на большой скорости между двумя кадрами препятствие может быть немного проскочено. Волнует что при повторном воспроизведении эта ситуация может реализоваться другим образом (в том числе внутри бокс2д). А сотая доля миллиметра может очень сильно повлиять на дальнейшее воспроизведение клавиш. Эффект бабочки такой. Ну ладно попробуем - там видно будет. Ещё вопрос к форумчанам. Где мне потом хранить файлы записей рекордов? Знаю что есть платные сервера. Есть ли бесплатные? Давал ли кому-нибудь под такие цели ресурсы сервера ваш спонсор? |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Нет, проскочило один раз - проскочит и другой. Math.random()`а же нету? Если есть - надо и его запоминать.
__________________
Тут мужик танцует и поёт про флэш |
Часовой пояс GMT +4, время: 19:28. |
|
« Предыдущая тема | Следующая тема » |
|
|