April 28th, 2010

bf2142

Мысли о пользе современных видеоигр

Вокруг полно статей на тему вреда современных компьютерных развлечений и Интернета.
Вот одно из типичных высказываний: "Дети и подростки нуждаются в самовыражении. За неимением других средств выражения своих мыслей и энергии они обращаются к компьютеру и компьютерным играм, которые создают иллюзию реальности безграничных возможностей, лишенной ответственности. Такая иллюзия оказывает разрушительное действие на психику."

Насчет маленьких детей дошкольного возраста полностью согласен. Их надо ограничивать. Правда причина не в том что они начинают сублимировать и скрываться от реальности, а в том, что их психика все еще не окрепла и не до конца сформировалась - даже реклама по ТВ действует на них зомбирующе. Большие потоки информации вредят детскому мозгу и он может поломаться. То же можно сказать про перегрузку детей различными развивающими занятиями и секциями.

Насчет подростков - пускай лучше играют в игры чем бухают у подъезда.

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

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

Сразу оговорюсь - пользы WoW не вижу. Тут настоящая сублимация и прожигание денег и настоящей жизни.
А это может стать проблемой не только для игрока но и для окружающих.

Не вижу большой пользы и от различных платформеров, но тут есть мелкая моторика рук (см. ниже).

Больше всего пользы, на мой взгляд, в шутерах от первого лица, особенно от многопользовательских.

Итак что мы имеем:
- Мелкая моторика рук напрямую связанна с развитием головного мозга (eraland.ru/progress);
- Человек лучше ориентируется в пространстве;
- У человека улучшается реакция (время между событием и ответным действием);
- Человек может следить за большим количеством движущихся объектов одновременно;
- У человека повышается самообладание, он лучше и быстрее адаптируется к незнакомой ситуации (заявили американские военные).

Самое главное, на мой взгляд, то, что мозг человека учится пропускать через себя огромные объемы информации и не впадает от этого в ступор.
Во время игры в многопользовательский онлайн шутер со всех сторон льются реки событий. Постоянно необходимо следить за звуками и за перемещениями на экране. Постоянно надо анализировать происходящее и планировать свои действия. Локации в современных игр огромные, игроков много, опасность может исходить отовсюду. Множество посторонних звуков и мелких деталей на экране, много посторонних движущихся объектов типа мусора на ветру - и все это надо фильтровать. А незнакомые локации вообще сводят с ума.
Когда видишь подобное в первый раз начинаешь в панике творить откровенные глупости - бежишь куда-то сломя голову и тут же умираешь. Игра выбивает из колеи неподготовленного человека. Боюсь именно это произойдет с неподготовленным человеком в случае атаки зомби в реальной жизни, итог - "мозгииии". :)
Со временем учишься себя контролировать, не волнуешься и не паникуешь. На адаптацию к новым локациям уходит минимум времени, обретаешь опыт - узнаешь что можно делать, а чего нельзя, знаешь как вести себя в различных ситуациях, знаешь куда бежать если что и где прятаться, знаешь на что обратить внимание.
Главное - происходящее больше не шокирует. Все бахает, грохочет, летает, взрывается,  пыль, дым, все орут и стреляют - а ты короткими перебежками пробираешься к цели (BFBC2, MAG, CoD: MW2BF2142). Так же и с вождением автомобиля в реальной жизни - сначала паника, потом полное расслабление.

Вот она настоящая тренировка для мозга.

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

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

При всем позитиве следует понимать - родители обязаны знать что предлагает их детям современный мир. Нельзя зашориваться и отмазываться под предлогом - "я в этом ничего не понимаю", "игры зло, поэтому никаких игр", "Интернет это сплошная порнография, поэтому никакого интернета".

Отказывать ребенку в играх и Интернете нельзя - либо он будет ущербным и не готовым к современной жизни, либо он увидит все это у друзей и вам не расскажет, будет вместо школы ходить к соседу.
Необходимо знать какие есть опасности и как с ними бороться (вполне возможно). Это поможет держать все под контролем не нанося ущерба развитию ребенка.

Нельзя взять и запретить игру с рейтингом '18+', есть люди которым 18+ и они готовы увидеть все в полной красе осознавая все последствия (я после раунда в BFBC2 перед сном сплю превосходно). Зато родитель обязан посмотреть что написано на коробке когда ребенок покажет на  нее в магазине с просьбой купить.
Уверен большинство даже и не подозревает о существовании системы рейтингов.

А игровые консоли вообще позволяют установить родительский контроль за запускаемыми играми и приложениями (чего нет в персональных компьютерах). Поэтому стоит рассмотреть, например, PS3 в качестве полной замены домашнему компьютеру (броузер там тоже есть и кино можно посмотреть).

Мы живем в современном мире и чем дальше, тем интереснее. Нельзя зашорить себя и своих детей - им строить будущее.

Вот интересные статьи на тему:
eraland.ru/progress/
games.qip.ru/news/articles/228/
psyfactor.org/lib/psywar39.htm
bf2142

Оптимизация расчетов 3D сцен при рендере стерео-картинки в играх

Если решать задачу вывода изображения для двух глаз в играх в лоб, то получаем увеличение объемов вычислений ровно в 2 раза.
Отрендерили сцену с одного ракурса для левого глаза, передвинули viewport немного правее и отрендерили заново для правого.

С другой стороны, если подумать, неужели нельзя придумать алгоритм оптимизации процесса?
Разница в кадрах настолько незначительна, что человек глядя на эти две картинки по отдельности не сможет ее заметить.

Просматривая на днях фильм Битва Титанов в RealD понял что они халтурят.

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

В Аватаре, для сравнения, все было очень честно.

Вот я и думаю... может игровую сцену тоже имеет смысл разделить на слои?

Фон можно оставить как есть и там и там - он настолько далек что смещение для левого и правого глаза незначительны - ими можно пренебречь и человек ничего не поймет.
В принципе дальние объекты сцены тоже можно не трогать.

Получаем некий объем для которого необходимо осуществлять разные расчеты.
Можно попробовать отрендерить каждый объект (человека, машину, дерево и т.п.) отдельно от сцены сохранив только источники освещения (метод трассировки лучей еще не применяют для развлечений, так что вполне приемлемо).
Получаем кучу спрайтов и фон.
Строим кадр для левого глаза - битблитим во фреймбуфер фон, затем исходя из глубины объектов сцены слоями спрайты с их образами. При этом в зависимости от глубины смещаем их по оси X, возможно с простейшими преобразованиями (например, масштабирование, наклон, поворот). Тоже самое проделываем для правого глаза, только спрайты смещаем в другую сторону.
В заключении производим постпроцессинг отдельно для каждого кадра (эффект размытия, шумы и т.п.).
И вот у нас две картинки для двух глаз с минимальными затратами. Оверхед есть, но не 200%.

При желании спрайты можно использовать и в следующих кадрах, если, например объекты не поворачивались и камера повернулась незначительно. Мне кажется такие хитрости уже используют в современных движках...возможностями OpenGL в чистом виде давно не пользуются (например, рендер на текстуру для создания какого-либо эффекта, например - отражения).

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

Ведь стереоизображение как и кинематограф в целом и так обман зрения - почему не пойти дальше?

Уверен найдутся таланты которые найдут правильные способы сократить накладные расходы.