#1
Отправлено 24 марта 2013 - 10:29
Что меня сподвигло написать данный пост? Честно? Хрен его знает, 11 утра очередная бессонная ночь, настроение весьма скверное. Может долбоебические посты об истории создания и о себе любимом на одном известном конкурирующем проекте, сподвигли меня на это, а может пиздаболы, которые считают что заниматься проектом похожим на наш - нехуй делать, донат, все заебись, ничего делать не надо. Не знаю, но это все лирическое отступление, хотелось бы сейчас привести пример из разработки сервиса клонирования на протяжении нескольких недель, а конкретней - последней неделе.
Изначально, когда задумывался сервер катаклизма, мы решили что клонированию быть (если кто не знает - это способ скопировать своего персонажа с одного рилма на другой в пределах нашего сервера, тем более опыт богатый в реализации копирования с х2 на х10 был. Основная идея заключается в использовании всего двух команд и сложного процесса конвертации. Если говорить подробней, то вся процедура осуществляется через функционал ядра сервера, позволяющий совершать командой дамп персонажа в файл на жестком диске, а затем другой командой загрузить его обратно (в нашем случае на рилм х3). Вся сложность заключалась в том что структура базы данных персонажей личкинга и катаклизма разнится. В нашем случае это важно по той причине что сам дамп представляет из себя запросы схожие с sql структурой, то есть набор табличек, которые обрабатываются сервером и импортируются. Помимо структуры необходимо было конвертировать валюты, которые теперь хранятся абсолютно в другом варианте, и еще кучу всего. Проблемы возникли сразу же, функционала по конвертированию дампа в нашей панельке управления не было вообще. Не было? - Сделаем! Определенное время ушло у нашего веб разработчика на реализацию первой версии конвертера дампов. Сроки разработки у нас, как известно, затягиваются, так вышло и в этот раз, но речь не об этом, с горем пополам я получил первые конвертированые дампы. Сюрприз поджидал сразу, дамп не импортировался, то есть как, сервер сообщал об успехе выплоненого импорта, а ниже выводил ошибку, смысл которой был не совсем ясен, на разбор ее и выявление проблемы ушел вечер. Вторым сюрпризом было то что при входе в игру на персонажа сервер фризился и крашился, без отладки, вообще. Решили что нужно чистить несуществующие предметы спеллы ачивки и прочие, т.е. те которые были удалены из катаклизма. Для этого пришлось составить их список и опять-таки дополнительно реализовать в панельке возможность задействовать список фильтров. Сделали, зашибись, вроде работает, ан нет, не так все просто. Первая профессия у всех персонажей выглядела как 124125043/0. Что бы решить эту проблему у нас ушло два дня. Немного предыстории, структура базы персонажей такова, что существует отдельная табличка наград за выполненные квесты, если у вас по каким-то причинам пропал важный итем или спелл, полученный за квесты, при каждой загрузке в мир ядро тринити проверит а выполнен ли у вас этот квест и получена ли награда, и в случае если спелла нет, а остальные параметры есть он автоматически его дописывает. Локализовать проблему получилось не сразу, ибо отладки толком тоже никакой нет, опытным путем удалось найти что персонаж, которого загрузили без наград за квесты, проблем с профессией не имеет. Продолжая эксперименты удалось найти спелл, которые представлял из себя выковку одного из слитков руды. Самое забавное что в базе катаклизма он давался за квест, который был очень популярен на личе. В итоге получалось что из-за одной кривой записи награды за квест в катаклизме мы получали запись спелла от профессии почти каждому персонажу. Что же происходило дальше? А дальше сервер считал что у персонажа на одну профессию больше чем положено, в связи с обнолением структуры отображения списка профессий вывод первой профессии был кривым. Бля, сколько же нервов и сил было потрачено на то что бы найти, локализовать, и решить все эти проблемы. Для вас же все это выглядит как один клик в панели управления. Один пример из проблем, связанных с разработкой. Надеюсь он неплохо иллюстритует то, чем мы занимаемся, и как проблематично все это дается. Я уж молчу про проблемы, которые возникают при работе с ядром сервера, про техработы по замене оборудования, которые НИКОГДА не проходят по плану, и растягиваются с полночи до 10-11 утра. Самое забавное что история с клонированием не закончена, нужно расширять функционал и править оставшиеся баги. Такая вот она непростая жизнь администрации пиратского сервера).
#2
Отправлено 24 марта 2013 - 10:34

