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

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

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

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Ну, я делал дамп того, что генерило AMF. Почти чистый JSON.

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

Регистрация: Feb 2009
Адрес: Гы...поди, найди!
Сообщений: 853
Записей в блоге: 1
Не знаю, толи мы не умеем amf готовить, то-ли, что, но на серверной стороне (php), он у нас жутко тормозил.
__________________
http://www.chessmax.ru

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
AMF я привел в качестве примера бинарного протокола.

Цитата:
Ну, я делал дамп того, что генерило AMF. Почти чистый JSON.
Зависит от типа данных.
__________________
משיח לא בא
משיח גם לא מטלפן

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

Регистрация: Apr 2008
Адрес: black sea
Сообщений: 137
Отправить сообщение для xdoom с помощью MSN Отправить сообщение для xdoom с помощью Skype™
Цитата:
Сообщение от alatar Посмотреть сообщение
Между какими модулями?
20Hz Iservice->Iengine->Iview
и так же в обратном направлении, итого тысяча набирается менее чем за 20сек.
мне тоже кажется это маразмом.

Статьи интересные, там логика а не архитектура, не пуля кричит "лечу", а физ-движок кричит серверу и представлению "свежие пирожкиданные!!!", в то же время сервер кричит движку "покупайтелетят новые пули !!" так вот может получается сотня выкриков каждую секунду. Или нужно иначе?
__________________
trace("my notes")

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
данные (от сервера или от пользователя) 1 событие (условно) -> движок (расчет нового состояния, изменение модели) 1 событие от модели (данные изменились) (в обратную сторону 1 событие, новое состояние) -> рендер (отрисовка).
Это если гонять состояния. Такой способ крайне неустойчив к взлому.
Другая ситуация.
контроллер (действие пользователя, например "нажали вперед") -> сервер (расчет нового состояния, отсылка клиенту) -> контроллер (изменение внутренней модели) -> рендер (отображение).

Ну и так далее. Где тут сотни событий?

Цитата:
а сервер кричит движку "летят новые пули "!!
По разу на каждую?

Добавлено через 7 минут
P.S. Во многих шутерах вообще нет пуль. Просто мгновенное попадание, а условная пуля (собственно просто отрисовка) летит условно уже постфактум. Т.е. на клиенте пули есть, а на сервере используются, скажем так, лазеры.
__________________
משיח לא בא
משיח גם לא מטלפן

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

Регистрация: Apr 2008
Адрес: black sea
Сообщений: 137
Отправить сообщение для xdoom с помощью MSN Отправить сообщение для xdoom с помощью Skype™
Всё именно так как вы описали, прям один в один, только частота 20Hz чего нить говорит? вся это цепочка в одну сторону и в другую сторону гоняется с периодичностью раз в 50ms. 6-10 событий за 1 итерацию = 50ms посчитайте сколько набёрётся за секунду.
Цитата:
Сообщение от alatar Посмотреть сообщение
Ну и так далее. Где тут сотни событий?
Понятно где?

Цитата:
Сообщение от alatar Посмотреть сообщение
По разу на каждую?
на каждое обновления состояния, если ещё к каждому спрайту привязать, то будет вообще феерический капут))

Такое впечатление будто вы сами не до конца представляете содержание приведенных мне статей, скорость с которой гоняются данные.

p.s. конечно мы не стремимся в сторону battlefild 3 где для пуль есть ещё и гравитация и время жизни, логика quake - отличный старт.
хотя время жизни у наших снарядов тоже есть.
__________________
trace("my notes")


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

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Я бы советовал рассматривать отдельно фреймворки и MVC. Это все же разные понятия.
На счет передачи событий данных через эвенты - может их хранить в моделе уже в распаршенном виде? Не вижу смысла в json.

ЗЫ. Да, опечатался.
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!


Последний раз редактировалось TanaTiX; 02.03.2012 в 04:18.
Старый 02.03.2012, 00:29
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 18  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
6-10 событий за 1 итерацию = 50ms посчитайте сколько набёрётся за секунду.
Какая вам разница сколько их наберется за секунду? Можете еще за год посчитать, получите более впечатляющие цифры. Если обработка не вылазит за эти 50 мс, то тормозов не будет. По памяти тоже должно быть приемлемо. Количество событий за итерацию и время обработки этих событий и есть для вас критические параметры, а не сколько вы их насобираете за секунду. Сама отправка события это дешевая операция и экономить их надо, если они уже не влезают в кадр.

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

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

Регистрация: Apr 2008
Адрес: black sea
Сообщений: 137
Отправить сообщение для xdoom с помощью MSN Отправить сообщение для xdoom с помощью Skype™
В моём тексте объединение понятий фреймфорка и MVC вызвано лишь использованием событий в обоих случаях.
Тема была создана только потому что не был уверен в этом:
Цитата:
Если обработка не вылазит за эти 50 мс, то тормозов не будет. По памяти тоже должно быть приемлемо. ... Сама отправка события это дешевая операция...
задача с синхронизацией это уже другая история, гораздо увлекательней, но о ней в другой раз.
Спасибо за дискуссию, успокоят меня наверное только тесты, как проведу отпишусь.

Добавлено через 14 минут
p.s. между модулями на самом деле json не гоняется, но от этого смысл не менятся. TanaTiX наверное опечатлося говоря о передаче событий через евенты, подразумевая данные.
__________________
trace("my notes")

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

Регистрация: Apr 2008
Адрес: black sea
Сообщений: 137
Отправить сообщение для xdoom с помощью MSN Отправить сообщение для xdoom с помощью Skype™
Код AS3:
		public function speedtest()
		{
			var eventDispatcher:EventDispatcher = new EventDispatcher() 
			eventDispatcher.addEventListener(Event.ACTIVATE,eventHandler)
			var i:int = 10000000			
			var t:int = getTimer()
			while (i--){
				eventDispatcher.dispatchEvent(new Event(Event.ACTIVATE))
			}			
			trace(getTimer()-t,ecount)
			i = 10000000
			t = getTimer()
			while (i--){
				eventHandler()
			}
			trace(getTimer()-t,ecount)
			i = 10000000
			t = getTimer()
			while (i--){
				ecount++
			}
			trace(getTimer()-t,ecount)
 
		}
		private var ecount:int
		private function eventHandler(e:Event=null):void{
			ecount++
		}
Код:
13314 10000000
2773 20000000
778 30000000
Было понятно что события медленней, но не думал что более чем в три раза.
Фишка событий - это возможность цепляться на них сразу же нескольким обработчикам, когда этого не нужно, не понимаю причин их использовать. Прямых связей можно избежать другими способами.
По моему скромному представлению.
__________________
trace("my notes")


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

Теги
event

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

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


 


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


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