Что ж это за хреновина такая "ядро интерфейса" ("UI Core") ?
Как вы могли заметить, несколько недель назад мы выпустили патч, который, внезапно, сломал кучу вещей в интерфейсе, и с тех пор мы бешено пытаемся всё это исправить. Самой частой реакцией было "ОМГ CCP ЧТО ВЫ НАДЕЛАЛИ ААААА!!11", что, в отсутствие внятного объяснения происходящего с нашей стороны, действительно было вполне обоснованно. Но нам не нравится, когда наши игроки расстроены, поэтому, когда мы выяснили, что всё устаканилось, появилось немного времени, чтобы отдышаться и объяснить что происходит.
мб/на: Как бы неочевидно это ни выглядело, мы на самом деле, фиксим баги.
Что случилось
Как вы уже наверное знаете, наш интерфейс отстает от текущих стандартов компьютерных игр, в основном из-за движка, на котором он строится (технически говоря, фреймворк интерфейса), который был написан двумя парнями в конце 90-х. Конечно, мы знаем, что многие из вас думают — нам нужно улучшать интерфейс по многим направлениям, и мы полностью согласны с такой точкой зрения. На самом деле, мы уже довольно долгое время работаем над этим.
Мы уже говорили про это в других блогах ([1], [2]) о процессе вычленения (corification) — перемещения множества кода, не относящегося к EVE, в общее место, чтобы можно было использовать его и в других проектах. Это даёт двойную выгоду — не только наши будущие игры выиграют от использования провернного кода, но и сама EVE получит пользу от улучшений, сделанных для других игр. В итоге это будет хорошо для всех участников.
Мы завершили большую часть вычленения (corification) этим летом, но большой задачей оставалось вычленение кода интерфейса. Как вы могли догадаться, интерфейс EVE это тот ещё говнокод, плохо поддающийся переработке (corification) (несмотря на несколько отчаянных попыток). Это работа, которой, на самом деле, никто не хотел заниматься — она объёмная, скучная, сложная, требует концентрации, выслушивания матов, когда ломаются внутренние билды, и множества ночей в офисе. Кроме того, она не даёт никакого удовлетворения от создания в итоге чего-нибудь прикольного, поскольку в лучшем случае остальные отделы будут просто интересоваться, почему вы полгода занимались какой-то хернёй, а ничего не изменилось. Но это работа необходима в долгосрочной перспективе, т.к. мы хотим сделать другие интересные и заметные улучшения. Этим летом мы взяли себя в руки, приняли вещества и сделали рывок для завершения работ. Пару недель назад нам наконец удалось свести к нулю количество известных багов, и мы собрали все ресурсы и запустили процесс выпуска патча.
Мы уже давно обнаружили, что при работе с таким большим проектом, даже если мы находим большую часть багов до релиза, остаётся довольно много незамеченных. Большинство из них уже должны быть исправлены. Тестирование интерфейса на самом деле не такая уж и простая штука, ибо существует бесчисленное количество сценариев его использования, и каждый человек придерживается своего. По этой причине автоматические тесты не очень полезны, и, даже если весь наш отдел тестирования проверит всё, баги могут остаться. Надо отметить, некоторые из них довольно очевидны, и это наша вина, мы должны были отловить их.
Зачем мы это сделали
Как только мы вычистим оставшиеся глюки, наш интерфейс будет полностью отделён (corified). И это хорошо по двум причинам:
1. Первая стадия вычленения (corification) заключалась в консолидации и обновлении существующего движка интерфейса, что было сделано для наведения порядка и упрощения работы. Все те вылезшие глюки в основном случились из-за использования нового движка старым интерфейсом и того, что старый код интерфейса ведёт себя довольно странно или использует свойства старого движка, которые мы специально объявили устаревшими. Без преувеличений, разработчики интерфейса прошлись перед релизом по каждому файлу и преобразовали всё, что заметили, в новый вид. Этот адов объём работы и породил множество дефектов. Летом интерфейс частенько ломался в самых разных местах, но множество проблем было найдено и исправлено уже тогда. Всё, что мы обнаружили, мы исправили ещё до патча 1.1, а то, на что вы напоролись в первые недели после патча — это всё то, что утекло сквозь трещины. Да, глюков всё ещё полно — это отражает насколько велики произведённые изменения. Итог: код интерфейса теперь намного более вменяем (и может делать больше вещей), что позволит нам лёгче делать лучшие интерфейсы.
2. Поскольку новый интерфейс работает довольно неплохо с вычищенным движком, у нас есть возможность закинуть совершенно новый движок в код и быть уверенными, что интерфейс продолжит работать гладко, поскольку взаимодействие между этими двумя частями сейчас формализовано. Технически это называется лялечка.
Накатка изменений такого масштаба на Транк, дающая коду реальную встряску (10 000 пилотов онлайн в первый час после открытия сервера — это примерно 60 человеко-месяцев тестирования всего за один час), и быстрофикс обнаруженных проблем — это, конечно же, весьма неприятно.
Тем не менее, это первый шаг к реальному решению проблем пользовательского интерфейса. Мы занялись этим потому, что это необходимо, чтобы взять наш интерфейс за задницу и втащить его в 21-й век. Этим мы займёмся совершенно точно.
Больше потрясений впереди
Поскольку мы говорим начистоту, мы не можем не упомянуть ещё одно большое изменение намеченное на следующие несколько недель: перевод предметов на 64-разрядные идентификаторы. Скоро™ мы напишем об этом ещё один блог.
Сообщение отредактировал wiz: 20 October 2010 - 13:04

Вход
Регистрация




Наверх






