www.fgks.org   »   [go: up one dir, main page]

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

Птичий язык (пятничное)

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров1.2K
Плюсы тут ни при чем, просто картинка понравилась.
Плюсы тут ни при чем, просто картинка понравилась.

Стоим мы как-то раз в курилке с коллегами, обсуждаем новый полис в GOAP и планируем расход задач на неделю, пару тасок решили кинуть в обезьянку, две ноды вернуть из ада депрекейта и настроить для работы с новым бт, а одну вернуть мастеру - пусть сам свои фланкинги ковыряет, раз уж он их и заимплементил, а еще две сжечь, а еще надо выделить время, чтобы покопать TSA, потому что новый GD сломал пару вейтов, и теперь хуман ходит не в тот ковер. Еще одну придется собирать из г..на и палок частей других нод, потому что дизайнеру нужно вчера, а времени на инвестигейт нет, покрасим её в фиолетовый, чтобы в билд не пробралась. А программеры с соседнего проекта, не аишные, смотрят на нас круглыми глазами и иногда посмеиваются. И вот я сажусь заполнять таски в jira, и понимаю чему удивлялись мои коллеги, потому что придется все эти короткие термины разжевать в таске. Давайте я дам названия терминов, а вы их попробуете объяснить сами, до раскрытия спойлера? Интересный должен игродевовский квиз получиться :) КДПВ просто прикольная, C++ тут нет.


Так сложилось, что большинство терминов разработки игрового искусственного интеллекта происходят из англоязычных, которые и сами по себе уже упакованы по смыслу, и при дополнительной адаптации и сжатии еще и славянской группой превращаются в аналог писка птичек. И без знания особенностей архитектуры AI, конкретного движка и даже версии фреймворка становится очень сложно выделить связную мысль из разговора. Начнем с чего-то простого из игростроя и возможно вам известного, а потом будет самая специализированная мякотка. Готовы?

AAA (ТриА), Indie (Инди), Сrunch (Кранч)
  • AAA (Triple-A) - Игра высокого качества с крупным бюджетом, большим временем разработки и многочисленным штатом программистов +- 30 человеков, если считать помидоров.

  • Indie - Независимые игры, разработанные небольшими командами или отдельными разработчиками.

  • Crunch - Время интенсивной работы перед дедлайном, которые сопровождающийся переработками, быстрым закрытием тасок, концентрацией внимания над определенными задачами или темами и повышенным багопроизводством команды.

Asset (Асет), Build (Билд), Bug (Баг), Patch (Пач)
  • Asset - Любой элемент игры, включая графику, звуки, модели, анимации и т.д.

  • Build - Собранная версия игры, готовая для тестирования QA и фокус группами.

  • Bug - ошибка логическая или программная, которая приводит к неожидаемому поведению в игре.

  • Patch - обновление, бывают (patchfix) исправляющее ошибки или *(contentpatch) добавляющее или убирающие новые функции, контент.

Engine (Энжин, Энджайн)

Engine - движок, основная технология, на которой строится игра (например, Unity, Unreal Engine), большой фреймворк (вроде симуляции физики, Physx), звука (Wwise) или навигации (Paramesh)

Loot (Лут)

Loot - Предметы, получаемые игроком в ходе игры, часто из сундуков или побежденных врагов.

NPC (нпс, непись, хуман)

NPC (Non-Player Character) - Персонаж в игре, управляемый программой, а не игроком.

OP, Imbalanced (ОПшка, Имба)

OP (Overpowered) - Чрезмерно сильный элемент игры, нарушающий баланс.

REG (рега, рандом)

REG (Random Event/Element Generator) - Механизм случайного распределения элементов или событий в игре.

Spawn (спаун, заспавнить)

Spawn - Появление игрового объекта, например, врага или предмета, в игровом мире.

AI (аишка, мозги)

AI (Artificial Intelligence) - Искусственный интеллект, управляющий поведением NPC.

Alpha, Alf, Elvis (альфа, альф, эльф, элвис)

Alpha - Ранняя версия игры, содержащая основные функции, но еще далеко не завершённая, тоже самое что или Elvis в терминах AI.

