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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.03.2012, 01:42
xdoom вне форума Посмотреть профиль Отправить личное сообщение для xdoom Найти все сообщения от xdoom
  № 1  
Ответить с цитированием
xdoom
 
Аватар для xdoom

Регистрация: Apr 2008
Адрес: black sea
Сообщений: 137
Отправить сообщение для xdoom с помощью MSN Отправить сообщение для xdoom с помощью Skype™
Question Аппетит событий и DI

Лет много назад прочитал и запомнил что-то вроде.
Цитата:
Вы уже знаете, что факт события сопровождается рассылкой сообщений всем его листенерам. Это не слишком сильно сказывается на скорости проигрывания фильма, если листенеров немного. Но если число клипов достигает нескольких сотен, то работа плейера практически останавливается, И значительный вклад в общую нагрузку на систему вносит необходимость информировать все клипы и кнопки более чем о двух десятках видов событий. Естественно, что если рассылать сообщение обо всех событиях всем объектам, то Fash-плейер со средним фильмом не потянет даже новейший Pentium 4.
Вопрос не про спрайты и визуальные объекты, как правильно работать с ними довольно известно.

Вопрос в некотором смысле про mvc, когда создаются классы событий, и все связи работают через слушателей и команды. Особенно когда события передают данные, например каждые 50ms увесистую стопку json, существенно ли это отягощает cpu и ram??? в сравнении с прямой связью между классами.

В проекте используется robolegs - всё супер и клёво, но всё только начинается и пока на мобилке приложение без графики занимает 7метров, и летает, но функционал будет нарастать и если строго следовать правилам mvc, то количество слушателей в легкую перевалит за сотню, а мобилный проц всёж думаю ещё послабей четвёртого пня будет.

по сути, это дублирование вопроса заданного на недавно на потрошителе

и dependency injection, по идее не много где его использую, но всё же хочу успокоится, что нет у него тех проблем с понижением производительности что были с биндингом во флексе.
__________________
trace("my notes")

Старый 01.03.2012, 01:57
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 2  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Какой смысл гонять каждые 50ms увесистую стопку json? Тем более json.

Добавлено через 4 минуты
Вы это читали?
Цитата:
It is recommended that models and services injected directly into mediators are done so via the interfaces the service and model classes implement. An example of this can be found in the Example Service section below.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 01.03.2012, 02:29
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 3  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
DI не заменяет события
DI это механизм создания зависимостей а не разновидность обсервера

роботлегзовский инжектор, кстати тоже работает не мгновенно из-за вызовов describeType

события можно заменить на signals или на коллбэки
__________________
Хороший отдых - половина работы.

Старый 01.03.2012, 03:16
xdoom вне форума Посмотреть профиль Отправить личное сообщение для xdoom Найти все сообщения от xdoom
  № 4  
Ответить с цитированием
xdoom
 
Аватар для xdoom

Регистрация: Apr 2008
Адрес: black sea
Сообщений: 137
Отправить сообщение для xdoom с помощью MSN Отправить сообщение для xdoom с помощью Skype™
Цитата:
Сообщение от alatar Посмотреть сообщение
Какой смысл гонять каждые 50ms увесистую стопку json? Тем более json.
Экшен-игра перемещение игроков, выстрелы. Прощупываю минимальный отклик чтоб было играбельно как quake скажем. Не знаю, но подозреваю там как-то так же сделано. Json в bytearray спрячется по необходимости.
Читал не всё, но над некоторыми кусками медитировал часами, цитируемую строчку пропустил, она вроде значит
injector.mapSingleton(HexEngine); - так не рекомендуется
injector.mapSingletonOf(IPhysModel,SimplePhys) - а так оно самое?

artcraft, пасиб за ценную инфу,
инжект работает не мгновенно только только в момент инициализации, или при любом вызове/установки методы/параметра? - этож тогда плохо получается, быстрей работать с настоящей копией модуля.

А вообще вопрос о скорости выполнении сотен событий в секунду, в разных частях программы.
fps геймплей он такой и физику посчитай и графику нарисуй и с сервера прими и на сервер отправь.
Именно в инициализации самих событий как прокладки между... а не скорости выполнения привязанных к ним метод.

Если оно критично - в топку mvc, используем другой способ.
__________________
trace("my notes")


