Добавлен Дарин,
опубликован
Со времен новогоднего апдейта прошло порядочно времени, и пора уже делиться новой обновой. Это очередное противоречивое обновление, которое, на первый взгляд, не содержит избытка нововведений, но, на практике, потребовало немалых усилий в реализации.
Основное
Главное, над чем я работал - это оптимизация игры. Хотя графония в проекте почти нет, движок, который я пользую, GLScene, как я отмечал ранее, не рассчитан на столь бесцеремонное обращение. Во-первых, он ожидает bsp-древо как основу того, с чем придется работать. Если не бсп, то, хотя бы, террейн. Здесь нет ни того, ни другого: уровень есть набор кусочков, представленных полигональными мешами. Причем даже на уровне 20х20 таких мешей набирается свыше 600. Плюс их надо постоянно обновлять по мере продвижения игрока - выводить как видимую только часть уровня. В итоге ежесекундно движок делает несколько десятков тысяч пусть и мелких, но телодвижений. Старая имплементация была далека от оптимума, и потому более крупные и насыщенные уровни, особенно те, на которых были объекты с заданным поведением, буквально клали довольно производительные компьютеры на лопатки.
Пришлось переписывать. Теперь игра обрабатывает уровень раз в секунду, а при движении и поворотах персонажа проводит дополнительные, упрощенные пересчеты (чтоб минимизировать или исключить мерцание объектов или кусков уровня), а частота обновления анимаций объектов с поведением была существенно урезана.
Увы, этого оказалось недостаточно. Так что в нагрузку к этим системам, пришлось приписывать автоматическую пересчитывалку дальности отрисовки уровня, которая следит за тем, чтоб показатель FPS не проседал ниже заданной отметки (по умолчанию - 30). Так стало получше, и теперь в целом игра выдает более-менее стабильную частоту кадров.
Ну а на добивание пришлось прикручивать к редактору новый функционал зон видимости. Эта фишка позволяет настраивать отображение частей уровня из других частей, тем самым добиваясь экономии ресурсов еще и за счет этого.
Мелочи и плюшки
Контент игры с прошлого раза почти не изменился - ну, разве что, на паре-тройке уровней стало больше декораций. Зато по текстовке стало поприятнее. Теперь игра позволяет прописывать предметам и монстрам текстовые описания. Они есть не у всех объектов обеих категорий, но у значительной части эти текстовочки таки появились.
Заодно я передвинул справочную информацию по управлению инвентарем и книгой заклинаний в гораздо более приметное место, а заодно научил шрифт описаний объектов и карт уменьшаться, когда окно значительно меньше приемлемого разрешения.
Скачатъ?
Все ссылки на главной странице проекта
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Правда оптимизация похожа на костыли... А GLScene построен на основе вершинных/индексных буферов?
По технической части вопроса - ваааарп, этого я не знаю О__о Покопавшись в документации, четкого ответа не нашел, а значит надо рыть глубоко под капот Сцены, чтоб познать. Она однозначно работает на основе системы каких-то буферов, это да, но не думаю, что такой ответ сильно поможет =) Мне откровенно недостает профессионализма (гы) чтоб дать адекватный ответ :(