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

Вернуться   Форум Flasher.ru > Flasher.ru > Флейм

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.07.2010, 23:55
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 21  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Так уж сложилось, что иметь три полностью инкапсулированных абстраций, в игре не нужно =)

Добавлено через 1 минуту
Если на то пошло, то можно реализовать Delegate-Model или View-(Model+Controller) но конкретно MVC – изометрических RGP – лишнии костыли.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 19.07.2010, 23:57
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 22  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
Nirth, так уж сложилось, что они всегда имеются. в том или ином виде. ооп не нужен для существования мвц.

Старый 20.07.2010, 00:07
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 23  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Ок давай конкретизируем.

В большинстве движков ( XNA, CryEngine, Unreal Development Kit ) у нас есть 2 ключевых функции:
1) обновляет данные, может называтся – update, evaluate не суть важно, далее update
2) обновляет экран - обычно называется draw.

Update и Draw могут быть синхронизированными ( update > draw > update > draw ) или нет ( update > update > draw > update > update > draw ). Например в Need for Speed идет 3 вызова update на один вызов draw.

update вычисляет новую позицию объектов ( это может быть либо физический движок, либо AI ботов ), и записывает их куда нибудь, это может быть вектор, массив, объект.
draw считывает данные и отрисовывает.

Теперь если ты понимаешь, под MVC что, M это вообще любой способ хранения информации, а в качестве контроллера может выступать и просто процедура вроде update. То да, но если ты все же сверишься с парадигмой / паттерном MVC то, так уж получается, что ты не прав.

Добавлено через 7 минут
Если уж натягивать за уши, то вот что используется в в геймдеве – http://c2.com/cgi/wiki?ModelDelegate
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 20.07.2010, 00:22
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 24  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
2BlooDHounD - в кои то веки солидарны) хотя, я уже тоже не люблю MVC и предпочитаю в render(draw) опрашивать скопом список изменённых состояний( которые, конечно, isInvalidated)
— Папа - а я уже game-engineer?
но в PBE, таки, об этом всём даже и не пахнет
__________________
Отряд Котовскага


Последний раз редактировалось Котяра; 20.07.2010 в 00:30.
Старый 20.07.2010, 00:25
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 25  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Котяра & Bloodhound
Я вас не понимаю, вы что под MVC понимаете, любую архитектуру, где так уж сложилось, что отображение и обработка данных не в одном месте? если так то я могу 90 если не больше софта записать под MVC, но есть точные определения. Например - Модель должна "извещать", а не просто болтаться в памяти.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 20.07.2010, 00:43
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 26  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Цитата:
Сообщение от Nirth Посмотреть сообщение
отображение и обработка данных не в одном месте
Это необходимый и достаточный минимум, в моих изысканиях, я называл моделью данные(вернее их холдеры), которые просто помечались изменёнными. Контроллер (в частности функция render) - просто проверяет эти изменения - это по сути отложенные сообщения, просто приходят не телеграммы, а посылки раз в неделю, за которыми надо заходить)
Здесь немного потеряна связь модель - вид, но в классике MVC вид тоже не сам изменяется - его меняет контроллер.
Вообщем, МВЦ - это как минимум разделение данных, чего в 99% случаев достаточно.
__________________
Отряд Котовскага

Старый 20.07.2010, 00:46
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 27  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Котяра, у тебя ближе к ValueObject / DataTransferObject нежели к Model. Я просто хочу отметить, что MVC, это не просто decoupling данных, от обработки и отображения, а конткретный способ, как этот decoupling происходит. И это далеко не единственный способ. Просто один из самых стандартных и востребованных.

Model это нечто, что может отсылать сообщения, и принимать сообщения. Если у тебя просто блок данных – это не модель.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 20.07.2010, 00:52
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 28  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Ладно, не будем спорить, я сам пока в поисках " самого идеального фрэймворка и наилучшего паттерна"))
Просто в PBE вообще нет ничего, кроме декораций, которые сложнее чем, то что они декорируют) тАКОЕ ОЩУЩЕНИЕ, ЧТО ПОРТИРОВАЛИ САМОПИСНЫЙ ДЖАВА ДВИЖОК, НЕ ЗНАЯ, ЧТО В AS3 ЭТО ВСЁ ЕСТЬ И ТАК.
__________________
Отряд Котовскага

Старый 20.07.2010, 00:54
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 29  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Вообще можно разделить приложения на две категории.

Приложения которые работают постоянно сами, и приложения, которые работают по требованию пользователя.

Например, если мы пишем веб приложение, или десктопное – 99 процентов времени, оно ничего не выполняет, могут быть рутины ( например RSS/Mail клиенты могут перепроверять раз в 5-10 минут ). Но чаще мы просто ждем User Input, в данном случае Model View Controller является оптимальной парадигмой, в том плане, что программу нужно пнуть, чтобы она изменилась. Юзерь кликает мышкой, вид обновляет модель, модель пинает контроллер.

Есть другая категория программ, в которые входит большинство игр – Они работают постоянно. Если пользователь отпустит мышку, контроллер, клавиатуру – игра все равно будет продолжать играть. 30-60 кадров в секунду перерисовываясь и 30-240 раз обновляя физику/ии.

В данном случае MVC является ненужным костылем, потому что, никто никого извещать не должен. Программа так и так, проверяет все данные несколько десятков раз в секунду.

Исключением являются пошаговые игры, квесты и тд, там MVC и в правду очень может пригодится, так как мы буквально ждем ввода пользователя. Но если игра real-time нам не нужны не модель, не контроллер, не вид ( вид в MVC тоже отсылает сообщения, в нашем случае рендер никому ничего не отсылает, просто ставит флаг - отрендерил ).

Добавлено через 4 минуты
Цитата:
PBE вообще нет ничего
А PushButton да сосет =)
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

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

Регистрация: Nov 2008
Адрес: Атланта
Сообщений: 1,271
злой ты Nirth, какая собака тебя покусал то?
__________________
Пока я жив, Вы горем обеспечены

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

Теги
AS3 , PusButton Engine , Разработка игр

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

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


 


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


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