Город Кёльн для автобусного симулятора. Сравнение с реальностью и немного о сложностях моделирования городов

Ранее мы публиковали пост про то, как у нас получилось воссоздать подмосковный город Серпухов в компьютерной игре. Мы пообещали, что большинство обновлений нашей игры, автобусного симулятора Bus Driver Simulator, будет бесплатными. Сегодня мы выпустили очередное глобальное обновление, которое добавило новый город - Кёльн.

Почему именно этот немецкий город?

Дело в том ,что большая часть нашей аудитории не из России. И одна из самых многочисленных стран среди игроков - Германия (все же мы помним, как немцы любят симуляторы?). Конечно, достаточно много и британцев, и поляков, и других европейских народов.

С самого начала мы позиционировали игру как максимально "русскую", про наши автобусы и наш родной город. Но не исключали, что в будущем появится и иностранный контент. Надо ведь чем-то радовать и иностранных наших игроков?

Кёльн - очень красивый город. Автор этого поста однажды был проездом в этом городе и он запомнился обилием зелени и ухоженностью.

Кроме этого, Кёльн ни разу не моделировали для компьютерных игр.

А ещё, в Кёльне проходит крупнейшая европейская игровая выставка GamesCom.


Вот что получилось в итоге, сравнение, как это выглядит в реальности, и как - у нас в игре. Сразу говорим - Кёльнского собора пока нет, до этой улицы не добрались. Предупреждаем, что многие здания на панорамах гугла замазаны (видимо, немцы любят приватность).

Город Кёльн для автобусного симулятора. Сравнение с реальностью и немного о сложностях моделирования городов Кельн, Симулятор, Автобус, Водитель, Моделизм, 3D, Gamedev, Длиннопост
Город Кёльн для автобусного симулятора. Сравнение с реальностью и немного о сложностях моделирования городов Кельн, Симулятор, Автобус, Водитель, Моделизм, 3D, Gamedev, Длиннопост

Да, по улицам Кёльна у нас ездят и российские автомобили - трафик пока что един.

Вообще, моделирование города - очень сложная задача, особенно для такой маленькой команды, как мы (буквально несколько человек). А на моделирование одного здания уходит минимум 2 полных рабочих дня. Отсюда и некоторая экономия - если здания похожи, то используем уже имеющуюся модель. С Серпуховым мы поступали также, хотя уникальных зданий там больше (впрочем, как и размер карты). Отличие также заключается в том, что там мы использовали фототекстуры. Да, ходили по городу и фотографировали здания со всех сторон, чтобы поместить в игру. С Кёльном это было бы очень затратно, поэтому мы ориентировались на карты гугл, панорамы и 3D вид.

Город Кёльн для автобусного симулятора. Сравнение с реальностью и немного о сложностях моделирования городов Кельн, Симулятор, Автобус, Водитель, Моделизм, 3D, Gamedev, Длиннопост
Город Кёльн для автобусного симулятора. Сравнение с реальностью и немного о сложностях моделирования городов Кельн, Симулятор, Автобус, Водитель, Моделизм, 3D, Gamedev, Длиннопост
Город Кёльн для автобусного симулятора. Сравнение с реальностью и немного о сложностях моделирования городов Кельн, Симулятор, Автобус, Водитель, Моделизм, 3D, Gamedev, Длиннопост
Город Кёльн для автобусного симулятора. Сравнение с реальностью и немного о сложностях моделирования городов Кельн, Симулятор, Автобус, Водитель, Моделизм, 3D, Gamedev, Длиннопост
Город Кёльн для автобусного симулятора. Сравнение с реальностью и немного о сложностях моделирования городов Кельн, Симулятор, Автобус, Водитель, Моделизм, 3D, Gamedev, Длиннопост
Город Кёльн для автобусного симулятора. Сравнение с реальностью и немного о сложностях моделирования городов Кельн, Симулятор, Автобус, Водитель, Моделизм, 3D, Gamedev, Длиннопост

Нам зачастую пишут - а почему вы не продлите имеющуюся карту, допустим, до Москвы? (от Серпухова до Москвы 75 километров). Почему вы не добавите в игру мой Мухосранск? Очевидно, люди не понимают сложности моделирования и настройки карты для игры. Да и мы сами, принимаясь за дело, недооценивали масштаб работ.

Во-первых, как уже было сказано, можно представить, сколько времени нужно на создание карты, если только одно здание требует как минимум двух рабочих дней. А сама дорога? А мелкие объекты? Ещё больше. Моделирование Серпухова началось в конце 2016 года и было закончено в августе 2018, продолжаясь почти беспрерывно.

Во-вторых, сам левел-дизайн тоже занимает солидное количество времени. Ведь каждый дом нужно поставить на его место в соответствии с картами. Настроить растительность, ландшафт - тоже не минутное дело. Хотя, опять же, мы на многом экономим - упрощаем, где это считаем уместным.

Город Кёльн для автобусного симулятора. Сравнение с реальностью и немного о сложностях моделирования городов Кельн, Симулятор, Автобус, Водитель, Моделизм, 3D, Gamedev, Длиннопост
Город Кёльн для автобусного симулятора. Сравнение с реальностью и немного о сложностях моделирования городов Кельн, Симулятор, Автобус, Водитель, Моделизм, 3D, Gamedev, Длиннопост

