Загрузка страницы

Сделал Ботов на НЕЙРОСЕТЯХ и Заставил их Сражаться

#Vectozavr #Gamedev #Programming
«Data Science» в SkillFactory — рассчитайте, сколько бы вы зарабатывали, как Data-scientist: https://clc.am/u-QhgA
50% скидки на обучение по промокоду Vectozavr (до 30.09.2020)

tg: @vectozavr
inst: https://www.instagram.com/vectozavr
vk: https://vk.com/vectozavr
patreon: https://www.patreon.com/vectozavr
Игра: https://github.com/vectozavr/pseudo3DEngine

Моя статья про нейросети: http://ilinblog.ru/article.php?id_article=40

Тайм коды:
Сегодня я расскажу, о том, как я добавил систему бонусов в свою 3D игру, сделал большую и интересную карту для сражений и реализовал ботов, которых заставил сражаться друг с другом. Приятного просмотра!

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

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

Первым делом я решил сделать новую, большую и просторную карту.
Карту можно делать в любом 3D редакторе, а потом экспортировать графику как .obj файл. Так обычно и делают, когда пишут игры. Я буду использовать Cinema4D. Нет никакой разницы, какой именно редактор трёхмерной графики вы будите использовать, ведь формат .obj файлов унифицирован.

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

По ходу того, как я писал движок, со мной связался подписчик, который загорелся желанием запустить мою игру на linux’e и эльбрусе. Дмитрий смог запустить движок, но проблема была в том, что игра сильно тормозила. Так как вся математика производится на процессоре, появилась идея воспользоваться мульти поточностью и распараллелить вычисления равномерно на все ядра, ведь практически все современные процессоры имеют более одного ядра.

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

В сети я нашел несколько статей, посвященных обучению нейросетей специально для этих целей. Но эти статьи требовали достаточно высокого уровня владения материалом. Так же нужно понимать, что настоящий 3d шутер отличается от моей игры хотя бы тем, что у меня все происходит в 2D, а значит и процесс обучения будет гораздо проще.

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

После 2х тысяч поколений счет вышел на постоянную величину и дальше боты развиваться не хотели. После 6-ти тысячного поколения был небольшой рост до 9-ти тысячного поколения, но дальше, сколько я не обучал сеть, роста больше не было.

Видео Сделал Ботов на НЕЙРОСЕТЯХ и Заставил их Сражаться канала Vectozavr
Показать
Комментарии отсутствуют
Введите заголовок:

Введите адрес ссылки:

Введите адрес видео с YouTube:

Зарегистрируйтесь или войдите с
Информация о видео
27 августа 2020 г. 21:15:34
00:33:23
Другие видео канала
DIY Компьютер с Нуля за 6 Месяцев!DIY Компьютер с Нуля за 6 Месяцев!Секрет Сложнейших Фракталов... Наглядно и в Анимации!Секрет Сложнейших Фракталов... Наглядно и в Анимации!Я создал ИИ, чтобы РАЗРУШИТЬ Tetris [Перевод Code Bullet]Я создал ИИ, чтобы РАЗРУШИТЬ Tetris [Перевод Code Bullet]Игра в четырех измерениях: как это возможно?Игра в четырех измерениях: как это возможно?Вся История Minecraft до Релиза (Сборник)Вся История Minecraft до Релиза (Сборник)Искусственный Интеллект учится ВОДИТЬ [Перевод Code Bullet]Искусственный Интеллект учится ВОДИТЬ [Перевод Code Bullet]Flappy Bird на Вейпе!? 🤪Flappy Bird на Вейпе!? 🤪НА ЧТО СПОСОБЕН ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ ОТ OPENAI? [KOSMO STORY]НА ЧТО СПОСОБЕН ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ ОТ OPENAI? [KOSMO STORY]УНИЧТОЖИЛ Piano Tiles c АВТОКЛИКЕРОМ [Перевод Code Bullet]УНИЧТОЖИЛ Piano Tiles c АВТОКЛИКЕРОМ [Перевод Code Bullet]Лютые приколы в играх | WDF 209 | ИМПОСТЕР!Лютые приколы в играх | WDF 209 | ИМПОСТЕР!Искусственный интелект учится играть в змейку. Перевод Code Bullet.Искусственный интелект учится играть в змейку. Перевод Code Bullet.Искусственный Интеллект учится ХОДИТЬ [Перевод Code Bullet]Искусственный Интеллект учится ХОДИТЬ [Перевод Code Bullet]Делаю эволюцию ИИ в UnityДелаю эволюцию ИИ в UnityСимуляция агрессивного поведения  [Озвучка Primer]Симуляция агрессивного поведения [Озвучка Primer]"Пещеры и Скалы" Обновление 1.17 и Minecraft Live 2020 | Майнкрафт Открытия"Пещеры и Скалы" Обновление 1.17 и Minecraft Live 2020 | Майнкрафт ОткрытияНаписал Онлайн Шутер на C++ за НеделюНаписал Онлайн Шутер на C++ за НеделюСпорим, вы Этого Не Знали? :)Спорим, вы Этого Не Знали? :)Самый Мощный Компьютер!Самый Мощный Компьютер!История серии Mafia, часть 1История серии Mafia, часть 1I Created a PERFECT SNAKE A.I.I Created a PERFECT SNAKE A.I.
Яндекс.Метрика