Задание для секции игрового моделирования CodeIT2024
Предмет моделирования: развитие города
В рамках конкурса необходимо решить четыре приведённые ниже задачи. На момент старта конкурса всем участникам будет доступен репозиторий с простым примером решения этих задач на движке Unity
В рамках конкурса рекомендуется использовать готовые бесплатные модели для города из коробок и дорог между ними (например, можно взять за основу https://assetstore.unity.com/packages/3d/environments/simplepoly-city-low-poly-assets-58899)
Задачи моделирования:
-
ЗАДАЧА 1: редактор городского планировщика:
- возможность строить и сохранять планировки городов
- инструменты автоматического построения кварталов, дорог, перекрёстков итд.
- определение некоторых домов как поставщиков продуктов для других домов (например, фабрики поставляют продукцию в магазины)
- определение потребностей домов в поставках и предоставляемых домами сервисов (магазин, например, получает поставки продуктов и предоставляет сервис распределения продуктов окружающим жилым домам)
- для каждого дома - индикаторы удовлетворённых потребностей и доступности поставок
- определение возможности поставок из-за черты города
-
ЗАДАЧА 2: визуализатор городского траффика
- способность запустить машину из точки А в точку Б по дорогам (машина построит путь и проедет)
- определение точек, требующих регулярного траффика (заводам и магазинам нужны поставки, в офисы должны ехать люди, с другой стороны дома из которых едут люди, поставка приезжающая в город извне по шоссе итд.) (трафик привязан ко времени - машины должны приезжать в нужное время) (при запуске симуляции требуемые машины создаются и едут по плану) (столкновение машин в этой задаче не требуется, машины проходят сквозь друг друга)
- создание и запуск машин по расписанию, возможность увидеть движение машин по городу во времени
Если вдруг после решения первых двух задач остаётся время, то можно перейти к решению задач повышенной сложности:
-
ЗАДАЧА 3 (повышенная сложность): моделирование города во времени
- у домов есть потребности в поставках и в сервисах
- поставки привозят машины, сервисы оказывают дома друг другу (фабрика может отправлять поставки в магазины, а магазины оказывать сервис жилому району)
- у разных видов домов разные виды и обьёмы потребностей (жилому дому нужен магазин магазину нужны поставки материалов и досаточное кол-во жилых домов фабрике нужны поставки материалов и приезжающие из жилых домов работники)
- если дом не получает сервис или поставки, он ветшает, постепенно теряя функционал (фабрика перестаёт посылать поставки магазины прекращают обслуживание жилые дома становятся заброшенными)
- ветшание дома показывается визуально
- некоторые дома обслуживают дома по периметру (например магазин в районе или пожарная станция)
-
ЗАДАЧА 4 (повышенная сложность): пешеходный траффик и более реалистичный машинный траффик
- машины на перекрёстках пропускают другие машины
- регулируемые и нерегулируемые перекрёстки (на нерегулируемых первым проезжает тот, кто приехал раньше) (на регулируемых настраиваемые светофоры)
- если на перекрёстке стоит ждёт машина, то следующая должна встать за ней
- дороги с параллельными линиями - возможность машин перестраиваться при езде
- перекрёстки дорог с множественными линиями
- пешеходный траффик - пешеходы ходят по улицам
- подземные и надземные пешеходные переходы
- метро
- автобусы
Решение каждой задачи должно быть ясно видно в проекте Unity или в билде. Проект Unity и билды должны быть выгружены в публичный репозиторий, ссылку на который необходимо указать в форме по адресу https://forms.yandex.ru/u/664c62f9d04688df6c2bd309/ . Вы можете продолжать использовать тот репозиторий, в который Вы выгрузили решение отборочного этапа, или можете сделать новый. Имейте в виду, что форма закроется в 17:00 и ссылку надо успеть положить в форму до этого времени!
В репозиторий нужно положить файл readme.md, в котором дать краткий список реализованных задач и тот способ, каким их можно увидеть в действии.
За каждую из задач можно заработать по 25 баллов, их них 15 за выполненное функциональное ядро (например, для первой задачи это наличие потребностей домов и индикаторов удовлетворения этих потребностей,изменяющихся по мере добавление или удаления новых домов), и 10 можно получить за масштабирование контента поверх функционального ядра (количество видов домов, типов машин, видов предоставляемых услуг, типов траффика итд.)