Перейти к содержанию
Zubastic

Об исправлениях на сервере или почему так долго исправляют баги

Рекомендуемые сообщения

В данной теме я расскажу почему фиксы занимают значительное время. Существует несколько видов фиксов:

1) Датапак

В датапаке могут быть:

  • Ошибки, связанные с временем действия/эффектами умений
  • Ошибки, связанные с неверными параметрами/положением монстров
  • Ошибки, связанные с параметрами вещей
  • Неверное поведение монстров
  • Неверное содержимое html
  • Проблемы с геодатой

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

 

2) Ядро

Для начала стоит прочитать это. Однако не отчаивайтесь, если ничего не поняли.

 

Различают ядро сервера и ядро NPC сервера. Первое это функции для скиллов/механика работы определенных событий и прочее. Второе это умения монстров, определенные функции проверки NPC в инстансе (именно поэтому все бочки горят "синим" на корабле Закена), сюда также относятся все виды осад и ТВ. Так как наш сервер основан на слитых файлах l2server Gracia Final, а значит исходного кода на руках нет, поэтому приходится применять навыки reverse engineering. Данное умение является "высшим пилотажем" среди программистов. Писать код на Java или C++ можно достаточно просто. IDE (интеллектуальная среда разработки) легко "поможет" в написании кода, а при дезассемблировании подобных средств просто нет. Если ошибиться, то программа просто перестанет работать (в данном случае сервер "упадет"). Система логгирования поможет в поиске и устранении ошибки, а именно: перед "падением" сервер запишет адрес, в котором возникло исключение и прочую отладочную информацию. Вместо легкочитаемого кода перед взглядом программиста находятся однотипные команды: "push", "mov", "jg", "add" и прочие. Каждая команда занимает одну строчку.

 

Собственно, что происходит при "фиксе" багов?

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

Справка:

Процедура это маленькая программа, возвращающая в основную определенный результат или/и выполняющая определенные действия.

 

Что происходит при добавлении функционала (изменении существующего механизма)?

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

Представьте, что на Вашей улице построили новый дом и нумерация сместилась. Т.е. дом, который был 8-м (Ваш дом), станет 9-м. Это значит, что почтальон будет доставлять Вашу почту в новый дом, а не в Ваш.

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

В реальности новый дом скорее всего получил бы корпус, а значит был бы уникальным, при этом нумерация не менялась.

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

 

На словах это звучит достаточно просто, а на практике основная сложность заключается в поиске участка кода ввиду того, что он имеет древовидную структуру. Это занимает значительное время и без специальных средств это невозможно.

 

Надеюсь теперь не возникнет вопросов с тем, что некоторые баги исправляются крайне долго. Спасибо за внимание.

Изменено пользователем Zubastic

out

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Молодец :-) можешь ведь когда захочешь


вашим достоинствам до моих недостатков - еще расти и расти!

* * *

Я всегда права! Даже когда ошибаюсь - я права! :girl_devil:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Данная идея у меня была еще с конца апреля - начала мая, но не было достаточно времени для ее реализации.


out

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

на что ты расчитывал когда писал этот пост? поймите же потребителиям ( игрокам) все равно на ваши проблемы? почему они должны их волновать?


8bc0665f4510.png63.gif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Я думаю не мало людей меня под держат в этом, лучше играть на хорошем сервер чем на каком то г.....

Изменено пользователем ByCooper

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Немного последних новостей:

  • исправлен хайд
  • исправлен откат у кубика (6:30 утра)
  • исправлен итем брокер (работа аукционов)
  • исправлено количество баф слотов у саммонов (сейчас распространяется и на петов, однако это исправят)

На игровых пока еще нет, необходим тест. Следите за новостями.


out

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

на что ты расчитывал когда писал этот пост? поймите же потребителиям ( игрокам) все равно на ваши проблемы? почему они должны их волновать?

вот из-за таких людей и происходит хаос. Зуба объяснил причины почему так долго. Объяснять отдельно каждому - тратить время, которое можно пустить на отладку.

 

Немного последних новостей:

  • исправлен хайд
  • исправлен откат у кубика (6:30 утра)
  • исправлен итем брокер (работа аукционов)
  • исправлено количество баф слотов у саммонов (сейчас распространяется и на петов, однако это исправят)

На игровых пока еще нет, необходим тест. Следите за новостями.

это конечно всё замечательно... Но людей больше интересует что уже исправлено в игре.

вашим достоинствам до моих недостатков - еще расти и расти!

* * *

Я всегда права! Даже когда ошибаюсь - я права! :girl_devil:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В игре это будет после того, как фикс пройдет проверку на тестовом сервере, который сегодня будет запущен. Дабы не повторялась та ситуация, которая была неделю назад, когда сервер постоянно падал ввиду нестабильности dll.


out

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эм... А как устанавливались обновления без теста?


вашим достоинствам до моих недостатков - еще расти и расти!

* * *

Я всегда права! Даже когда ошибаюсь - я права! :girl_devil:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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


out

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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


наши поезда самые поездатые поезда в мире!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

на мой необъективный взгляд, игроку всеравно как правят баги, он играет и все. и если что то не работает как должно (или как он думает) он жалуется. а языки программирования пользователю программы знать не обязательно.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

на мой необъективный взгляд, игроку всеравно как правят баги, он играет и все. и если что то не работает как должно (или как он думает) он жалуется. а языки программирования пользователю программы знать не обязательно.

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

<= вот самый недовольный человек.

Умеете же перевернуть слова Зубастика с ног на голову. Он молодец что дал объяснение почему. А игроки, которые не желают проявлять понимание... Ну это их проблема в общем.


вашим достоинствам до моих недостатков - еще расти и расти!

* * *

Я всегда права! Даже когда ошибаюсь - я права! :girl_devil:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

игрок это потребитель, хочет все и сразу, не получит этого здесь , найдет то же самое в другом месте, или будет громко ругаться


наши поезда самые поездатые поезда в мире!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...