Alf, Elvis - первый элемент, персонаж в группе объектов или NPC. Обычно на него навешиваются дополнительные функции по отношению к группе.

Blending (блэнд, криво сблендилось, не блэндится)

Blending - Плавное переходное анимационное состояние между двумя анимациями, текстурами, моделями или объектами.

Ht, CBox, Hitbox (Хейта, Хитбокс, Клумба)

Hitbox - Невидимая область, определяющая границы объекта для быстрого детектирования коллизий и попаданий. Клумба - жаргонное для некоторых движков, например в Godot (вероятно от collision box)

Clipping, Noclip (Клип, Понокать)

Clipping - Проникновение одного объекта сквозь другой в игре, часто ошибка графики, физического движка или кривых ручек программеров.

Noclip - понокать, разрешить объектам проходить сквозь друг-друга.

Hit detection, Bullet hit (Хитить, Не хитует)

Hit detection - Определение попадания одного объекта в другой, например, пули в противника.

GDD, Desdoc (ГДД, ДД, Диздок)

GDD (Game Design Document) - Документ, описывающий все аспекты дизайна игры.

HUD (Худ, Хад, Ухо, Хадить)

HUD (Heads-Up Display) - Элементы интерфейса, показывающиеся поверх игрового мира (жизни, мана, карта и т.д.). Хадить - рисовать поверх UI, надоедать сообщениями или напоминать.

(Редко) UHD (User Headup Display) - Ухо, повесить на ухо, значит что-то нарисовать надоедливое на видном месте пользовательского UI.

LOD, Bake lods (Лод, лоды, плодить, кривой лод, отправить в печку)

LOD (Level of Detail) - Технология, уменьшающая детализацию объектов на дальнем расстоянии для улучшения производительности, относится не только для текстур, но и для игровой логики. Плодить - создавать упрощенную модель по изначальной. Bake lods - тоже самое.

Кривой лод - плохо адаптированная под дистанцию геометрия, на которой видны огрехи и ошибки.

FSM, State machine (фсм, стейты, сума, сумка)

(Final) State machine - Модель поведения, представляющая объект, переходящий между различными состояниями.

Сума/Сумка - жаргонное, сложная стейт машина с большим числом состояний, которую трудно отлаживать, иногда старая или наследованная логика. Тяжелая сумка - очень старая FSM.

Сумка порвалась - неучтенный кейс, который приводит к неправильному состоянию внутри FSM.

Tweening, Tweak (Твинки, Твиксы, Потвикать)

Tweening - Небольшая интерполяция данных, создание промежуточных состояний между двумя ключевыми значениями. Применяется для изменения общего поведения NPC, небольшими изменениями, чтобы оно немного отличалось и не создавало детектируемые игроком шаблоны.

Аggro, DA, Danger, Ogre (Агриться, Данжэр, Огр, Огрить)

Aggro, Danger - Состояние NPC, когда он концентрируется на бое с врагом

Ogre - жаргонное, потому что Огр страшный. Огрить может только один NPC, который в данный момент атакует игрока, остальные составляют группку поддержки, рычат, прыгают, и всячески имитируют бой.

Cooldown (Кулдаун, Откат)

Cooldown - Время ожидания перед повторным использованием способности или логики.

DPS (Дамаг, Дпс)

DPS (Damage Per Second) - Показатель наносимого урона в секунду. Параметр оружия, которые используются дизайнерами при составлении логики поведения NPC.

Kiting, Biting, Kit'n'Hide (Киты, Карусель, Катать плеера, Китить, Байтить, Бить игрока)

Kiting - тактика группы NPC, для удержания игрока на расстоянии для избежания ответных атак.

Biting (Bite) - тактика одиночных NPC, целью которых будут редкие безответные удары, например невидимым снайпером, или бессмертными cюжетные NPC.

Kit'n'Hide - тактика группы NPC, укусил-убежал, для отвлечения внимания игрока между несколькими объектами. Используется для имитации напряженных боев небольшой группой.

Мета, Reference (Мета, Реф)

Meta - Эффективная стратегия или тактика, которая создается для конкретной локации, чтобы сделать её уникальной в игре.

