Ранее мы публиковали пост про то, как у нас получилось воссоздать подмосковный город Серпухов в компьютерной игре. Мы пообещали, что большинство обновлений нашей игры, автобусного симулятора Bus Driver Simulator, будет бесплатными. Сегодня мы выпустили очередное глобальное обновление, которое добавило новый город - Кёльн.
Почему именно этот немецкий город?
Дело в том ,что большая часть нашей аудитории не из России. И одна из самых многочисленных стран среди игроков - Германия (все же мы помним, как немцы любят симуляторы?). Конечно, достаточно много и британцев, и поляков, и других европейских народов.
С самого начала мы позиционировали игру как максимально "русскую", про наши автобусы и наш родной город. Но не исключали, что в будущем появится и иностранный контент. Надо ведь чем-то радовать и иностранных наших игроков?
Кёльн - очень красивый город. Автор этого поста однажды был проездом в этом городе и он запомнился обилием зелени и ухоженностью.
Кроме этого, Кёльн ни разу не моделировали для компьютерных игр.
А ещё, в Кёльне проходит крупнейшая европейская игровая выставка GamesCom.
Вот что получилось в итоге, сравнение, как это выглядит в реальности, и как - у нас в игре. Сразу говорим - Кёльнского собора пока нет, до этой улицы не добрались. Предупреждаем, что многие здания на панорамах гугла замазаны (видимо, немцы любят приватность).
Да, по улицам Кёльна у нас ездят и российские автомобили - трафик пока что един.
Вообще, моделирование города - очень сложная задача, особенно для такой маленькой команды, как мы (буквально несколько человек). А на моделирование одного здания уходит минимум 2 полных рабочих дня. Отсюда и некоторая экономия - если здания похожи, то используем уже имеющуюся модель. С Серпуховым мы поступали также, хотя уникальных зданий там больше (впрочем, как и размер карты). Отличие также заключается в том, что там мы использовали фототекстуры. Да, ходили по городу и фотографировали здания со всех сторон, чтобы поместить в игру. С Кёльном это было бы очень затратно, поэтому мы ориентировались на карты гугл, панорамы и 3D вид.
Нам зачастую пишут - а почему вы не продлите имеющуюся карту, допустим, до Москвы? (от Серпухова до Москвы 75 километров). Почему вы не добавите в игру мой Мухосранск? Очевидно, люди не понимают сложности моделирования и настройки карты для игры. Да и мы сами, принимаясь за дело, недооценивали масштаб работ.
Во-первых, как уже было сказано, можно представить, сколько времени нужно на создание карты, если только одно здание требует как минимум двух рабочих дней. А сама дорога? А мелкие объекты? Ещё больше. Моделирование Серпухова началось в конце 2016 года и было закончено в августе 2018, продолжаясь почти беспрерывно.
Во-вторых, сам левел-дизайн тоже занимает солидное количество времени. Ведь каждый дом нужно поставить на его место в соответствии с картами. Настроить растительность, ландшафт - тоже не минутное дело. Хотя, опять же, мы на многом экономим - упрощаем, где это считаем уместным.
В третьих, настройки карты под игру. Здесь и ручная расстановка вейпойнтов для трафика (теперь ещё и для пешеходов - они будут добавлены скоро), остановок и мини-карты.
Конечно, по хорошему, всё надо автоматизировать - чтобы и дороги рисовались сплайнами (есть хороший плагин EasyRoad, но наши потребности он всё равно удовлетворить не способен - у нас каждый перекресток уникален), и трафик ставился на дороги, а в идеале, и чтобы игроки смогли свои карты делать.
Вот только сделать такой редактор - задача, пожалуй, чуть ли не сложнее создания всей остальной игры и, пока что, нам не по силам.
Коммьюнити у симуляторов достаточно активное в плане создания модификаций и мы даже предложили такой вариант - вы можете создавать свой город с использованием инструментария движка Unity (мы даже обещали работу на денежной основе, если будут показаны хорошие результаты). Но, конечно, это гораздо, гораздо сложнее, чем создание карты в редакторе карт для, например, Euro Truck Simulator. Были люди, которые начинали что-то делать, даже показывали скриншоты. Но, в итоге, запал быстро сходил на нет.
А, кроме этого, многие мододелы не особо заботятся, например, о создании правильной развертки. В итоге получается по 30 текстур и материалов на одну маленькую модель. Или по 30 тысяч полигонов на домик. И без ЛОДов.
Есть ещё одна достаточно серьезная проблема. Это касается не только карт, но и игры в целом. Чем больше - тем сложнее. Сложность возрастает в разы с увеличением размеров. Одна из проблем Unity и почти всех игровых движков в том, что на некотором расстоянии (обычно свыше 5км) от начала координат начинаются проблемы с точностью вычислений позиционирования объектов. Для игрока это выглядит, как-будто объект трясётся, или один проходит через текстуру другого. Проблема решается периодическим сдвигом карты к началу координат.
Помимо этого, становится сложнее оптимизировать возросшее количество ресурсов - начиная от общей медлительностью работы с картой в редакторе до забивания оперативной памяти при не динамической загрузке объектов на карте.
В общем, сложностей хватает. Постоянно в выборе - куда потратить драгоценное время. Может, на детализацию имеющегося? Или добавить ещё один квартал? А ведь кто-нибудь обязательно будет недоволен - "а я там был и там вот разметка не соответствует действительности".
Если подобные посты интересны, в будущем опубликуем ещё заметки и мысли по поводу разработки. Возможно, и вы в комментариях подскажете что-нибудь, что окажется важным для нас.
Спасибо за внимание!