Здравствуйте.
Извиняюсь за, возможно, продолжительное ожидание, но, как было указано выше, сессия не щадит никого — и преподавателей особенно.
Я изучил описание, что вы прислали и сделал себе несколько заметок по возможным способам реализации. Как я уже отметил раньше через Automation Baby — скрипт очень большой, так что потребуется много усидчивости и индивидуальный подход к деталям, зато результат будет действительно стоящим.
Сразу скажу, что самыми дорогими частями будут (по убыванию оценки цены):
автоматическое списание вещей из инвентаря,
система отслеживания условий наград,
система прокачки —
то есть те части, которые связаны с автоматизацией и интерфейсами пользователя, поскольку именно эти элементы должны быть сразу сделаны хорошо, чтобы обеспечить надёжность, безопасность и стабильность работы системы. Интерфейс для администраторов всегда является более простой задачей, так как не требует специальных ограничений (при предположении, что администраторы не начнут что-то целенаправленно ломать), а окно персонажа является весьма типовым и относительно простым скриптом.
Помимо указанных выше дорогих частей, значительно на стоимость повлияет выбор способа размещения данных и их обработки. И тут, как мне кажется, есть два принципиальных подхода, который необходимо выбрать сразу, так как от этого выбора будут зависеть вообще все последующие работы.
Вариант 1: в рамках существующего форума
Вопреки сложности скрипта, я, пожалуй, скажу, что можно сделать всё заявленное чисто в рамках форума. Это сложно, но не невозможно. Основным инструментом тут будет API MyBB, что позволяет загружать данные сравнительно просто. Так можно получить, например, все сообщения из анкеты, что бы обеспечить доступ к данным. Хранение списков артефактов и способностей можно обеспечить при помощи файлов JSON, что позволит избавиться от этапа парсинга, но потребует дополнительный интерфейс для редактирования.
Самый большой плюс этого варианта — можно заплатить один раз и скрипт будет работать вечно, разумеется, при условии соблюдении формата хранения данных. А вот дальше начинаются минусы.
Во-первых, всё будет храниться в форматах, которые может быть не всегда удобно редактировать и/или изменять. И хотя изменение данных может быть реализовано через интерфейсы, их реализация будет отдельной нетривиальной задачей. Если же уменьшить количество интерфейса, то придётся увеличить сложность парсинга — "перевода" данных в формат, понятный компьютерам, — что всегда увеличивает сложность при уменьшении стабильность работы. В добавок, если количество артефактов будет большим, то могут возникнуть проблемы с производительностью на слабых компьютерах и телефонах, так как такие методы предполагают, что грузиться будет всё и сразу.
Во-вторых, подобный подход может быть небезопасным, потому что, фактически, пользователь будет иметь доступ к изменению всего. То есть да, это будет сложно и неудобно, но не невозможно, а значит будет возможно читерство. И это может быть весьма критично в, например, задачах распределения навыков и характеристик, так как отследить подобное злоупотребление может быть сложно. Чем больше внимания будет уделяться этой части скрипта, тем больше будет цена всех работ.
В-третьих, дальнейшее улучшение и обновления системы могут быть затруднены размером и сложностью скрипта. С другой стороны, как я указал выше, в этом варианте код будет наиболее независимым, то есть он сломается только вместе со всем MyBB либо при ошибке в формате сохранённых данных, которые при таком подходе будут самыми критичным, и оттого следить придётся больше за ними.
Вариант 2: выделенный сайт
Данный вариант подразумевает написание отдельного сайта на PHP, который будет обеспечивать всю работу с данными. Самый весёлый и нетрадиционный способ на MyBB, но одновременно и один из самых гибких. Прямо сейчас у меня полноценно работает форум с подобным подходом работы с информацией о персонаже (приглашаю посмотреть моё портфолио — там это есть).
Самый крупный плюс этого подхода — это огромная гибкость, так как здесь есть доступ к специальным базам данным, которые сильно упрощают и ускоряют доступ ко всем необходимым данным. Кроме того, этот вариант значительно безопаснее, так как мы имеем значительно больше контроля над вводимыми данными ещё на моменте их ввода.
А ещё это будет более быстрый как для реализации, так и для работы вариант. Да и новые вещи впоследствии можно будет реализовывать проще — при знании PHP, разумеется.
Однако у этого варианта есть и пара существенных минусов, решительно отличающихся от предыдщего варианта, которые, впрочем, с моей точки зрения, минусами не являются вовсе.
Во-первых, для этого вариант потребуется отдельный хостинг (и, возможно, домен) — а они требуют регулярной оплаты. Я использую Beget, и у них самый дешёвый вариант идёт оплата 190 ₽/месяц (или 1980 ₽/год, если платить сразу на год) — но у них даётся технический домен, который можно использовать, чтобы сэкономить на домене (179 ₽/год регистрация + 289 ₽/год продление). Разумеется, можно выбрать другой хостинг по вашему желанию. Так же стоит отметить, что я могу хранить сайт на своём аккаунте хостинга за 1000 ₽/год, но при этом варианте у вас будет ограниченный доступ к исходным кодам сайта и базе данных.
Во-вторых, с огромной долей вероятности, на этом отдельном сайте придётся делать отдельную регистрацию, так как MyBB не предоставляет возможности надёжно авторизовываться на внешнем сайте. С другой стороны, если так же вынести туда всю основную информацию о персонажах, это будет альтернативой мульти-аккаунта, идущего с VIP MyBB, то есть с этого общего аккаунта у игрока будет возможность работать сразу со всеми персонажами, например, изменять их профиль… Тут, на самом деле, фантазия может уйти гулять в далёкие дали. К слову, именно из-за этой причины сайт-спутник для форума, с которым я работаю, называется «Единый аккаунт».
Альтернативной абзацу выше будет использование комбинированной схемы: все пользовательские интерфейсы будут реализованы в рамках форума, а сайт будет только инструментом для загрузки и связи данных. Этот вариант будет проще и дешевле, но оy имеет значительно меньше потенциала для развития.
Оба варианта обещают быть примерно одинаково дорогими по цене, однако во втором варианте часть ваших расходов будут на хостинг, а не на мою работу, так как во втором варианте у меня наработок больше. Так что я не думаю, что не будет сильно удивительно, если я скажу, что второй вариант мне нравится на порядок больше.
Я думаю, что в первую очередь, стоит заняться составлением подробного технического задания, в рамках которого я распишу работы, которые будут проведены с ценами по каждому из них с ценами и ориентировочными сроками. Это позволит гораздо лучше понять процесс работы, к тому же вы запрашивали возможность оплаты по частям. Если вы согласны на это, то я постараюсь в течении недели подготовить его первую версию для согласования. Вместе с этим я думаю, что лучше будет перевести обсуждение на сервер ForumD в Discord — там обсуждения будет вести проще и быстрее.
Если говорить про непосредственно стоимости всех работ вместе, то, я полагаю, что стоит ориентироваться на значение ближе к 10000 ₽ — 15000 ₽, но на конечное число здесь в значительной степени будут влиять выбор методологии и выбранные сроки, которые, собственно, необходимо будет обсудить дополнительно.
P.S. Этот аккаунт — мой. Я его регистрировал, что бы посмотреть на то, в каком формате у вас хранятся анкеты, что бы оценить возможность работы с ними как источника данных для окон в JS-варианте. Мне не принципиально, что вы сделаете с этим аккаунтом — удалите или оформите на своё усмотрение (можете поставить мой игровой пседоним Тесва) — но если будем работать, то мне понадобится аккаунт с доступом, что бы иметь возможность быстро оценить что-то и привести в вид , и я могу использовать этот аккаунт.