Суббота, 23 Ноября 2024, 01:26

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Задача: Проверка выполения игроком преквизитов здания и пр.
ZizilkДата: Среда, 07 Апреля 2010, 20:28 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
Постановочные:
Пишу код для стратегической браузерной игры(с нуля). В моей игре подразумевается открытие новых строений/технологий/навыков при улучшении навыков/технологий.

Задача: Собственно проверка соответствия игрока требованиям.

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

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

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

Сообщение отредактировал Zizilk - Среда, 07 Апреля 2010, 21:44
ApatiДата: Среда, 07 Апреля 2010, 21:15 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Сделай коэффициент развитости игрока, который увеличивается когда игрок изучает новую технологию. Потом в функцию передаешь этот коэффициент и ID объекта, функция тупо смотрит, больше ли этот коэффициент чем минимально допустимый для доступности объекта и выдает 1 или 0. Если система соответствия более сложная, то можно добавить еще несколько коэффициентов.
ZizilkДата: Среда, 07 Апреля 2010, 21:24 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
Способ интересный).
Но при моих планах вряд ли прокатит.
Если первый вариант будет неиграбелен , то буду думать над изменением планов.

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

Сообщение отредактировал Zizilk - Среда, 07 Апреля 2010, 21:26
LucasitoДата: Среда, 07 Апреля 2010, 23:24 | Сообщение # 4
участник
Сейчас нет на сайте
если я правильно понял твою задачу, то лучше делай не так. Добавь к объекту дополнительное поле, например доступность/не доступность, если понадобится, то несколько полей, и все расчеты проводи не в функции, а при изучении какой-либо новой технологии. Т.е. изучил новую технологию (что я думаю будет не так часто), пробежался 1 раз по всем объектам, открыл там флагами в дополнительных полях нужные вещи и всё. А функция... функция практически сразу будет возвращать результат.


Скриншоты. Приглашаем бета-тестеров!
Помог? Ставь "+" мне в репу :)
ZizilkДата: Четверг, 08 Апреля 2010, 07:28 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
А вот это наверное попробую, тем более сам об этому подумывал. С прототипом покончу и реализую.

Кстати пример работы той функции http://zizilk.123bemyhost.com/ тут можно посмотреть). Это даже скорее не прототип а проба пера. после логина всё расписанно в новостях(единственное, чтобы меню отображалось нормально нужно поставить кодировку UTF-8, автоматом туда руки не дошли поставить, но теперь и вряд ли дойдут))

webstrict666Дата: Понедельник, 12 Апреля 2010, 13:16 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
Очень интресны проект , вазьму на заметку и буду наблюдать за разработкой ...

http://GAMESKROL.RU
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально !
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг