Home

Реклама

Настроить
 
 
03 Март 2009 @ 10:14
Рейтинг самых нелепых падений игр  
Составил тут рейтинг самых нелепых падений игр. Я не беру набившие оскомину "Приложение не может быть запущено, так как оно некорректно настроено" или "очередное dx3x_??.ddl не найдено". Только интересные и нетрадиционные падения, которые встречались мне на уровне либо выпущенных игр, либо на уровне поздних бета-версий. По понятным причинам называть точные названия игр не буду.

10.
Итак, на 10 месте у нас проблема, которая будет проявляться на довольно редкой конфигурации. Если игра инсталлирована на компьютере, который не имеет DVD привода, то при старте exe происходит access violation. Вы спросите, как игра была инсталлирована? Я отвечу - она например, была скачана с интернета и защищена с привязкой к железу. Вы спросите, что это за компьютер без DVD? Ну да, бывают такие. Зачем игра, которой ничего от DVD не надо, падает при его отсутствии, сказать сложно.

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

8.
Восьмое место по праву принадлежит отличной игре, причем портированной с консоли. Но вот в процессе портирования разработчики малость перестарались. И кроме обработки полезных сообщений еще обработали и вставку флешки. Да вот только некорректно обработали - игра стала падать, если при запущенной игре воткнуть флешку в USB разъем. Ситуация редкая, игра все таки интересная, поэтому не будем сильно акцентировать проблему и поставим скромное восьмое место.

7.
Редкое падение, проявляется только на одном виде фаревола, но по несчастью именно он установлен на моем компьютере. Это жуткое изобретение под названием Microsoft Firewall Client, конфигурируется и управляется только нашими админами, и чтобы открыть очередной порт номер 118, надо писать письмо по инстанциям. Тем не менее, одна из игр упорно зависала на старте, причем анализ показывал, что висим мы именно где-то в недрах нашего Firewall Client. Очень глубоко секвенцию вызовов не анализировал, просто проверил игру без клиента - все заработало без проблем.
В пантеон нелепости игра с таким зависанием попала только потому, что она синглплеерная и интернет с фареволом ей нафиг не нужны. Поэтому седьмое место. Впрочем, далее по списку у нас еще будут синглплеерные игры, которым нужны тепличные сетевые условия.

6.
Уверенность программиста в том, что все компьютеры в мире похожи на его собственный, часто приводит к совершенно неправомочным гипотезам. Например, что если мы инициализируем DirectX в window mode, то bpp можно поставить 32 и больше ни о чем не думать. А что же делать тем несчастным, у которых стоит 16 бит на пиксел? Правильно, они не смогут поиграть в эту гениальную игру. Между нами, скажу, что игра довольно посредственная, поэтому по совокупности прегрешений - только шестое место.

5.
В отличие от предыдущего номинанта, эта проблема начала проявляться только недавно и только на самых крупных мониторах. Господа разработчики, не стоит создавать сурфейсы с текущим разрешением экрана. Потому что вы не можете знать, что именно вернут вам GetScreenSizeX(). Надо или ограничить его по капсам, либо ограничиваться теми параметрами, которые пользователь задал для старта игры. В данном же случае прикол был в том, что данный сурфейс конструировался только для показа сплеш-скрина и в обязательном порядке - именно по размеру экрана. Для корректного функционирования игры ничего этого не требовалось (ну почему не сделать, что если сплеш не создался, то игра-то все равно запускается???!!!), и все же несчастные вынуждены были уменьшать размер экрана, чтобы полюбоваться игрой. Пятое место.

4.
Если у кого-то кривые руки, вы конечно, ответственности за это не несете. И если кто-то поставил для переменной TEMP кривое значение вида "Z:\Disk_and_folder_doesnt_exist" - это проблема пользователя. Но тем не менее, один из проектов отказался запускаться с такой настройкой операционной системы, мотивировав это тем, что он не может корректно проинициализировать внутреннюю виртуальную файловую систему. Ну не может, и не может. А мы не можем не отметить это четвертым местом хит-парада падений.

3.
На третьем месте у нас игра, которую хотели положить на демо-диск с запуском напрямую с DVD. Игра отказалась запускаться. Причину я нашел довольно быстро, благо разработчики по доброте душевой дали еще и map файл. Падение в игре произошло после того, как рядом с exe файлом отказался открыться файл протокола! Секвенция fopen() / fwrite() исключительно для отладочного протоколирования, да еще без проверок на корректность, да еще и прямо в current working directory по праву занимает третье месте в нашем пантеоне.

2.
На втором месте у нас отличная игра, в которой при выполнении ряда условий можно получить на экране MessageBox примерно следующего вида: "0 0 14. Спросите Гришу", с последующим exit process. Программист, который писал эту подсистему, явно вставил отладочную диагностику в код, и в таком виде оно пролезло в мастер-диск. Отсюда две морали: 1. перед сдачей программы проверяете ее на MessageBox(), ExitProcess() и другие подозрительные функции; 2. Предоставляйте своим программистам удобные функции для отладочной диагностики и трахайте их беспощадно за то, что они изобретают что-то свое собственное. Не будете соблюдать эти правила - будете регулярно попадать в топ самых нелепых падений игр.

Ну и теперь,

кто-же

у

нас

на

первом

