51
Програмування ігрового ШІ

GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Embed Size (px)

Citation preview

Page 1: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Програмування

ігрового ШІ

Page 2: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Про що лекція?

Page 3: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

1. Не про код

2. Не про математику

3. Не про best practice

Page 4: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Що таке ШІ?

Page 5: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

1. Ігровий ШІ (ІШІ) != ШІ

2. Простіше == Краще

3. Реалізм vs Розвага

Page 6: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"
Page 7: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"
Page 8: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"
Page 9: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Пересування

Page 10: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"
Page 11: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

На що звернути увагу?

1. Інерція ніколи не зникає

2. Стрибати теж потрібно

3. Інерція не зникає навіть після стрибків

4. Розумні боти рухаються командою

Page 12: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Інерція

Page 13: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"
Page 14: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Стрибки

Page 15: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"
Page 16: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"
Page 17: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"
Page 18: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Командний рух

Page 19: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"
Page 20: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Пошук шляху

Page 21: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"
Page 22: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"
Page 23: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"
Page 24: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"
Page 25: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Алгоритми пошуку шляху

“Перешкода? Повернутись”

Пошук в ширину

Пошук в глибину

Алгоритм Дейкстри

Хвильовий алгоритм

Алгоритм А*

Алгоритм D*

Page 26: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Пошук в ширину

Page 27: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Алгоритм Дейкстри

Page 28: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Хвильовий алгоритм

Page 29: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Алгоритм A*

Page 30: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Прийняття рішень

Page 31: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"
Page 32: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"
Page 33: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Дерева вибору

Скінченний автомат

Система на основі правил

Нечітка логіка

Page 34: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Дерева вибору

Page 35: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Скінченний автомат

Page 36: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Система на основі правил

Page 37: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Нечітка логіка

Page 38: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Тактика та стратегія

Page 39: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

На що звернути увагу?

1. Командир в групі - ботам легше

2. Вибір укриттів і т.д. потрібно робити на основі к-сті

ботів та їх станів

3. Найлегше прив’язувати розташування бота до

розташування сусіда

4. Розподіл обов’язків збільшує реалізм та зменшує

навантаження на кожного

Page 40: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Без командира в групі

Page 41: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

З командиром в групі

Page 42: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Вибір укриттів

Page 43: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Прив’язка розташування

Page 44: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"
Page 45: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Розподіл обов’язків

Page 46: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Самонавчання

Page 47: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

1. Створення дерев вибору

2. Навчання з підкріпленням

3. Нейронні мережі

Page 48: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"
Page 49: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"
Page 50: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"
Page 51: GameDev 2017 - Андрій Яворський "Програмування ігрового AI"

Корисні матеріали

Візуалізація алгоритмів пошуку шляху

Машинне навчання

Artificial Intelligence for Games 2nd Edition (by Ian

Millington)