В третьих, настройки карты под игру. Здесь и ручная расстановка вейпойнтов для трафика (теперь ещё и для пешеходов - они будут добавлены скоро), остановок и мини-карты.

Город Кёльн для автобусного симулятора. Сравнение с реальностью и немного о сложностях моделирования городов Кельн, Симулятор, Автобус, Водитель, Моделизм, 3D, Gamedev, Длиннопост
Город Кёльн для автобусного симулятора. Сравнение с реальностью и немного о сложностях моделирования городов Кельн, Симулятор, Автобус, Водитель, Моделизм, 3D, Gamedev, Длиннопост

Конечно, по хорошему, всё надо автоматизировать - чтобы и дороги рисовались сплайнами (есть хороший плагин EasyRoad, но наши потребности он всё равно удовлетворить не способен - у нас каждый перекресток уникален), и трафик ставился на дороги, а в идеале, и чтобы игроки смогли свои карты делать.

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

Коммьюнити у симуляторов достаточно активное в плане создания модификаций и мы даже предложили такой вариант - вы можете создавать свой город с использованием инструментария движка Unity (мы даже обещали работу на денежной основе, если будут показаны хорошие результаты). Но, конечно, это гораздо, гораздо сложнее, чем создание карты в редакторе карт для, например, Euro Truck Simulator. Были люди, которые начинали что-то делать, даже показывали скриншоты. Но, в итоге, запал быстро сходил на нет.

А, кроме этого, многие мододелы не особо заботятся, например, о создании правильной развертки. В итоге получается по 30 текстур и материалов на одну маленькую модель. Или по 30 тысяч полигонов на домик. И без ЛОДов. 

Город Кёльн для автобусного симулятора. Сравнение с реальностью и немного о сложностях моделирования городов Кельн, Симулятор, Автобус, Водитель, Моделизм, 3D, Gamedev, Длиннопост
Город Кёльн для автобусного симулятора. Сравнение с реальностью и немного о сложностях моделирования городов Кельн, Симулятор, Автобус, Водитель, Моделизм, 3D, Gamedev, Длиннопост

Есть ещё одна достаточно серьезная проблема. Это касается не только карт, но и игры в целом. Чем больше - тем сложнее. Сложность возрастает в разы с увеличением размеров. Одна из проблем Unity и почти всех игровых движков в том, что на некотором расстоянии (обычно свыше 5км) от начала координат начинаются проблемы с точностью вычислений позиционирования объектов. Для игрока это выглядит, как-будто объект трясётся, или один проходит через текстуру другого. Проблема решается периодическим сдвигом карты к началу координат.

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

Город Кёльн для автобусного симулятора. Сравнение с реальностью и немного о сложностях моделирования городов Кельн, Симулятор, Автобус, Водитель, Моделизм, 3D, Gamedev, Длиннопост

В общем, сложностей хватает. Постоянно в выборе - куда потратить драгоценное время. Может, на детализацию имеющегося? Или добавить ещё один квартал? А ведь кто-нибудь обязательно будет недоволен - "а я там был и там вот разметка не соответствует действительности".


Если подобные посты интересны, в будущем опубликуем ещё заметки и мысли по поводу разработки. Возможно, и вы в комментариях подскажете что-нибудь, что окажется важным для нас.

Спасибо за внимание!

Лига Разработчиков Видеоигр

6.5K пост22K подписчика

Добавить пост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

Вы смотрите срез комментариев. Показать все
2
Автор поста оценил этот комментарий
А можно ссылочку?
раскрыть ветку (9)
4
Автор поста оценил этот комментарий

Я опасаюсь, что могут принять за рекламу, поиск в Steam по названию Bus Driver Simulator. В vk поиск по группам по тому же названию.

раскрыть ветку (8)
Автор поста оценил этот комментарий
Автор, можешь подробнее о сдвиге к началу координат? Кажется у меня такая проблема, и где только не спрашивал решения не было, но читая пост обнадеживаю себя. имеется в виду операция остатка от деления, да? т.е. Location = OldLocation % 5км?
раскрыть ветку (6)
4
Автор поста оценил этот комментарий

Погугли Floating Origin - так называется это решение

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Да, спасибо, я уже починил! И очень рад, так что мой следующий тост будет за вас!)

Автор поста оценил этот комментарий

Спасибо, кажется я разобрался. Для истории: нужно сдвигать систему координат так, чтобы игрок был всегда поближе к нулю, то есть для простоты "Новый ноль" это текущее положение игрока (камеры)

раскрыть ветку (3)
Автор поста оценил этот комментарий

Не совсем, насколько я понимаю, сдвигается не система координат, а все объекты на новые координаты с таким смещением, чтобы обеспечить игроку наиболее близкое расстояние до нуля.

раскрыть ветку (2)
Автор поста оценил этот комментарий
> сдвигается не система координат, а все объекты на новые координаты
Это как бы одно и то же)
Сдвиг системы координат - это то же самое, что пересчитать координаты всех объектов в уже новой системе.
Автор поста оценил этот комментарий
Пэрент холдер дёргают, когда игрок не двигается.
Автор поста оценил этот комментарий

Да, не балуют вас положительными обзорами :(

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку