Как стать автором
Обновить
5.04

ООП *

Объектно-ориентированное программирование

Сначала показывать
Порог рейтинга

Реализация перераспределения целей (retarget) в играх RTS жанра

Учитывая предыдущую критику, что удобнее читать статьи, а не слушать видео, попробую вначале сделать акцент на тему, вынесенную в заголовок. Дело в том, что в статье концентрация информации больше, но широкий контекст обсуждения вопроса, остается за кадром. Поэтому для узконаправленной подачи информации собираюсь написать статью, а для более широкого понимания вопроса предлагаю ознакомится с представленным видео.

Задача выбора целей для атакующих NPC

В играх RTS жанра обязательно возникает задача, как выбрать для NPC цель. Мы хорошо знаем, когда игроки на их жаргоне говорят "заагрился", что означает, что некий юнит, обратил внимание на юнитов игрока, и будет их преследовать и атаковать. В ряде игр от заагрившегося юнита можно убежать, в других наоборот, он будет вас выслеживать "по запаху, остаткам крови", как это реализовано в JA3. Но как усложнится задача, когда агрессивных NPC в игре сотни, и у игрока аналогично их сотни, или тысячи. Можно ли раз и навсегда заагрится на какого то конкретного юнита? По какому принципу перераспределять цели между разными NPC? Все это не тривиальные задачи, но они имеют одно достаточно простое решение на базе алгоритма искусственного интеллекта, который своими корнями восходит к алгоритму градиентного спуска.

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Global variable is not a field!

Глобальная переменная - это не поле для наследования ООП. Эта мысль посетила меня слишком поздно, поймите мою боль.
Я создал глобальную переменную, точнее даже глобальную переменную с локальной областью видимости (static). Эта переменная жила в методе. Я ожидал, что у каждого экземпляра класса будет свой метод (что верно) со своим экземпляром переменной (неверно).

void TClass::method(){
    static QByteArray globalVar; //will the same for all objects
}

Учите ООП, голубцы!

Всего голосов 8: ↑3 и ↓5-2
Комментарии5

Вклад авторов