Последний раз редактировалось xdoom; 01.03.2012 в 14:12.
Старый 01.03.2012, 12:34
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 5  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Непосредственно в игровом процессе архитектурные фреймворки мало применимы. Вы можете использовать его для экранов меню и передачи данных, но тут речь не идет о "выполнении сотен событий в секунду". События не бесплатны, попробуйте создать несколько тысяч спрайтов и поводить над ними мышкой. Но, даже в играх выполнение сотен событий в секунду это исключение и признак плохой архитектуры.

Насчет json. Я так и не понял где вы его применяете. Внутри приложения? Нет смысла. Для передачи данных между игроками и/или сервером? В случае шутера, слишком расточительно. Есть множество более дешевых бинарных форматов, типа AMF. В конце-концов можно свой протокол написать, точно отвечающий нуждам игры и не имеющий ничего лишнего.

Цитата:
Не знаю, но подозреваю там как-то так же сделано
Почтайте о синхронизации состояний в онлайн играх. Например, тут и тут.
__________________
משיח לא בא
משיח גם לא מטלפן


Последний раз редактировалось alatar; 01.03.2012 в 12:46.
Старый 01.03.2012, 14:06
xdoom вне форума Посмотреть профиль Отправить личное сообщение для xdoom Найти все сообщения от xdoom
  № 6  
Ответить с цитированием
xdoom
 
Аватар для xdoom

Регистрация: Apr 2008
Адрес: black sea
Сообщений: 137
Отправить сообщение для xdoom с помощью MSN Отправить сообщение для xdoom с помощью Skype™
Цитата:
Сообщение от alatar Посмотреть сообщение
Насчет json. Я так и не понял где вы его применяете.
Да, для обмена с сервером, да изменим по необходимости на свой бинарный формат, это не сложно.
Сложно будет изменить архитектуру приложения если окажется что mvc тут далеко не лучшее решение, и мне так кажется всё больше и больше. Тема была создана понять - кажется мне, или это реальность?
Спасибо за статьи, прочитал очень интересно, некоторые мысли автора там тоже догадки, остальное в точности подтвердило мою реализацию Dead Reckoning и 20Hz работы сервера, реализация SimTick интересна но не так отзывчива.

В лес уходим господа )) Вопрос был о производительности событий, и похоже, что они не очень подходят для игр вроде quake. Не говоря уже о mvc паттерне, с которым у меня возникли вопросы о разумном использовании ресурсов cpu и ram.

Вопросы синхронизации, интервала и способа передачи данных между клиентами, немного оффтоп этой темы. Тут о способах и скорости передачи данных между модулями, - этих данных много и часто, задержки в 15-35ms могут быть критичны.
__________________
trace("my notes")


Последний раз редактировалось xdoom; 01.03.2012 в 14:11.
Старый 01.03.2012, 14:16
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 7  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Тормозит не mvc, тормозят события.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 01.03.2012, 14:25
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 8  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
События достаточно производительны, если их не слать тысячами (например, летит пуля и сигнализирует "я лечу". это уже маразм).
Цитата:
и этих данных много и часто, и задержки в 15-35ms могут быть критичны.
Статьи я вам привел как раз что бы вы избегали этого "много и часто". Нет в этом необходимости.
Цитата:
тут про передачу данных между модулями, и этих данных много и часто, и задержки в 15-35ms могут быть критичны.
Между какими модулями?
Цитата:
не говоря уже о mvc паттерне с использованием которого у меня возникли вопросы о разумном использовании ресурсов cpu и ram.
Что вы подразумеваете под mvc? Физические движки по-сути контроллеры. Iso объекты в изометрических играх — модели в чистом виде, у которых есть вьюхи (их отображение). MVC как концепция и паттерн отлично ложится на игры, универсальные архитектурные фреймворки нет (если говорить непосредственно о игровом процессе).
__________________
משיח לא בא
משיח גם לא מטלפן


Последний раз редактировалось alatar; 01.03.2012 в 14:49.
Старый 01.03.2012, 16:35
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 9  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Цитата:
Есть множество более дешевых бинарных форматов, типа AMF.
В своё время мы паковали обычные Object'ы с динамически созданными полями в AMF и на выходе получалось почти то же самое, что и JSON. В каких случаях это менее расточительно?

Старый 01.03.2012, 16:38
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 10  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Где на выходе?
Менее расточительно по размеру передаваемых данных, менее расточительно при сериализации/десериализации.
__________________
משיח לא בא
משיח גם לא מטלפן

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

Теги
event
Опции темы
Опции просмотра

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

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


 


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


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