Поделиться

суббота, 31 октября 2009 г.

Playstation 3 - ты лучшая... но что же делают с тобой разработчики?! (окончание, часть 3)

Теперь обратимся к аппаратной части. Playstation 3 (PS3) - это продуманная консоль, мультимедиа центр и прочее, но и здесь не без изъянов.

С каждой новой версией системного ПО, у меня все чаще не обнаруживается роутер. Кроме того, с какого-то момента при тестировании соединения я стал получать сообщения о том, что оный не поддерживает IP-фрагменты, и потому (о чем система кокетливо сообщила) "возможны проблемы при сетевой игре". Секундочку, а кто говорил мне, что эти самые фрагменты нужны? Что это вообще такое, и почему я должен об этом знать? Представьте себе 13-тилетнего паренька, которому никак не удается поиграть по сети, он тестирует соединение и получает это сообщение... Делать-то ему с этим сообщением что? Об этом диагностика умалчивает. Вдобавок, означенные "проблемы" могут проявляться как угодно, когда угодно и где угодно - система максимум сообщит Вам о том, что "соединение прервалось" (а также, например, о том, что Вы были "кикнуты", "забанены", "другой игрок вышел из сети", и часто все это не имеет никакого отношения к действительности - о реальной причине система и игры то ли умалчивают, то ли не подозревают). Логичной реакцией на обнаружение проблемы игрой было бы не выкидывание Вас вон, а описание метода решения проблемы, например: "Ваш NAT Type 3, а наша игра требует 1 или 2 - Вы должны обзавестись публичным IP-адресом и перенастроить роутер (обратитесь к Вашему интернет-провайдеру)". В идеале же игра должна быть сделана так, чтобы эта ошибка не возникала, поскольку ни на одной коробке с игрой для PS3 не указан требуемый тип NAT.

С этим NAT (англ. Network Address Translation - метод преобразования сетевого адреса) вообще мрак и ужас. Я кучу времени потратил, чтобы выяснить, что это такое, и почему мой "Тип 3" создает проблемы при игре, скажем, в "Eye of Judgment". Многие опытные разработчики именно сетевых приложений и те не могли мне ответить. Я что действительно обязан все это знать? Да я всю жизнь дистанцировался от разработки сетевых решений, потому что не очень-то они укладываются в мою картину мира (каюсь).

Десктоп-решения+
Интерактивная графика (OpenGL + DirectX)+
Моделирование и визуализация процессов
=
Моя специализация.

Так что теперь, когда я вижу нехватку поддержки "IP-фрагментов", я уже потихоньку начинаю бояться.

Если по каким-то причинам в процессе работы роутер отключается от Интернет (возник сбой сети или сбой роутера), то PS3 выдает сообщение об "Ошибке DNS", что сбивает с толку - если уж подробно рассматривать этот вопрос, то должно было бы выдаваться сообщение "Ошибка шлюза". Понимаю - консоль видит в качестве шлюза роутер, который, вроде бы, работает. Тогда можно было бы сообщить: "Ошибка на пути к DNS". Зачем вообще консоли каждую секунду/минуту доступ к DNS? Конечно, выдавать обтекаемую информацию о том, что "у Вас все плохо" - это неправильно, но выдавать ложную информацию с видом полной уверенности - чудовищно и глупо! Вспоминается сериал "Уилл и Грейс":

- Ты все еще гей?
- Да, антибиотики не помогли!

Или вот еще более приближенный к ИТ пример: мне доводилось работать с крупной системой, которая во время выполнения любых операций часто могла выдать коротенькое сообщение: "Системная ошибка"! Это ХУДШЕЕ из сообщений, которое может быть выдано в любой программе! Еще раз - ХУДШЕЕ! Конечно, я работал в той компании, и одной из моих функций было обнаружение таких вот штук, но:
  • она выдавала их не только мне, конечным пользователям тоже;
  • на воспроизведение ошибочной ситуации у разработчиков уходила куча времени... это в случае, если ошибка была обнаружена мной, и две кучи времени уходило на то же у меня, если ошибка "всплывала" у пользователей.
При отключении роутера (то есть, когда он попросту пропадает), PS3 сообщает, что "Произошло отключение от точки доступа". И в случае "ошибки DNS" и в случае исчезновения роутера система не подхватывает их после ликвидации проблем - нужно либо "выйти и войти", пардон "выключить и включить", либо запустить тест соединения, в процессе которого будет сброшено неработающее подключение, прервать тест, в результате чего подключение снова будет сброшено, и после этого надеяться, что на этот раз все будет хорошо.