месте???!!!!!!один

1.

На первом месте бесспорный фаворит, который попортил нам много крови и был успешно пойман только случайно - после сбора очень долгой статистики и проверки совершенно безумной идеи. Вы готовы? Тогда поехали!
Что может быть общего у игры, компьютера и КПК в кредле? Ну наверное, если вставить КПК в кредл, то появится окно активсинка, приложение минимизируется, надо будет в него альт-табиться, ... Нет, проблема будет не в этом. И даже не том, что до сих пор еще не вымерли те разработчики, которые не поддерживают Alt+Tab для своей гениальной игры. Проблема глубже.
Проблема в том, что запускаемое приложение не живет в принципе, если оно запускается в тот момент времени, когда КПК вставлен в кредл. Если КПК лежит в кармане - пожалуйста. Но КПК в кредле - это такое унижение для программы, что она падает с access violation.
Я пытался у разработчиков выяснить интимные подробности падения, но так до конца и не разобрался в проблеме. Впрочем, я пообещал не уточнять названий игр, поэтому если разработчики сами захотят уточнить проблему, пусть отпишутся в каментах сами. Да, игра к сетевым подключениям тоже не имеет отношения - она только синглплеерная. Поэтому почетное первое место самых нелепых падений при запуске.
Метки:
 
 
Current Location: office
 
 
( 14 комментариев — Post a new comment )
tooltool[info]tooltool on Март, 3, 2009 07:26 (UTC)
А ты помнишь, что так, как в случае 1, вела себя еще одна очень известная программа, которая считала, что КПК в кредле это чужой HASP-ключ? :-)
Дядя Дима[info]ddima on Март, 3, 2009 10:49 (UTC)
Ну, тут речь ведь только про игры идет :)
Маньяк[info]manjak on Март, 3, 2009 08:25 (UTC)
а у меня во времена работы тестером (тестил игры для мобильных телефонов в одной хорошей компании) был прикол когда один телефон перезагружался в одной определенной игре, в одном определенном меню, когда курсор находился на одном определенном пункте подменю и...

телефон находился в вертикальном положении!!!
glebedev[info]glebedev on Март, 3, 2009 08:47 (UTC)
Это что такое? Куда теперь надо послать SMS за деньги чтобы узнать причину падения номера 1???
Дядя Дима[info]ddima on Март, 3, 2009 10:22 (UTC)
Можно прямым переводом на Яндекс.Деньги №4100138107214 :)
Котовский[info]kotovsky on Март, 3, 2009 09:34 (UTC)
прекрасный топ
на дтф давай, пусть ребята пофлеймят )
Дядя Дима[info]ddima on Март, 3, 2009 10:23 (UTC)
Да вот еще, нафиг надо.
Там и без меня хватает флеймовых постов )))))
Дронт: calm[info]drontik on Март, 3, 2009 10:45 (UTC)
10, 7, а возможно и 1 - обычно проблемы системы защиты, а не самой игры.
9 - могут быть разные причины, но как минимум 1 раз это был баг в ФМОД'е. QA, конечно, не догадался протестить без звуковой карты...
4 - для игры это, конечно, круто. Но немного удивляет, что игру можно было вообще проинсталлить с такими настройками - некоторые инсталляторы в этом случае отказываются работать.
3,2 - невозможны, если игра соответствует требованиям games for windows, ну или хотя бы пытается чему-то там соответствовать (windows logo и т.п.)
Дядя Дима[info]ddima on Март, 3, 2009 10:48 (UTC)
1 и 10 - не было связано с системой защиты. Про 7-ю, вроде как тоже версия была незащищенная;
9 - да, знаю;
4 - ну можно поменять конфигурацию компа и после инсталляции. Например, вытащить второй HDD, на который ссылалась переменная окружения;
3 - вот тут согласен;
2 - не совсем согласен, такое можно и не выловить в процессе сертификации :(
Дронт[info]drontik on Март, 3, 2009 10:55 (UTC)
В процессе сертификации - 100% не поймают, если это не вылезает прям сразу при старте игры. У них же нет functional testing на РС, они не играют в игру. Тупо по тесткейсам проверяют требования.

А вот в процессе разработки, если программист знает, что игра должна соответствовать таким-то и таким-то требованиям, он не станет такую херню лепить.
zemedelec[info]zemedelec on Март, 3, 2009 17:07 (UTC)
Я не верю особо в то, когда сидят 15 програмистов и пишут постоянно держа в голове мъсль о GFW...
Вот про внятную систему логов/отладки еще кое как.
Дронт: worried[info]drontik on Март, 3, 2009 17:28 (UTC)
Я не верю в то, что 15 программистов могут сделать игру вообще. "У семи нянек дитя без глаза", пословица такая.
Либо у этих 15-ти есть какая-то вменяемая иерархия - и тогда, грубо говоря, лид не допустит такого кода в проекте (он-то держит в голове мысть о G4W). Либо они нафигачат столько противоречивой фигни, что игра ваще работать не будет.
Shkaphecky[info]shkaphecky on Март, 4, 2009 16:01 (UTC)
Оффтоп:
«У семи нянек четырнадцать сисек».
i_love_python[info]i_love_python on Март, 3, 2009 18:28 (UTC)
атлична! в мемориз.
 
 

Реклама

Настроить