Бакалавриат
2024/2025



Разработка интеллектуальных агентов компьютерных игр
Статус:
Курс по выбору (Программная инженерия)
Направление:
09.03.04. Программная инженерия
Кто читает:
Департамент программной инженерии
Где читается:
Факультет компьютерных наук
Когда читается:
3-й курс, 3, 4 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для всех кампусов НИУ ВШЭ
Преподаватели:
Веселко Никита Игоревич
Язык:
русский
Кредиты:
5
Программа дисциплины
Аннотация
Данный курс предназначен для студентов, которые планируют в дальнейшем работать по направлению создания интеллектуальных агентов. В курсе приоритет ставится на компьютерные игры, однако знания, полученные на курсе, могут быть использованы и в других сферах.В рамках курса студенты познакомятся с основами интеллектуальных агентов, подробней ознакомятся со сферой их применения и изучат основные подходы к их разработке. Подробно будут рассмотренны подходы к решению задачи реализации агентов при помощи обучения с подкреплением и различные алгоритмы реализации этих решений.Также на курсе будут рассматриваться реализация подобных алгоритмов с использованием современных библиотек глубинного обучения на Python, процессы настройки пайплайнов обучения и использования этих моделей, а также среды обучения и варианты их создания, в том числе при помощи движка Unreal Engine 5.
Цель освоения дисциплины
- Изучить основные подходы и пайплайны для разработки интеллектуальных агентов и использования моделей и сред обучения для их создания
Планируемые результаты обучения
- 1) Основные подходы к backend-разработке для многопользовательских игр 2) Написание простых приложений для обслуживания многопользовательских игр 3) Написание асинхронных приложений для обслуживания многопользовательских игр. 4) Развертывание виртуального окружения с помощью технологии Docker, docker-compose. 5) Знание методов компенсации лагов.
Содержание учебной дисциплины
- сети. Модель OSI, TCP/IP, IP-адреса, порты. RFC 1122. WireShark. синхронный Unix сервер. IPC-сокет. RFC 681
- синхронный UDP сервер на python. Библиотека socket. RFC 768.
- синхронный TCP сервер и TLS сервер. Библиотека socket, tls. RFC 793
- синхронный ftp сервер и http сервер. Ftps сервер и https сервер. Библиотека ftplib, pyftpdlib, requests, http, ssl, flask. Postman, Curl.
- асинхронный python. GIL, event loop. Библиотека asyncio. Асинхронный http на asyncio. Https сервер, ssl-context
- асинхронный WebSockets. Библиотека websockets.
- Multiplayer Networking. Tickrate, Компенсация лага. Prediction и линейная интерполяция движения. Серверная коррекция движения. Ping
- Docker, docker-compose. Образ, контейнер, виртуализация.
Список литературы
Рекомендуемая основная литература
- Design games for architecture : creating digiyal design tools with Unity, Westre, A., 2014
Рекомендуемая дополнительная литература
- Программирование в Unreal Engine 5 для начинающего игродела : основы визуального языка Blueprint, Максименкова, О. В., 2023