Постановочные:
Пишу код для стратегической браузерной игры(с нуля). В моей игре подразумевается открытие новых строений/технологий/навыков при улучшении навыков/технологий. Задача: Собственно проверка соответствия игрока требованиям.
Текущее решение:
Проверка реализована отдельной функцией. В функцию передаётся массив имеющихся у игрока навыков/технологиями и ID объекта. Функция, берёт из таблицы БД в которой хранится информация об объектах преквизиты требуемого объекта и сравнивает его с навыками. Те Запрос отправляется при каждом вызове.
В случае удовлетворения преквизитов возращает 1, если нет 0.
Минус: Функция встроенна в формирования списка доступных игроку объекта и вызывается для каждого, в цикле. Опасаюсь, что с ростом числа игроков и построек это может занять большее время, чем хотелось бы. И лишняя нагрузка на БД
Вопрос: Возможно ли оптимизировать этот процесс, или есть ли другие способы проверки.
Что уже делал: Пробовал препарировать Ogame, но с иностранными комментариями(даже не английскими, попадались немецкие итальянские и ещё какие-то неопределённые) больше запутался, чем разобрался.