Изи гейм - изи лайф.
#3
Отправлено 24 марта 2013 - 10:34
Ага, еще в багтрекере разработчика такая телега от меня висит -Самое забавное что история с клонированием не закончена, нужно расширять функционал и править оставшиеся баги.
Когда еще всё будет.Небольшой список фич, которые было бы полезно доделать, для полноценной работы клонирования. Пока, увы, функционал очень кастрирован.
1) После полного удаления персонажа клона с оригинала должен спадать флаг клонирования, для возможности повторного создания клона.
2) Было бы полезно добавить функцию добровольного удаления персонажа из списка удаленных (поля deleteInfos_ххх в characters), для более правильной работы пункта 1.
3) Важно бы разделить проверку клонов для оригина на х10 и х3, для возможности создания клона на несколько рилмов.
4) Возможность конфигурировать все параметры, которые я собирал, через админку была бы не менее полезной, но это уже совсем придирка.

#6
Отправлено 24 марта 2013 - 10:42
#11
Отправлено 24 марта 2013 - 10:47
#13
Отправлено 24 марта 2013 - 10:49
Честно говоря, всё не читал, так, по диагонали. Но представление получил.
Меня, на самом деле, больше интересует момент с конкурирующим проектом и тамошними постами, вряд ли мне кто-то подробности сообщит, но это и правда любопытно.
ЗЫ: Хаген, спасибо за клонирование.
... и случится нечто чудовищное. Чебурашки захватят детский сад. (с)
Буква "ч" залипает на клавиатуре, давлю, как могу!
#15
Отправлено 24 марта 2013 - 10:58
Ты тащил Ланса в ГВ, а в итоге он затащил тебя на кату?Грустно быть Хагеном.
Честно говоря, всё не читал, так, по диагонали. Но представление получил.
Меня, на самом деле, больше интересует момент с конкурирующим проектом и тамошними постами, вряд ли мне кто-то подробности сообщит, но это и правда любопытно.
ЗЫ: Хаген, спасибо за клонирование.
If you love someone - set them free,
if they return to you - put several 8 inch blades into their head,
if they return again, then Run...
Just Run.
#16
Отправлено 24 марта 2013 - 10:59
Я где-то тебе наврал, что я там играю?Ты тащил Ланса в ГВ, а в итоге он затащил тебя на кату?
... и случится нечто чудовищное. Чебурашки захватят детский сад. (с)
Буква "ч" залипает на клавиатуре, давлю, как могу!
#17
Отправлено 24 марта 2013 - 11:03
Может стоит закрепить?
123321
#18
Отправлено 24 марта 2013 - 11:06
Я где-то тебе наврал, что я там играю?
Просишь пристов, благодаришь за клонирование. А ты ведь знаком с мощью латышской дедукции.
If you love someone - set them free,
if they return to you - put several 8 inch blades into their head,
if they return again, then Run...
Just Run.
#19
Отправлено 24 марта 2013 - 11:10
Ваша дедукция вряд ли знакома с моими темными делишками.Просишь пристов, благодаришь за клонирование. А ты ведь знаком с мощью латышской дедукции.
... и случится нечто чудовищное. Чебурашки захватят детский сад. (с)
Буква "ч" залипает на клавиатуре, давлю, как могу!
#20
Отправлено 24 марта 2013 - 11:14
...
Пойду сврежерну пару булочек...
If you love someone - set them free,
if they return to you - put several 8 inch blades into their head,
if they return again, then Run...
Just Run.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 скрытых пользователей