Ладно, довольно, поговорим о святая-святых - контроллере.

Мне кажется, что все версии контроллеров для PS, PS2 и PS3 - весьма удачны. Они удобны (за исключением случаев, когда фантазия разработчиков игр уж очень далеко простирается - тогда требуется зажать штук шесть кнопок и еще повертеть аналоговый джойстик), легки (SIXAXIS для PS3 весит примерно 100 грамм, DUALSHOCK 3 со встроенным устройством для создания вибрации где-то 150... контроллер для XBox360 - 250, то есть как оба предыдущих вместе взятые) и, в общем, одинаковы. Тут нареканий нет.


Нарекания есть в части подключения и в части новых технологических решений/возможностей.

Иногда при попытке подключения новых джойстиков отключаются старые. Работают беспроводные контроллеры через Bluetooth, следовательно, их нужно перед использованием "спарить" (англ. pair) с консолью. Я "спаривал" много устройств в своей жизни, но таких проблем у меня не возникало. По идее Вы подключаете новый контроллер к консоли проводом, ждете, пока он подключится, отключаете провод и "вуаля". Консоль по идее поддерживает кучу контроллеров одновременно. Подключаю проводом - работает, отключаю - не работает, проверяю зарядку - есть, проверяю старые, уже "спаренные" джойстики - они тоже уже не подключаются без провода. Видимо, что-то случилось... Ищу в Интернете: вот радость - я не один такой, вот горе - решений ни у кого нет, официальных заявлений, объяснений, руководств - тоже нет. Остается действовать методом проб и ошибок, который и дает через полчаса эффект. Что изменилось, как, в какой момент - об этом я пытаюсь не думать.

На XBox360 есть кнопка для "спаривания", если на нее нажать, огоньки индикатора приставки мигаю по кругу. Это означает, что консоль сканирует "околоконсольное" пространство в поисках контроллеров. Если в этот период времени нажать такие же кнопочки на контроллерах, все будет в порядке - они с консолью друг друга узнают. Просто, как три копейки, сбоев на моей памяти не было, и явно видна причинно-следственная связь: нажал-получил, если не получил, значит что-то не работает. В случае PS3 непонятно, когда происходит "спаривание", когда оно разрывается, сломалось что-то само, или что-то неправильно делаешь ты - непросто и неэлегантно.

Теперь о том, что я называю "гироскопом" - о датчике перемещения и смены положения контроллеров для PS3. Расстреляйте меня, но я считаю, что эта возможность была добавлена вдогонку, когда стало известно, что Nintendo при разработке Wii делает ставку на новый игровой опыт, предлагая пользователю получить его за счет кручения, движения и других фокусов с контроллером. У PS3 это называется SIXAXIS (то же название было дано первой версии контроллеров, включающих "гироскоп", но лишенных устройства для создания вибрации).

