Исследование и разработка метода генерации уровней для игр конкретного жанра (шутер/RPG - first person view) на основе реальных картографических данных
Данный проект посвящен разработке метода автоматической генерации уровней для игр жанра шутер от первого лица (FPS) на основе реальных картографических данных. Основная цель исследования — создание инструмента, который позволяет генерировать игровые уровни, используя реальные данные картографии, такие как OpenStreetMap. Этот подход помогает ускорить процесс создания игровых уровней, делая его более точным и интересным для игрока.
- Анализ существующих методов генерации уровней.
- Выявление основных парадигм дизайна уровней для игр от первого лица.
- Исследование источников картографических данных.
- Преобразование картографических данных в игровые уровни.
- Адаптация картографических данных под сформированные парадигмы.
- Тестирование и оценка сгенерированных уровней.
- Оптимизация процесса генерации уровней.
- Использование реальных картографических данных: Генерация уровней на основе данных OpenStreetMap.
- Интеграция с Unity: Прямой экспорт и настройка уровней в игровом движке Unity.
- Процедурная генерация уровней: Создание уникальных и разнообразных игровых пространств.
- Адаптация под игровые механики FPS: Учет специфических требований жанра для обеспечения лучшего игрового опыта.
- Unity 2022.3 или выше
- Git
- Клонируйте репозиторий:
git clone https://github.com/leaptonisetee/FPSLevelGenerator.git
- Откройте проект в Unity:
- Запустите Unity Hub.
- Выберите "Add" и укажите путь к папке с клонированным репозиторием.
- Откройте сцену
GenerationScene
и в папкеAssets/Scenes
. - Перетащите на основую сцену компоненты
GeometryManager
иLevelManager
- Используйте путь к файлу с данными OSM. Для этого можно воспользоваться одним из файлов в OSMMaps или экспортировать область самостоятельно
- Откройте инспектор компонента GeometryManager. При установке всех параметров, нажмите
Generate and Save Geometry
. Спустя некоторое время на сцене в редакторе сгенерируется геометрия на основе предложенных данных. Также эта геометрия сохраняется в виде префаба в папке GeneratedPrefabs.
- Откройте инспектор компонента LevelManager. При установке всех параметров для паттернов Арена, Снайперская позиция и Узкий проход, воспользуйтесь кнопкой
Generate Level
-
Убедитесь, что различные паттерны применены в геометрии со своими требованиями и паттернами
-
Примените различые паттерны с разными параметрами на других картах.
- Репозиторий на GitHub
- Автор: Илья Сергеевич Уткин
- Ссылка на отчет по Выпускной квалификационной работе
- Руководитель: Карсаков Андрей Сергеевич, кандидат технических наук, Университет ИТМО