Библиотека "Солнца"

Как не надо писать программы. Интерфейс

Программирование и разработка игр

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

 

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

 

С которого и начнем, т.к. с только что установленным обновлением мое терпение лопнуло.

 

(Недоработки интерфейса любых программ)

 

-----

Произошло обновление Windows10 и внизу, на панели задач, появился вполне симпатичный значок погоды:

И все бы чудесно, если бы при простом наведении мышки на нее не выскочило подобие меню "Пуск", где натыкано всяких виджетов. Называется этот дубляж "Новости и интересы". Вот только на каком-таком, хотелось бы мне знать, основании в "Новости и интересы" попало: "Умер такой-то", "Такая-то находится в тяжелом состоянии", "Такой-то покончил с собой..." - я не шучу! Три "лучших" новости сразу же о смертях. Ладно, я наивно решила, что где-то можно настроить это меню. Настроить для меня = убрать ВСЕ новости. Я не хочу видеть новостей, они меня задолбали уже! Если мне хочется накачаться негативом, то я открываю Яндекс. Но нет. При настройке открывается сайт MSN, где, наверное, надо авторизоваться, хотя, если он посылает новости по каким-то параметрам, то ок. Я собралась было там настроить свои "интересы", выбрала разделы "Наука и техника", "Культура", "Фото".

Обновляю их "Лучшие новости" в надежде увидеть что-нибудь интересное, и обнаруживаю вот это:

Замечательно. Или мои интересы проигнорированы, или же так были интерпретированы выбранные мной разделы.

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

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

-----

 

Очень-очень бесючая "фича" во многих из современных программ.

 

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

 

Правильно было бы помечать специальным значком (и раньше так было) кнопки со ссылками. А еще - добавить предупреждающие подсказки. Но программисты таких программ не любят, чтоб было правильно. Ведь один лишний просмотр странички по ошибке великое дело, не так ли? (Скажу по секрету: нет. Пользователь быстро сообразит и закроет страницу до ее загрузке, то есть, выйдет "отказ" от просмотра. Это может вполне негативно сказаться на рейтингах сайта, если и не сейчас, то когда-нибудь в будущем).

 

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

-----

 

Замечательный новый пример недалекого программирования для мобильных устройств:

 

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

 

Есть, конечно, программа для сохранения оповещений, но она почти постоянно отключена, потому что легко забивает память. И спрашивается, какого черта код не дублируется в моем аккаунте? Кто придумал вот так умно? (Спойлер: китайцы).

-----

 

 

"Опасные" кнопки рядом с обычными.

 

Иногда кажется, что разработчики интерфейса программ живут в своем параллельном уютном мире, в котором ничто никогда не виснет, не притормаживает мышка, а отклик экрана мобильных устройств - микросекунды. (Возможно, что так и есть на их сбалансированных машинах). Не говоря уж о том, что и близко не существует проблемы человеческого фактора, как то: реакция на похожее оформление кнопок. Поэтому для них вполне закономерно располагать пункт меню "Сохранить" на строчку выше от пункта меню: "Закрыть программу без сохранения работы, а еще перезапустить компьютер, и при перезапуске провести низкоуровневое форматирование Вашего системного диска". (Хоть последнее и ехидство, но многие, вероятно, помнят первую версию Винды 8 с ее внезапными установками обновлений и невозможностью сохранить перед этим работу).

 

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

 

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

Только что мне надо было посмотреть, какая комиссия выйдет при переводе 10 тыс.рублей с кредитной карты на дебетовую. Только посмотреть! Не переводить ни в коем случае! Набрала сумму, жму "Продолжить", зная, что без подтверждения ничего не переведется, а экран не реагирует. У меня иногда от перегрузки памяти не срабатывает касание. Так что, жду пару секунд и жму повторно. И в этот момент приложение отвисает и подставляет мне в том же месте кнопку "Подтвердить"! И 10 тысяч улетают на другую карту, откуда немедленно списывается еще сумма за совершенно ненужную мне там услугу!

 

Итого: 450 рублей в топку. Все потому что разработчики интерфейса поставили кнопку с критической функцией в том же месте, что и обычная.

 

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

 

Вывод: программистов таких приложений пора бы вытащить из сферической розовой и пушистой комнатки в вакууме в суровый реал. Ну или, по крайней мере, не делать таких ошибок самим!

-----

 

 

(Недоработки интерфейса игр)

 

-----

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

Разновидность этой проблемы проникла и, как ни странно, в Windows. Если раньше ОС подкупала своей неторопливостью обстоятельностью, при которой диалоговое окно, выскочив раз, не убиралось до тех пор, пока пользователь не примет решение, то теперь часто получается так, что запустив программу и отойдя ненадолго, пока система копается в файлах, ее запуская, можно пропустить какое-нибудь окно подтверждения и программа закроется.

Дурных примеров такого рода в играх достаточно.

Хороших примеров могу назвать лишь два (может, кто-то добавит еще, поскольку я не в так много игр играла):

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

- RimWorld - по крайней мере, в последних версиях (нюансы прежних не помню) можно в настройках выбрать, будет ли сохраненная игра запускаться сразу, или открываться на паузе. Решение хорошее, но опция запуска сразу стоит там по умолчанию, и не факт, что игрок сам дотумкает покопаться в настройках, где обнаружит другой вариант. Если бы было наоборот - цены бы этой игре не было!

-----

 

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

 

=====

(Список будет пополняться)

05:48