Работает SIXAXIS замечательно - улавливает тряску вверх и вниз, в стороны, просто резкую смену положения, повороты и так далее. Замечательная штука, только вот никак не припомню, где бы она масштабно и удачно (что главное) применялась. То ли разработчики игр были не готовы к такому триумфу технологии, а те из них, что были готовы, уже радостно разрабатывали синтетические компьютерно-фитнесс игры для Wii, то ли случилось еще что, но, на мой взгляд, все игры делятся на три категории:
  • без использования SIXAXIS;
  • с вкраплениями его использования (Ratchet&Clank Future: Tools of Destruction, Uncharted: Drake's Fortune и т.д.);
  • с масштабным использованием SIXAXIS (Folklore и т.д.).
Конечно, я не играл во все игры для PS3 (и, что важно, я не люблю симуляторы и гонки - может быть там использование таких возможностей актуально и целесообразно), но из тех, в которые играл, реально масштабное использование SIXAXIS было к месту и времени только в Folklore (игрушка вообще классная, хотя из-за неудачного в некоторых отношениях сценарного режима каждый уровень приходится проходить по два и более раз, что быстро надоедает). Что касается игр с вкраплениями некоторых действий с "гироскопом", то они делятся, в свою очередь, на две категории:
  • те, где использование датчика положения уместно, но можно было бы и без него без особой потери удовольствия;
  • те, где удовольствие было бы куда больше, если бы без него все-таки обошлись.
В любом случае видны эксперименты и неуверенность разработчиков игр в применения сей возможности. Например, создатели Ultimate Alliance предложили игроку обезвреживать при помощи "гироскопа" бомбы... Перечитайте еще раз эту фразу и вдумайтесь в нее. Слава богу, что, во-первых, эту опцию можно было отключить (помимо прочего, обезвреживание было невероятно трудно произвести - одно дело, когда ты "не то нажал", другое - когда "не туда повел"), а, во-вторых, - игра была такой отвратительной, что на общем фоне указанный ее недостаток не был особо заметен. Компаниям Sony "first parties", проще говоря, принадлежащим Sony, было еще сложнее: подозреваю, что им настоятельно рекомендовали использовать сию "пространственную фичу" при разработке игр. Надо сказать, что в целом они справились неплохо, хотя получавшиеся игры, скорее все же относились к категории тех, где лучше было бы обойтись без SIXAXIS, чем к тем, в которых он действительно добавлял удовольствия. Например, в измученном мною Uncharted с помощью "гироскопа" бросаются гранаты: при выборе гранаты в качестве оружия появляется дуга, по которой граната предположительно полетит после броска. Конечная, дальняя от Вас точка дуги приближается или отдаляется посредством движения контроллера от себя по кругу и на себя. Теперь представьте: 4 человека бегут на Вас с автоматами, 2 с дробовиками, 2 с гранатометами, а Вы в это время "выгибаетесь дугой", высунувшись из укрытия и пытаясь поймать то место, где упавшая граната теоретически покалечит наибольшее количество противников. Если Вы играете на высоком уровне сложности, то, скорее всего, к моменту, когда Вы "определились", исход боя уже решили за Вас, поскольку Вы уже мертвы. Для сравнения: в Uncharted 2 не нужно переключаться на гранаты как на отдельное оружие, не нужно вертеть джойстик. Прицелившись в нужную точку из, например, пистолета, Вы просто нажимаете кнопку L2, и граната летит туда, куда Вы прицелились. Кроме того, в Uncharted 1 герой "SIXAXISo-управляемо" балансирует при переходе по бревну, кой он, на моей памяти, совершает раза три за все 22 главы.

Не знаю, увидим ли мы что-нибудь замечательное с применением SIXAXIS в будущем, но пока... В общем, я не верю, что данная возможность найдет какое-нибудь блистательное применение, и все скажут: "Ах"!

Сознательное включение проектирования в процесс создания продуктов возвестило о восхождении современной триады задач разработки, озвученных Ларри Кили (Larry Keely) из Дублинской группы: осуществимость, жизнеспособность, желанность. Если один из этих трех столпов значительно слабее двух других, продукт вряд ли выдержит испытание временем. (Купер А., Рейман Р., Кронин Д. Алан Купер об интерфейсе. Основы проектирования взаимодействия. - СПб.: Символ-Плюс, 2009.)

Столп "желанность" в данном случае явно слабее остальных. Хотя и жаль, конечно: идея-то замечательная. Пофантазировать что-ли на досуге?

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


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

Да, мне интересно с технической точки зрения как программисту и "гику", что вся клавишная поверхность является сенсорной - можно легонько водить по всей ней и двигать курсор или переходить от одного поля ввода к другому, но в остальном... Реальный шок вызвало то, что клавиатура не подключается к контроллеру - она просто крепится на него, то есть зарядку контроллера и клавиатуры нужно проводить отдельно!


Если Вы хотите зарядить контроллер и клавиатуру, Вам нужно два провода или один, но заряжать придется по очереди. В принципе ничто не говорило об обратном, но я считал, честно говоря, что времена здоровенных составных девайсов, на каждый из которых приходится куча проводов, в прошлом, где-то там, где осталась Sega CD 32x.

На этом я, пожалуй, закончу обзор подводных и надводных камней, о которые спотыкался при работе... извините, развлечении с приставкой Sony Playstation 3 в последние 3 года. Еще раз хочу сказать: я все это описал не для того, чтобы обругать консоль - она мне нравится настолько, насколько только возможно. Позади и впереди отличные игры, и я еще много часов, дней и месяцев на них потрачу (я, вообще, слишком много времени трачу на игры). Я написал все это даже не для того, чтобы предупредить кого-то. Просто размышления о конкретном предмете, в данном случае - о PS3, склонны навевать интересные мысли и выводы об ИТ-индустрии в целом, а ее анализ - это, собственно, мое хобби, работа и призвание.

P.S. Спасибо всем, у кого хватило терпения дочитать до конца - перебрал я объема с этой темой.

Комментариев нет:

Отправить комментарий