Min-Maxing, Burnout (Максить пропертю, Прожечь непися)

Min-Maxing - Оптимизация характеристик NPC группой тестов, с помощью QA или трудом программиста для достижения максимальной эффективности параметров, например скорости передвижения или доджа.

Ragequit, Rageflow (Рейджкат, Флоу, Выхлоп)

Ragequit - специально созданные ситуации боевые или сюжетные, зачастую вызывающие сильный эмоциональный отклик во время игры, которые могут привести к выходу из игры из-за раздражения или гнева. Игрока надо держать в состоянии напряжения, но чтобы не закончилось выходом и негативом.

BT (бт, бтшка, дерево, граф)

Behavior Tree - это метод проектирования игрового искусственного интеллекта. Halo 2 была первой массовой игрой, в которой использовались деревья поведения, и они начали становиться более популярными после того, как было выпущено подробное описание их применения и реализации. Представляют собой комбинацию множества различных методов AI: FSM, планирования, планирования и выполнения действий.

GOAP (Гоп, бардак)

GOAP (Goal-Oriented Action Planning) - это метод, обычно используемый в высокоуровневом игровом ИИ для создания алгоритмов поведения, которые могут автономно определять свои действия и достигать определенных целей в игровой среде. Обычно используется для создания сложного и адаптивного поведения неигровых персонажей в игре, является надстройкой для BT.

Основная идея GOAP — разбить сложную задачу или цель на серию более мелких и простых действий, которые может выполнить NPC. Эти действия затем организуются в план или последовательность действий, которые приведут его к желаемой цели.

Policy (Полис, Полиси, Политика)

Policy - особая тактика настройки GOAP, которая позволяет учитывать несколько целей, которых необходимо достигнуть. Полиси создает последовательность действий, называемую планами, которые запускаются с заданной периодичностью во время работы GOAP для изменения весов целей, которые в обычном случае задаются постоянными или через конфиги.
Более подробно можно почитать тут

Zerg (Зерг - тактика, Зерги)

Zerg - Тактика группы NPC в терминах игрового ИИ, основанная на использовании численного превосходства над игроком.

Зерги - NPC, которые постоянно атакуют игрока, не давая ему перейти к активным действиям. Откуда пошло наверное понятно.

Spaghetti (Спагетти, Спаржа, Лапша, Лапшекод)

Спагетти(Spaghetti) - Плохо структурированный и запутанный код или алгоритм, который трудно поддерживать. В терминах анриала все блупринты, даже самые структурированные, со временем превращаются в спаржу или лапшу, понятную одному автору, который это написал

Sushi (Суши, Сушка, Сушить код, Засушить)

Суши (Sushi) - Обновление кода, которое, вместе с исправлением проблемы, вносит ошибки, которые влияют на общую работу.

Сушить код - бисектить комиты в поисках суши. Работает так, проверяем коммит на полпути между известным хорошим и известным плохим, отмечаем коммит как хороший или плохой. Повторяем до тех пор, пока вы не найдем точный коммит, в котором ошибочные изменения были добавлены впервые.

Часто код сушат в поисках виновного, чтобы предоставить неоспоримые доказательства преступления и покарать автора сушки.

Засушить - отправить суши в репо. Джун намедни засушил три комита, которые проморгали три помидора. Теперь придется все откатывать, отдадим мидлу на починку, а джуну выдадим звание манкера на неделю.

Hodgie code, shitware (внутри еще немного про ж... код)

Hodgie code - Некачественный и непродуманный код, ну вы поняли

Painass - Джун вернул коммит на дцатое ревью, рукож..п

Shoveass code - в равной степени как бесконечно ужасный, и гениальный код, который не поддается разбору обычным программистом.

Footloose code - код, который не влияет на работу функции, может быть удален без потери функционала.

Phonyass code - функционал, который не могут переписать или удалить долгое время, без переписывания половины движка. Код, который имеет зависимости ко всем частям движка

Assload code - сложный код, который дорого поддерживать, но еще дороже выкинуть и переписать заново.

Ratass code - код, который никто не хочет ревьювать, и перекидывают от одного человека к другому.

Stub, Backtrack, Hardcode (Затычка, Трэкать, Хардкод)

Stub - временное решение или заглушка в коде, используемая для тестирования.

Backtrack - поиски ошибок в коде, отслеживая шаги назад по цепочке событий или вызовам функций, когда дамп не доступен.

Hardcode - значения напрямую в коде, вместо использования переменных или конфигураций.

Race, Datarace, Databranching (Гонка, Гонка по данным, Бранчит)

Race - ошибка, возникающая при неправильном управлении потоками, приводящая к непредсказуемому поведению.

Datarace - тоже самое, что и race, но возникает между состояниями объектов, когда изменения в одном состоянии приводят к некорректному работу в другом.

Databranching - неправильная настройка конфигов, которая приводит к конфликтам на загрузке и ошибочному поведению в игре.

Glitch (Глитч)

Glitch - Небольшая ошибка или сбой в игре, часто графическая, которая не крашит игру и не меняет общего поведения AI.

Bones (Боны)

Bones - Кости, используемые в скелетной анимации для управления движениями персонажа.

Waypoint (Вейт, Вэйпоинт)

Waypoint - Точка на карте, используемая для навигации персонажей или объектов, обычно поставленная дизайнером и статичная в пространстве уровня. Ходить по вейтам - идти по заранее заданному пути.

Cast, Raycast, Raypick (Каст, Рейкаст, Рейпик)

Cast - Приведение типов данных или проверка пересечения луча с объектом.

Raycast, Raypick - проверка пересечения луча с объектом, навмешом или геометрией.

Level designer (ЛД)

Level designer - Проектирует и создает уровни игры.

Navmesh (Навмеш, Навигация)

Navmesh - Сетка навигации, используемая для передвижения персонажей по игровому миру.

Passcode, Goldenpath (Паскод, Голденпас)

Passcode/Goldenpath - Путь прохождения игры или локации, который был задуман разработчиками.

Pathfinding (Пасфайнд)

Pathfinding - Алгоритмы, используемые для поиска пути в игре с использованием навмеша или геометрии.

Tiling (Тайлинг)

Tiling - повторение текстур, объектов, или алгоритмов для уменьшения затрат памяти или процессора, когда результаты работы одного блока используется на входе другого.

Burndown (Cжечь таску)

Burn Down Task - отправить таску в беклог или закрыть без фикса или под разными причинами. Аналог W'nt fix!

Code Monkey (Обезьянка, Манкер)

Code Monkey - шутливое, молодой или неопытный разработчик, который не уделяет достаточно внимания коду и не думает о принимаемых решениях в контексте всего проекта. На ревью изменений от таких коллег, приходится тратить больше времени, чем на его написание.

Event Listener (Ведро, Листенер)

Event Listener - системный паттерн для асинхронной обработки сообщений и событий. Ведро, потому что туда все сыпется без разбору.

Hot Reload, RTC (речка, ручка, сделать ручкой)

Hot Reload - программный паттерн для работы с конфигами, объектами и состояниями, когда изменение кода или настроек не приводит к перезапуску игры или уровня, что существенно сокращает время итерации, позволяя создавать игру, прямо во время игры

RTC (Runtime Config) - конфиг или объект, который поддерживает работу в hot reload.

Magic Number (Магия, Меджик)

Magic Number - сырые числа в коде алгоритмов, которые существуют без коментариев и не могут быть быстро поняты анализом алгоритмы.

Memory Leak (Мемлик, лик)

Memory Leak - ситуация в коде, которая приводит к потере информации о выделенных блоках памяти в объектах.

Nerf (Нерф, нерфить)

Nerf - понижать эффективность параметров, которые вызывают дисбаланс в алгоритме.

Ragdoll Physics (Рэгдол, кукла)

Ragdoll Physics - процедурная анимация объектов, на основе данных из физического движка. Часто используется в качестве замены анимациях смерти. С увеличением мощности компьютеров и совершенствования алгоритмов появилась возможность выполнять ограниченное физическое моделирование в реальном времени, что сделало анимации смерти более реалистичной.

Кукла - объект, отправленный в регдол симуляцию.

Rubberbanding (Резинка)

Rubberbanding - симуляция объектов, которая позволяет их держать в некоторой области, не отпуская далек от игрока, независимо от геометрии и настроек уровня.

Baking, Cooking (Запечь, печка)

Baking - процесс создания объектов для билда из исходных данных, например в модель добавляются части (руки, ноги, головы), которые в обычном виде хранятся в разных файлов. В запеченом виде это все хранится обычно в одном файле, для снижения затрат на загрузку моделей в игру.

Code Smell (Плохо пахнущий код)

Code Smell - субъективные признаки о состоянии кода, которая говорят о более глубоких проблемах, которые не выражаются в виде чисел или метрик.

IK (Ики)

Inverse Kinematics - метод анимации, который вычисляет положения костей, необходимых для размещения конечного эффектора в желаемом положении. Используется для притягивания рук к оружию, ног к поверхностям.

Qtree (Квадрик, Квадтри)

Quadtree — древовидная структура данных, в которой каждый внутренний узел имеет ровно четыре дочерних узла, используемая для разделения двумерного пространства. Используется для быстрой работы с пространством сцены, деления уровня на секции и т.д.

A* (Aстар)

A* - популярный алгоритм поиска пути и обхода графа, используемый для поиска кратчайшего пути от одной точки к другой.

Blackboard (ББ, борда)

Blackboard — общая структура данных в терминах BT, используемая NPC для хранения и доступа к информации об игровом мире.

Boid (Бойды, Войды)

Boid - симуляция группового поведения, часто используемая для моделирования стадного, стайного или стадного поведения.

Flocking (Флок)

Flocking - модель поведения, которая имитирует движение группы cуществ, часто используя такие правила, как разделение, выравнивание и сплоченность. Обычно используется для снижения сложности ИИ, когда существо по факту одно, два или три, но за счет анимаций создается впечатление большой группы.

Influence Map (Карта влияния)

Influence Map - пространственное представление, используемое ИИ для оценки влияния различных факторов в разных областях игрового уровня. Используется для корректирования поведения, без кардинального изменения алгоритма.

Potential Field (Полевик, Тропинка)

Potential Field - метод поиска пути, при котором агенты ИИ находятся под влиянием полей, которые притягивают или отталкивают их из определенных областей.

Cover System (Каверы, Коверы, Коверпас)

Cover System - система поведения ИИ для поиска и использования укрытий во время боевых действий, основанная на заранее заданных точках взаимодействия на уровне, углы зданий, заборы, бочки, ящики и т.д.

Cover Path - путь NPC проложенный между несколькими такими точками.

Fuzzy Logic (Фаззирование)

Fuzzy Logic - шаблон проектирования игровой логики, используемый для принятия решений, которые являются набором состояний, а не фиксированным результатом. Часто используется при проектирования непоследовательных, нелогичных или непредсказуемых НПС.

MDP (Сеть Маркова, Решения Маркова, Фанера)

Markov Decision Process (MDP) - математическая модель, используемая для принятия решений, где частично случайные результаты подмешиваются в дерево поведения, создавая определенную непредсказуемость работы.

Фанера - потому что MDP, совпадает с известной технологией изготовления фанеры.

Посчитать на фанере - использовать MDP для получения результата.

СRAI (Раки, Рак, Край)

Сonditional Reactive AI - метод проектирования игрового ИИ, где делается упор на реагирование на стимулы в окружающей среде заранее заданным поведением.

Используется в основном для ИИ несложных и мелких персонажей, вроде крыс или змей. Характеризуется небольшим расходом памяти и простой логикой работы, но также достаточно просто детектируемыми шаблонами со стороны игрока, но для простых существ простительно.

Сделать крысу раком - задать простое и реактивное поведение для NPC крыса.

Potus (Потус, Пацик)

President of The US - изначально аббревиатура для президента США, в терминах игрового ИИ шутливое название последнего персонажа из группы, выжившего в столкновении с игроком.

Надеюсь вам понравилось, названия не всегда логичны, и имеют историческую привязку к месту и студии откуда пошли. Пишите в комментариях, кто сколько отгадал, ну и свои сокращения - вместе посмеемся!

Теги:
Хабы:
+6
Комментарии4

Публикации