Итак, следующая версия патча. Пока все идет по плану развития.
Нововведения - ниже.
1) Введены репутации (гильдии). Например, репутация защитников Ордена и т.п. Будет необходима для линеек квестов и т.п.
Сами репутации введены полностью (админка, звания, функции для работы с ними, отображение в информации пользователя и т.п.), а вот наград за них пока нет (хотя условия в скриптах и т.п. поставлены).
2) Переписан весь движок квестов (кроме, наверное, наград). Помимо оптимизации выполнения, позволило устранить кучу глюков в работе квестов, упростить программирование, повысилась наглядность кода.
Из важного тут:
- убраны бестолковые "технические" миссии (типа отдать квест-итемы - это была дополнительная необходимая миссия к миссии добыть квест-итемы)
- добавлены миссии "принести свиток", "принести ресурс", "принести часть вещи"
- миссия типа "нереальная" теперь может быть завершена в диалоге (а на ответ, как известно, можно поставить любое, сколь угодно сложное условие)
- завершение миссий и частей квестов как действие по скриптам теперь выполняется корректно, обрабатывается позднее тоже корректно.
- переписана часть логики вывода ответов у NPC. Теперь там корректное проверяется выполненность миссии, в том числе можно в диалоге завершать миссии не только типа tell_npc, но и, например, типа "принести ресурс". также наконец правильно отображаются восклицательные знаки около NPC, если есть какие-то доступные квесты, возможность сдать часть или миссию;
- сильно (количество колонок уменьшено вдвое) оптимизированы таблицы, в которых хранились данные о пользовательских миссиях. Побочно - теперь при изменении параметров миссии в админке у всех пользователей в игре автоматически изменяются все миссии на обновленные;
- исправлено и доработано отображение данных по миссиям в активных квестах;
- исправлена ошибка по неправильному перескоку частей квестов в ряде случаев;
- оптимизировано хранение данных о квестах и миссиях игрока.
3) Остальные изменения:
- исправлен вывод профессий в инфе (профессии без заданного типа - выводилась только одна профессия)
- переписана вся таблица "условия" - все условия теперь разделены на группы, с ней стало удобнее работать, помимо этого, введена куча доп условий (наличие вещей, ресурсов, свитков, квест-итемов; условия связанные с репутациями).
- в боевых условиях добавлено условие "каждый n раунд", помимо условий типа "раунд не более" и "ранее не менее" - потребуется в боях с РБ
- введены координаты и размеры локаций. Никакой функции в игре не несет пока что, но у меня наконец есть идея, как сделать карту :)
- теперь у переходов и телепортов есть поле id_condition - то есть можно поставить условие, при котором он будет отображаться (правда, на поиск скрытого перехода в локации не влияет)
Пожалуйста, пока все :)
Планы на следующий патч:
- карта и все с ней связанное
- оптимизация и модификация админки (модули, написанные давно, явно нуждаются в переписывании - крайне ненаглядная работа с ними сейчас, увы)
- введение нескольких доп. условий и скриптовых действий
- исправление работы почты
- по хорошему - ввод первой репутации и развитие обучающих квестов; правильное заполнение новых локаций
- ввод стандартов по уровню для вещей, дропа у мобов и т.п. - по сути, тоже модификация отображения админки.
Планы на последующие патчи:
- введение "ярмарок" - спец. магазина для покупки любых вещей в игре, который будет заскриптован. Частично - для экономики, которая неразвита, частично - для наград за репутации и т.п.
- рейд-боссы
- полное введение добывающих профессий
- переписывание и оптимизация торговли
- проверка и оптимизация крафта
- перевод части JavaScript на Ajax
- введение эффектов (например, через свитки), действующих один раунд
- введение уязвимости к оружию у разных типов ботов
- модификация поля боя
- введение кланов
Большое обновление - первое за полгода.
Всех с новым годом!
Ребята, извините, работы в 2020 году оказалось крайне много. Это привело к тотальной нехватке времени... и даже желания заниматься чем-либо.
По итогу, последнее обновление было начато в июне-июле... потом полгода перерыва, и закончил я его в декабре-августе.
Зато изменения огромные! Список ниже.
Общие изменения:
- игра в дальнейшем оптимизируется и переводится под запросы через массивы данных. Это позволяет устранить тьму глюков в сочетании с повышением скорости работы и читабельности кода.
- исправлена неверная дата регистрации и последнего посещения при регистрации
- исправлена генерация вещей у мобов высокого уровня (когда уровень моба выше максимального уровня вещи), а также ряд глюков, связанных с генерацией вещей, например, низкого уровня
Админка:
- Добавлена админка ресурсов (добавление, удаление и редактирование). Добавлена возможность сделать короткое описание ресурса
- Добавлена админка частей вещей (добавление, удаление и редактирование).
- Переписана админка скриптов. Условия вынесены в отдельную таблицу, что повысило универсальность условий и гибкость настройки. Сделана возможность действий как обязательных, так и исключающих (обязательные выполняются независимо друг от друга, если шанс выпал; из исключающих выполняется только одно действие из списка)
- Действия: добавлены действия связанные с эффектами, а также действия, связанные с повышениями шансов на дроп и т.п.
Игра:
1) Изменения в ботах и дропе:
- Введены предпочтительные раскачки ботов (например, можно сделать, чтобы крысы были всегда танками). Мало того, вместо трех стандартных теперь их десять (три стандартных и 7 смежных) + введена возможность ботов-негуманоидов стрелков (а также устранен глюк, где, например, мышь могла бить через клетку). Сами \'раскачки\' ботов сделаны корректнее.
- Максимальная сила бота повышена с 7 до 9. Стандартная осталась 3. Мобы силой 8-9 практически непобедимы для обычного игрока (того же уровня), но для тестов и баланса - полезно.
- В дропе сделана возможность дропа квестовых итемов (не связанных с квестами)
- В дропе есть возможность поставить какое-то сложное условие (например, наличие квеста, эффекта, дня суток и т.п.)
- В дропе теперь можно задавать от минимального до максимального количества падающих итемов
- Введена возможность повышения не только количества, но и шанса дропа тех или иных итемов (например, можно сделать эффект, повышающий шанс дропа ресурсов)
- ПОЛНОСТЬЮ переписана система (и все функции) дропа. Код стал читабельнее и понятнее, а главное - появились новые возможности. Из минусов - пока отключено влияние группы на дроп. С каждого моба дроп уходит тому, кто нанес наиболее количество урона.
2) полностью переписаны профессии:
- Добавлена админка профессий.
- Сделана возможность получения профессий по квестам; введены исключающие профессии;
- Сделан задел на добывающие профессии.
- Во всех необходимых местах введена возможность поставить условие наличия/отсутствии профессий.
3) полностью переписаны свитки:
- введена админка свитков
- свиток может накладывать проклятие или благословение на персонажа
- сделана замена банок на восстановление хп на быстрой панели на свитки типа \'быстрые карманы\'
- у боевых свитков появилась возможность ставить несколько свитков в один карман
- вместо жесткого задания эффекта свитков теперь полностью его действие можно настроить через админку
- сделана возможность применения боевых скриптов, вызывающих определенное действие, например, призыв на помощь мобов.
- сделана возможность воскрешения персонажа в бою (пока, увы, не тестировалась)
4) полностью переписаны эффекты
- введена админка эффектов
- эффект может быть куплен в храме или наложен свитком, скриптом, действием и т.п.
- введена принципиальная возможность применения эффектов мобами
- сделана завязка скриптов и условий на наличие эффектов
- переписаны массивы хранения всех эффектов пользовтаеля
5) остальное:
- добавлено описание для квест-итемов
- поправлен крафт ресурсов, был ряд глюков. Добавлено отображение количества ресурса, который крафтим
- снова подключено действие сетов
- введено влияние способностей и сторон на рейтинг персонажа
- у призванных (например, по скриптам) ботов теперь прописан владелец и возможность дропа. Урон от бота плюсуется к урону владельца при расчете дропа
- у скриптов появилась возможность завязки на конкретного бота (например, можно поставить регенерацию хп от удара для вампиров)
- существенно переписан баланс оружия. Урон двуручного оружия сильно увеличен. Переделан баланс между луками, арбалетами, копьями и обычным оружием (ближнего боя)
- переделана выборка свойств. В качественных вещах раньше НЕ попадались нейтральные (универсальные) свойства
Планы на будущее:
- исправление работы аукциона и почты (на данный момент не работают практически)
- введение рейд боссов
- введение гильдий
- полное введение добывающих профессий
- переписывание и оптимизация торговли
- оптимизация массива хранения миссий и квестов пользователя
- проверка и оптимизация крафта
- перевод части JavaScript на Ajax
- введение эффектов (например, через свитки), действующих один раунд
- введение уязвимости к оружию у разных типов ботов
- введение миссий типа 'принести ресурс', 'принести часть вещи'
- введение кланов
- изменение поля боя
Ура! я наконец закончил проходку по коду.
После трех проходок с модификацией кода он существенное преобразился и оптимизирован.
Оптимизация: - оптимизированы все действия в игре. Например, при обычном перемещении по локациям кол-во запросов уменьшилось на 10%, при принятии тут же завершающегося квеста (типа ежедневной награды) - на 30% и т.д.
- почти все повторяющиеся действия в игре завязаны на функции. Благодаря этому теперь будет крайне легко редактировать код и делать нововведения
- кол-во строк кода уменьшено процентов на 10-15%
- сделана полная подготовка для оптимизации работы через cookies (потребуется при большом кол-ве игроков)
- как всегда, исправлена куча мелких ошибок, опечаток и т.п.
- в нескольких таблицах в БД убраны лишние столбцы
- сильно ускорена проверка корректных фраз у NPC в зависимости от квестов
- сильно оптимизирована загрузка вещей и итемов пользователя.
- оптимизирован список игроков в локации - там была тьма лишних запросов
Изменения в игре: - временно отключены эффекты (в информации отображаются, но не считаются)
- исправлен дроп ресурсов с мобов
- теперь миссии с неограниченным кол-вом квест-итемов работают корректно
- теперь работает крафт ресурсов
- изменены скрипты на слом вещей - теперь они запускаются только при сломе, а не при выкидывании и т.п.
- введена продажа квест-итемов в комиссионку
Допускаю, что в игре может появиться немало мелких глюков, которые я не отследил - жду обратной связи!
Теперь о планах на ближайшие обновления.
С оптимизацией на некоторое время закончено, приступаем к новому.
Ближайшее обновление:
- добавление/редактирование ресурсов
- добавление/редактирование частей вещей
- добавление/редактирование профессий (и переделка БД в соответствии)
- полная переделка и добавление/редактирование эффектов на персонаже
- существенная переделка и добавление/редактирование свитков
- переделка и редактирование банок на здоровье (которые вне боя).
Следующее обновление:
- как выяснилось, почта внятно не работает, а аукцион работает не совсем корректно. Будем исправлять это тут
- добавление репутаций/гильдий и т.п.
- возможно, тут же редактирование наград за репутации и т.п. Это большой блок
Более поздние обновления:
- исправления мелочевки, которая всплыла в процессе оптимизации. Сейчас делать нет смысла, так как ближайшие два обновления частично решат эти проблемы.
- добавление рейд-боссов и т.п.
- добавление карты
- добавление инстансов
- переделка боя на пошаговый и т.п.
Ну и, само собой, добавление обучения после нормального интерфейса, а также наполнение игры контентом.
Очередная промежуточная версия. Почти ничего нового и одновременно существенные изменения:
- сделана нормальная система уровня доступа для модераторов, админов и т.п. разного уровня. Ранее работала криво.
- переработан форум. Убрана куча лишних функций в коде, заработал поиск, оптимизирован вывод текста, устранена куча глюков, немного "причесан" внешний вид, админка работает теперь корректно
- переработано отображение локаций в базе данных в зависимости от уровня доступа. В локациях теперь поддерживаются тэги (выделение жирным, цветом, курсивом, шрифтом и т.п.);
- аналогично - во фразах от NPC
- заполнена часть файла config.ini, сделано его отображение в админке для чтения с подсветкой синтаксиса
- в новостях добавлена поддержка смайлов
- проведена дальнейшая оптимизация, позволившая снизить кол-во запросов при загрузке страницы еще на 3-4 при каждом обновлении
- починены часики в игре (причем ошибка исправлена системно)
- увеличено количество символов в информации о пользователе
- проведена оптимизация и исправление ряда ошибок в функциях регистрации, логина и т.п.
По итогу - примерно -10 файлов и 1000-2000 строк кода без падения производительности, удален ряд лишних картинок и т.п.
Работаю над оптимизацией и "причесыванием" основного кода игры.
Еще одно маленькое обновление, хотя достаточно критичное
- устранены ошибки в отображении магазина, кузнеца и т.п. после перехода на PHP7
- сделано правильно отображение ссылок в магазине (старый глюк)
- исправлены некоторые ошибки в работе аукциона
- у всех нестандартных локаций сделано более корректное отображение
- исправлены ошибки в сообщениях при отправке почты
- оптимизирован список игроков в мире - убраны лишние запросы, изменено отображение (чуть-чуть)
- самое главное - убрано 5 "мусорных" функций, которые проходили сквозь весь код. Это ускорило работу почти всех элементов в игре. И даст возможность упростить код в дальнейшем.
Занимаюсь дальнейшей оптимизацией и созданием config.ini
Еще одно небольшое обновление, которое явно требовалось выложить до серьезного.
Изменения:
- исправлен с десяток глюков (в основном, опечатки), появившихся при переходе с PHP 5 на PHP 7;
- создан файл config.ini по всей игре и интерфейс его заполнения в админке. Сам файл пока не заполнен;
- добавлен еще один мощный инструмент настройки диалогов и доступности квестов - таблицы условий;
- возможные действия по скриптам пополнились возможностью устанавливать хп персонажу;
- "причесана" админка, теперь у вещей отображаются связи со скриптами;
- добавлена админка и возможность редактирования сетов вещей.
Срочная оперативная версия.
В связи с переходом хостинга на PHP7.x вся игра переведена с PHP 5.3 на PHP 7. PHP7 сам по себе работает быстрее, что, конечно, дает существенный прирост производительности, особенно в тяжелых боях.
Помимо этого, есть пара небольших изменений:
- введен район "Волчья роща". там дополнительно 15 локаций. Мобами пока не наполнена, но позволила связать несколько районов воедино;
- исправлены пара переходов из района Поля Родены;
- введен полный функционал для добавления и редактирования брони и оружия
- исправлено несколько глюков с отображением прочности вещей и времени их жизни (в игре не встречалось ранее, так как таких предметов не было, но для наполнения они потребуются)
Работаю над остальными задачами, поставленными в прошлом патче.