Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.10.2009, 23:29
alehandro.fedos вне форума Посмотреть профиль Отправить личное сообщение для alehandro.fedos Найти все сообщения от alehandro.fedos
  № 1  
Ответить с цитированием
alehandro.fedos

Регистрация: Oct 2009
Сообщений: 12
По умолчанию Готовый класс для RECORD и REPLAY?

Ребят, сейчас делаю физ. платформер в котором было бы классно реализовать возможность записи и проигрывания как своего так и чужих прохождений, рекордов и т.д. Как делать запись в принципе понятно (запоминать в массив состояние мира), как проигрывать - тоже, сохранение рекордов на сервере и возможность оттуда смотреть - можно разобраться при желании. Но хочется сэкономить время.

Вопрос - есть ли какие-нибудь готовые инструменты для этого.... какой-нибудь готовый класс плеера хотя бы (кнопочки плей, пауза и т.д.).... есть ли инструменты чтобы хранить записи на сервере, отображать их в игре и проигрывать при желании.

Вообщем если вы видели какие-то готовые фишки по этой теме - киньте ссылочки, названия. Просто намекните - сам ничего по теме не нашёл =( а разбираться - времени месяц уйдёт =(

Старый 25.10.2009, 00:00
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 2  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Вообще запись реплеев обычно делается не сохранением состояния мира, а сохранением ввода пользователя. Главным условием является отсутствие настоящих случайностей. Для псевдослучайности нужно запоминать начальное состояние ГПСЧ. Соответственно, чтобы сделать запись ввода, месяц не понадобится.

Старый 25.10.2009, 11:13
alehandro.fedos вне форума Посмотреть профиль Отправить личное сообщение для alehandro.fedos Найти все сообщения от alehandro.fedos
  № 3  
Ответить с цитированием
alehandro.fedos

Регистрация: Oct 2009
Сообщений: 12
Я думал и над записью ввода тоже. Это конечно представляется более простым решением. Случайностей в игре нет - вся карта абсолютно статична. Единственное что смущает - не могут ли случайные погрешности при повторных вычислениях существенно повлиять на результат воспроизведения. В случае запоминания состояния мира такой проблемы нет. Есть ли готовые реализованные примеры? У кого-нибудь есть опыт реализации такого?

Старый 25.10.2009, 11:38
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 4  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Единственное что на ум приходит - если это платформер, то погрешность может быть только если 1.00000000001 посчитается как 1.0000000000002 в вычислениях, а это на результат игры повлиять явно не должно. Хотя, всякое можно сделать, что повлияет...

Старый 25.10.2009, 20:08
alehandro.fedos вне форума Посмотреть профиль Отправить личное сообщение для alehandro.fedos Найти все сообщения от alehandro.fedos
  № 5  
Ответить с цитированием
alehandro.fedos

Регистрация: Oct 2009
Сообщений: 12
Ок! Уговорили =) Сделаю replay запоминанием нажатий клавиш - это решение мне представляется более красивым и простым. Ребят... по теме - по прежнему пишите если был опыт реализации подобного или есть ссылки по теме.

Старый 26.10.2009, 07:19
kackbip вне форума Посмотреть профиль Отправить личное сообщение для kackbip Найти все сообщения от kackbip
  № 6  
Ответить с цитированием
kackbip
 
Аватар для kackbip

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
На результат может повлиять загруженность ЦПУ и как следствие другие результаты таймера.

Старый 26.10.2009, 11:43
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 7  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Бредово это вешать на таймер.
Обработка кнопок все равно происходит на ENTER_FRAME`е, оттуда же и проигрывать надо.
Т.е. если есть массив, индекс которого это текущий кадр - даже если фпс упадет до 2 ничего не изменится.

Старый 26.10.2009, 12:52
alehandro.fedos вне форума Посмотреть профиль Отправить личное сообщение для alehandro.fedos Найти все сообщения от alehandro.fedos
  № 8  
Ответить с цитированием
alehandro.fedos

Регистрация: Oct 2009
Сообщений: 12
да - у меня мир РЕАГИРУЕТ на нажатие клавиш только 30 раз в секунду в функции Update. Листенеры нажатия и отжатия клавиш запоминают их состояния в булевы переменные. Соответственно запись 5 игровых клавиш (Left, Right, Up, Down и Space) может быть записана в виде:
00000
00001
00001
00001
00001

Это 5/30 ых секунды, т.е. кадров. На втором кадре был зажат пробел. Не знаю что будет на медленной машине - скорее будет медленней проигрывать. С этим проблем вроде не должно быть.

Огорчает другое. Скажем у меня персонаж может стрелять верёвкой и карабкаться-раскачиваться на ней. Иногда при большой скорости верёвка ненамного проскакивает в окружающие тела. Понятно что на большой скорости между двумя кадрами препятствие может быть немного проскочено. Волнует что при повторном воспроизведении эта ситуация может реализоваться другим образом (в том числе внутри бокс2д). А сотая доля миллиметра может очень сильно повлиять на дальнейшее воспроизведение клавиш. Эффект бабочки такой. Ну ладно попробуем - там видно будет.

Ещё вопрос к форумчанам. Где мне потом хранить файлы записей рекордов? Знаю что есть платные сервера. Есть ли бесплатные? Давал ли кому-нибудь под такие цели ресурсы сервера ваш спонсор?

Старый 26.10.2009, 13:45
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 9  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Нет, проскочило один раз - проскочит и другой. Math.random()`а же нету? Если есть - надо и его запоминать.

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:28.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.