Hitzu

Пользователь
  • Публикации

    375
  • Зарегистрирован

  • Посещение

Все публикации пользователя Hitzu

  1. Делитесь своими находками и просто красивыми скриншотами. Вот моя гордость. Заменил стандартный клевер на гибридную cloverstack. Места занимает как целый район, но избавило от проблем с переплетением потоков.
  2. Оригинальная статья с gamasutra.com Перевёл hitzu Кто: программисты Антти Лето, Дамьен Морелло, ведущий дизайнер Каролиина Корппоо Мы работаем в Colossal Order, финской независимой студии, и специализируемся на играх-симуляторах для ПК. С момента основания в 2009 и мы выпустили три игры: Cities in Motion, игра-симулятор общественного транспорта, CIties in Motion 2, её сиквел, и Cities: Skylines, олдскульный градосимулятор. В нашей команде всего 13 человек, и мы все очень любим тортики и синих пичуг. Серия игр Cities in Motion была обращена к довольно небольшой, но очень преданной аудитории, в то время как Skylines обратила на себя взоры намного более обширной части игроков, не все из которых знакомы с симуляторами. Мы гордимся тем, что поклонникам градосимуляторов игра понравилась и рады тому, как моддеры быстро принялись улучшать игру. Нашей целью является поощрять моддинг и стереть границу между игрой и творчеством так, чтобы люди почувствовали игру своей. Что: Транспортная система в Cities: Skylines Регулирование транспорта – одна из главных целей в игре, возможно наиважнейшая. Есть несколько разных типов дорог, и каждый важен по-своему. Инструмент дорог достаточно гибок, чтобы игроки могли создать сложные дорожные развязки и таким образом регулировать транспортный поток, но и довольно простой, чтобы обычная прокладка дорог не превратилась в тяжкую повинность. Существует предел того, сколько жителей и машин может быть смоделировано на улицах одновременно. Если лимит не пройден, жители могут решить попутешествовать. У горожан есть несколько мест, которые они хотят посетить. Когда эти заведения заполнятся, то спрос на новые такие заведения возрастёт. Когда житель выходит на улицу, то он выбирает самый быстрый способ добраться до места назначения. Они принимают в расчёт имеют ли они личный автомобиль, есть ли заторы на дорогах и можно ли воспользоваться общественным транспортом. основываясь на этих факторах, они решают идти ли им пешком, поехать на автобусе или на машине. Пешеходы могут пользоваться отдельными пешеходными дорожками, но не могут ходить по магистральным дорогам. Когда автомобили спланируют свой маршрут, то они “прилипнут” к нему. Они не будут пересчитывать его посередине дороги, ели только на их пути ничего не изменилось. Если по какой-то причине они не могут найти дорогу в выбранное место, то телепортируются в место отбытия. Машины принадлежат жителям или зданиям, так что они всегда должны куда-либо вернуться. Некоторые приезжают из-за пределов карты и возвращаются туда, если потеряются по пути. Транспорт загодя выбирает ту полосу для движения, которая нужна для поворота в ту сторону, куда ему нужно. Почему? С самого начала нашей целью было создать систему с миллионом жителей. Это не жёсткое ограничение, мы прикидывали такое число горожан для полностью застроенного города и балансировали игру, руководствуясь этой цифрой. Но нам сразу было понятно, что если мы хотим сохранить приемлемые системные требования, то не все из миллиона смогут одновременно путешествовать по улицам. Это значит, что нам нужно было создать такую структуру, при которой игрок не понесёт наказание, если рабочие физически не отправляются на работу. Мы много раз переделывали систему транспорта, и это было трудным испытанием для нас, ведь каждый игрок должен будет взаимодействовать с ней. Например во время испытаний мы пробовали делать так, чтобы автомобили чаще меняли полосы во время движения, но это привело только к сущему хаосу на дорогах, ведь машины пытались перестроиться на занятую полосу и тем самым блокировали сразу обе, перекрывая движение вовсе. Телепортация же была внедрена как мера безопасности. Тестирование показало, что менее опытные игроки испытывали мощные проблемы, когда вся транспортная сеть превращалась в одну сплошную пробку, и даже с помощью транспортной карты невозможно было обнаружить причину, когда все дороги с ожидающими на них машинами горели красным. Это значит, что игроки не могут выявить проблемное место, если у них нет опыта или им вовсе не очень понятна эта тема с трафиком. В качестве решения и была придумана система с телепортацией в изначальное место, если жители попадают в затруднительное положение. Проблемное место никуда не девается, а поток машин стоит или ползёт как улитка, но пробка не растёт неконтролируемо. Поэтому информационный слой работает как надо, рисуя красным этот участок, чтобы игрок обратил на него внимание. Как Без дорог не будет и транспорта. Поэтому давайте взглянем как они устроены. Когда игрок строит дорогу, он в действительности расставляет узлы. Два узла составляют один сегмент, а вся дорога сделана из одного или нескольких сегментов. У сегментов есть предельный размер, поэтому длинная дорога будет разбита на несколько сегментов. Одна из причин состоит в том, что дороги должны следовать ландшафту, поэтому даже прямая дорога потребует несколько сегментов чтобы не проваливаться под холм. Другая причина в том, что небольшие сегменты проще оптимизировать для расчёта столкновений, рендеринга и вообще. Узлы (известные также как контрольные точки) содержат позиции начала и конца сегмента, а сам сегмент содержит направление начала и конца. Затем эта структура конвертируется в кривую Безье с помощью создания дополнительных контрольных точек из заданный позиций и напрвлений. Геометрия дороги затем создаётся при помощи стандартного меша, тесселяции в совокупности с вершинным шейдером, который преобразует меш согласно данным сплайна. Это эффективно, так как данные вершин для дорог могут быть общими для дорог одного типа. UV карты также рассчитываются в вершинном шейдере на основе длины сплайна. Перекрёстки создаются похожим образом. Их сегменты содержат данные о соединениях с соседними сегментами, а также тип дорог. Зная тип дороги, каждому сегменту теперь известно о доступных ему полосах, что и определяет их количество и смещение от центра. Учитывая всё сказанное выше, машины и грузовики знают где им можно ездить по дороге. Вместо того, чтобы задействовать наивную интерполяцию вдоль сплайна, мы сделали весь транспорт настоящими физическими объектами со своей скоростью, которые стараются двигаться через множество точек привязки, следуя кривой. Это позволяет предсказать поведение на крутых поворотах и перекрёстках, перед которыми надо замедляться или затормозить в зависимости от обстоятельств. Максимальная скорость задаётся типом дороги по которой движется транспорт. Когда житель хочет выбрать новое место назначения, его путь будет просчитан от его текущей позиции, принимая в расчёт ходьбу пешком, езду на машине и на общественном транспорте… который, кстати, сделан настолько круто, что жители могут менять транспорт, переходя пешком от одной автобусной остановки до другой. Во время расчёта поиска пути, создаётся счёт того, сколько сегментов/полос надо пройти, учитывая состояние пробок, скоростной предел и направление. Трафик симулируется по правилу кто первый, тот и едет. Используя точки привязки, упоминаемые ранее, транспорт создаёт на своём пути так называемые “берегись-сегменты” – когда два разных таких сегмента пересекаются, мы знаем, что здесь будет столкновение, так что данные о скорости и дистанции до этого сегмента используются для того чтоб определить кто поедет, а кто притормозит чтобы пропустить. Светофоры – это исключение из правила. Они просто предотвращают появление точек привязки на перекрёстке, заставляя транспорт сбросить скорость и затормозить до тех пор, пока не загорится зелёный. Конечно есть ещё другие факторы, влияющие на поведение транспорта, но в основном, всё крутится вокруг этих простых правил. С точки зрения производительности невозможно сэмулировать всё это для каждой машины каждый кадр. Секрет хорошей производительности в том, чтобы распределить вычисления по времени насколько это возможно. В нашем случае движение автомобилей просчитывается примерно 4 раза в секунду, а рендеринг берёт из этого два кадра, чтобы получить гладкое перемещение, вращение и скорость. Более сложные решение вычисляются ещё реже, но благодаря разглаживанию это выглядит так, будто симуляция постоянно обновляется. Результат Некоторые игроки считают игру слишком лёгкой из-за наличия телепортации. Это действительно делает игру проще без перекрывающего дорогу самому себе транспорта, но это действительно необходимо ради умеренной кривой обучения. Если бы не было телепортации, то время реакции для того, чтобы заметить и решить проблему до тех пор, пока она не усилится лавинообразно, становится слишком маленьким. Есть мод, который убирает телепортацию из игры, так что игроки, получающие большее удовольствие от такого вызова, не будут скучать. В конце концов, количество людей, причитающих о проблемах трафика, относительно невелико, поэтому мы считаем, что выбрали правильное решение. Несмотря на это, трафик является самой сложной частью игры для большинства игроков. Выбор полосы движения водителями заранее может выглядеть странно. Машины собираются в очередь всего на одной полосе, а все остальные пустуют и транспорт на них мчится мимо. Строго говоря, переполненная полоса говорит игроку о том, что где-то впереди находится пересечение, которое не даёт транспорту двигаться непрерывно, но глядя на длинную вереницу машин, некоторые игроки принимают это за баг. Главная загвоздка сейчас – научить игроков как работать с транспортом, мы смотрим на обсуждения на форумах и видим, что эта тема игрокам интересна. Ухватив основы, множество игроков находит занимательным и получает множество удовольствия, оптимизируя транспортные потоки и управляя ими.
  3. @DANZ, я знаю, что во время пожара все коммунальные машины, в том числе рейсовые автобусы, объезжают этот квартал. По крайней мере на 2-полосных улицах точно.
  4. Другим модом. Дефолтно доступно только 9 из 25.
  5. @VitalyRU, с этим модом точно комп расплавится http://steamcommunity.com/sharedfiles/filedetails/?id=422554572
  6. Ага. Вычислений только будет раз в 20-100 больше и те, кто строит города с большим количеством перекрёстков, будут страдать от плохой производительности. Спасибо, но нет.
  7. Насколько я понял из объяснений разрабов, они именно так и поступают.
  8. @A.N.deAd, мой основной город пал смертью храбрых из-за несовместимости модов, которые испортили мне сейв. Сейчас я делаю другой город, который ещё слишком мал чтобы что-либо там показывать. Вот старый скрин одного из первых моих городов. Районы снизу и справа - экспериментальные, чтобы посмотреть насколько плоха такая раскладка улиц. Как оказалось, она действительно очень плоха из-за неудобного для автобусов расположения улиц, плюс тот посёлок снизу генерировал неожиданно много траффика в центр города, несмотря на прямую ветку метро, три линии автобуса и линию поезда. Весь бульвар постоянно стоял. Потом я перестроил весь участок у поперечной магистрали, подняв её над землёй и пустив под ней несколько параллельных дорог, соединяющих с центром. В районе Sunset district на самом деле много перекрёстков, но их заслоняют высокие дома и деревья. В целом город был первой попыткой и оказался не очень хорош, плюс я хотел строить дамбы, которые на этой карте были бесполезны, поэтому я город бросил.
  9. @A.N.deAd, есть такая штука, как теория графов. Занятная вещь. Чем выше связность графа, тем лучше для города. На практике это значит, что неплохо работают города с прямоугольной сеткой улиц. Хотя её можно и гнуть в разные стороны - она от этого не особо хуже станет. Я именно так у себя в основном и делаю. На твоей картинке связность так себе. Твой выделенный Гроув-дистрикт например соединяется с остальной частью города всего двумя узлами (перекрёстками) через одну дорогу. Это значит что у жителей всего района всего лишь один-единственный путь на работу и обратно. Это значит, что все они поедут по одной этой дороге, куда очевидно все не влезут. Поэтому будет очередь - затор. И я не очень понимаю почему ты боишься Х-образных перекрёстков - у тебя нет ни одного, все Т-образные. И оттого что ты нарисуешь чтоб красиво смотрелось с воздуха лучше оно работать не будет. @VitalyRU, да наоборот. Всё правильно сказал. Я мечтаю уже чтоб кто-нибудь сделал мод на двухполосную и четырёхполосную магистрали чтоб регулировать перестроения перед развязками. Чтоб после съезда трёхполоска превращалась в двухполоску до следующего слияния. Так водители будут занимать крайнюю правую только для этого съезда, а те, кто едет прямо, ехали бы по второй или третьей полосе.
  10. Красный - так твои жители ездят на работу. Фиолетовый - так они ездят с работы. Синий - как могли бы ездить.
  11. @DANZ, на карте установлены источники воды, которые работают наоборот, когда уровень воды выше этого источника. Если поставить дамбу слишком высоко, то вся вода пойдёт обратно в источник. Наверняка узнать как высоко находится источник нельзя. Только опытным путём. Либо просто пользоваться этим "багом" для осушения больших территорий под застройку.
  12. Ну да. Это было в моём переводе той статьи. Путь просчитывается в момент отправления и не пересчитывается во время движения (если не было изменений дорожной сети на пути). А что говорить? Итак видно что пробки в узких местах. Представь себе город в виде кровеносных сосудов. Кровь идёт от лёгких (жилых домов) по капиллярам (маленьким улицам), собираясь в сосуды всё большего диаметра (бульвары, шоссе), а потом вновь разветвляясь на тоненькие сосудики чтоб питать ткани (рабочие места). Чем длиннее у тебя улица (от перекрёстка до перекрёстка) со зданиями, тем больше нагрузка на этот участок дороги. Чем меньше у тебя перекрёстков (точек выбора пути), тем меньше вариантов у водителей, тем потенциально длиннее объезды, чем длиннее объезды, тем дольше в пути находятся машины, тем больше машин в единицу времени, то есть выше плотность. Когда плотность становится выше пропускной способности (перекрёстка), случается затор. Вот смотри. Красным показан путь напрямик, синим объезд. Хоть в данном примере машинам не надо ездить между двух этих точек, но важен сам принцип. У тебя очень много таких мест в городе. Ярлычки смертей явно демонстрируют плохую производительность твоих катафалков именно из-за того, что они делают много непродуктивных объездов. Если соединить некоторые узкие места пешеходными дорожками, то это может помочь жителям и некоторые выберут этот путь пешком взамен автомобилю. Это немного снизит нагрузку на дороги, но не уберёт проблему для сервисных служб. Фиолетовым показаны проблемные места. Верхний перекрёсток у тебя собрал пробку на три квартала. Пожарные машины, скорые, мусоровозы, автобусы, все они будут торчать там в той пробке. Образовалась она там потому что: 1) это единственный путь для грузовиков на товарную станцию со всего промышленного района 2) у бульваров на перекрёстке больший приоритет перед улицами. Светофорные фазы, закрывающие проезд с улиц на бульвар длится дольше. 3) главный поток на обоих перекрёстках делает левый поворот, для которого светофорные фазы всегда короче.
  13. @Igrok, так поставь эксперимент
  14. @vint342, а что находится выше по течению? Там точно никаких загрязнителей нет? И в городе нигде не стоит водонапорных вышек?
  15. @vint342, я никогда не сталкивался с таким. Я думал если есть в водопроводе грязная вода, то она везде в нём будет из-за забора грязной воды. Может мод какой-то виноват? Или может у тебя вместе с прибрежными насосами стоят где-то вышки в загрязнённой зоне?
  16. @sataby, а карта стандартная или скачанная?
  17. @vint342, а почему у тебя на карте загрязнения видно водопровод коричневым? И уровень загрязнения питьевой воды стоит на 20%. С ним явно что-то не так.
  18. @rodnikur, датчане больше любят тоннели, а шведы - мосты. Но у них общая любовь к искусственным островам
  19. Прикольно, конеш, но такой микроменеджмент быстро утомляет в такой игре. Это по началу кажется что вот оно - счастье пришло с этим модом. А потом захочется чтоб это как-то всё автоматизировалось, а оно итак автоматизировано разработчиками. Единственное применение - это делать магистрали с примыкающими проездами без светофоров. Но вообще я бы лучше предпочёл такую комплексность в моде для ж/д. Там действительно это необходимо, в том числе для того, чтоб делать одноколейные пути. Логика в этих знаках приоритета ровно такая же, как и в ж/д светофорах, а перекрёсток - это тот же блок-участок, просто входов-выходов у него побольше.
  20. @Igrok, и как с одного кольца на другое перебраться?
  21. @MagicHero, может пробки и скорые не могут проехать? Или мусор не вывозится.
  22. @MagicHero, а водичка и их краны тоже идёт чистая, или мэр случайно перепутал насос со сливной трубой?
  23. Кстати я не очень понял как растут здания в уровнях. Там увеличивается только плотность или ещё и богатство жителей? Потому что судя по тем ассетам, что есть в игре, с ростом уровня внешний вид здания сильно меняется на более богатый, а заодно там становится больше жителей. Это как-то контринтуитивно, ведь всё должно быть наоборот - чем богаче дом, тем меньшая плотность жителей в нём.