Голосование

Как вы относитесь к играм в жанре "симулятор колонии"?












Оформление



Пользователей
  • Всего: 29196
  • Последний: hoy545
Сейчас на форуме
Пользователи: 1
Гостей: 557
Всего: 558

0 Пользователей и 1 Гость просматривают эту тему.

Тема: Как реализовать дороги и модификацию скорости (обсуждение)  (Прочитано 5656 раз)

  • Сообщений: 223
    • Просмотр профиля
    • Игровой блог персонажа Egorex
Появилась идея реализации дорог и скорости передвижения по ним. Любой объект на карте является отрядом, а также есть команда измерения расстояния до объектов. Остается расставить на карте через модульную систему дорожные знаки, вдоль которых проходит дорога и прописать в скрипт #script_game_get_party_speed_multiplier
 функцию измерения расстояния до дорожных знаков. Если расстояние меньше определенного радиуса, на отряд действует модификатор скорости движения. В дальнейшем, если есть желание (и если идея вообще сработает) можно вдоль пикетов нарисовать текстуры дороги.

Сопсна, жду конструктивную критику/хвалебные оды, а также не откажусь от текстур/моделей на пикеты.

должность модератора идеальная для недотроля - когда не получается тролить - можно всем раздать по банану... прикрываясь правилами выдуманными/искаженными на ходу... (с) MeanLizard
  • Сообщений: 3008
  • За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
Опять? А новую тему зачем?
Тогда уж надо и АИ переделывать, чтобы он выбирал более быстрый маршрут. Я не возьмусь.

  • Сообщений: 3508
  • За создание крупных модов и других особо сложных проектов За активную деятельность, связанную с публикациями и помощью другим посетителям За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
Остается расставить на карте через модульную систему дорожные знаки, вдоль которых проходит дорога и прописать в скрипт #script_game_get_party_speed_multiplier
 функцию измерения расстояния до дорожных знаков. Если расстояние меньше определенного радиуса, на отряд действует модификатор скорости движения. В дальнейшем, если есть желание (и если идея вообще сработает) можно вдоль пикетов нарисовать текстуры дороги.
Зачем нужны знаки, если есть party_get_current_terrain? Знаки (скорей всего) придётся руками ставить, координаты прописывать, а ландшафт можно кисточкой  дорисовать. И текстуры накладывать потом не придётся.

  • Сообщений: 223
    • Просмотр профиля
    • Игровой блог персонажа Egorex
Зачем нужны знаки, если есть party_get_current_terrain? Знаки (скорей всего) придётся руками ставить, координаты прописывать, а ландшафт можно кисточкой  дорисовать. И текстуры накладывать потом не придётся.

Вроде нет типа территории "road", новые типы территорий добавлять нельзя, а все дороги нарисованы степями. То есть если делать модификатор для степей, то отряд будет быстрее бегать не только по дорогам. Кроме того, разным знакам можно присвоить разные обозначения и разные модификаторы скоростей. таким образом можно знаками задавать разную скорость движения на разных участках дороги, например в лесу, в горах, в лесу в горах. Что эквивалентно уже трем новым типам территорий.

Что касается AI, то я могу себе представить как запрограмировать AI маршруты движения по точками, но не могу пока даже предположить как сделать ему распознавание дороги на массиве территории для выбора наиболее оптимального маршрута. Как я себе представляю, чтобы заставить ИИ придерживаться маршрута надо один хрен задавать ему путевые точки.

Далее, я могу приписать знаки к определенному замку или городу и определить, таким образом, принадлежность дорог к определенной фракции. А следовательно, я смогу замедлять/ускорять отряды при движении по дружеской/нейтральной/вражеской территории.

Далее, я могу задать знаку еще один параметр - состояние. Это дает возможность регулировать скорость движение в зависимости от состояния дорог. Еще вариант, это дает возможность строить/разрушать дороги. Другой вариант, каждый знак приносит прибыль владельцу замка/кипа, что вообще говоря вполне логично. Не представляю себе, как все эти возможности можно реализовать при помощи текстур и рельефа.

Но дело геморное, согласен. Но пока вроде овчинка выделки стоит.

должность модератора идеальная для недотроля - когда не получается тролить - можно всем раздать по банану... прикрываясь правилами выдуманными/искаженными на ходу... (с) MeanLizard
  • Сообщений: 3508
  • За создание крупных модов и других особо сложных проектов За активную деятельность, связанную с публикациями и помощью другим посетителям За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
Вроде нет типа территории "road", новые типы территорий добавлять нельзя, а все дороги нарисованы степями. То есть если делать модификатор для степей, то отряд будет быстрее бегать не только по дорогам. Кроме того, разным знакам можно присвоить разные обозначения и разные модификаторы скоростей. таким образом можно знаками задавать разную скорость движения на разных участках дороги, например в лесу, в горах, в лесу в горах. Что эквивалентно уже трем новым типам территорий...
Можно совмещать. Проверка территории, поиск расстояния до знака. Преимущества тут в том, что число знаков нужно существенно меньше, код будет легче (пока у тебя идёт к тому, что каждый кадр вычислять матрицу этак 1000x1000, от каждого отряда до каждого знака). В степях рисовать можно пустыней.

ИИ ты не перепрограммируешь, ни со знаками, ни с ландшафтами.

  • Сообщений: 223
    • Просмотр профиля
    • Игровой блог персонажа Egorex
Можно совмещать. Проверка территории, поиск расстояния до знака. Преимущества тут в том, что число знаков нужно существенно меньше, код будет легче (пока у тебя идёт к тому, что каждый кадр вычислять матрицу этак 1000x1000, от каждого отряда до каждого знака). В степях рисовать можно пустыней.

Можно, но не нужно. Зачем? Для расчета модификатора скорости необходимо определить местоположение отряда относительно двух точек - соседних знаков - и определить, попадает ли точка в полосу значений или нет. Зная расстояния и углы до соседних знаков это элементарно. Модификатор скорости определяется в зависимости от близлежащих знаков без привязки к территории. Таким образом, я могу знаками задавать какое угодно типов территорий, а дороги отрисовать один раз, одной текстурой и без загонов. В принципе, можно сделать совсем грубые дороги, приняв вместо знаков существующие пункты (города/деревни/замки) и соединив их прямыми маршрутами.

ИИ ты не перепрограммируешь, ни со знаками, ни с ландшафтами.

Не понял, что имеется ввиду. Если я не могу перепрограммировать ИИ, то я вообще нихрена не смогу сделать. Но я видел скрипты с описанием поведения ИИ, поэтому не понимаю проблемы. Как я вижу, я могу в скриптах определять НПС куда им идти. Мне не нужно создавать какие то алгоритмы определения местоположения и модификатора скорости путем перебора всех знаков/деревень/замков/городов и выбора оптимального маршрута. Мне нужно прописать ИИ чтобы в определенных ситуациях он двигался по определенному листу точек от точки к точке. Таким образом, он сам по себе будет придерживаться дороги. Мне же не нужно чтобы он ходил по дорогам во время набегов на вражеские деревни.

должность модератора идеальная для недотроля - когда не получается тролить - можно всем раздать по банану... прикрываясь правилами выдуманными/искаженными на ходу... (с) MeanLizard
  • Сообщений: 3508
  • За создание крупных модов и других особо сложных проектов За активную деятельность, связанную с публикациями и помощью другим посетителям За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
Для расчета модификатора скорости необходимо определить местоположение отряда относительно двух точек - соседних знаков - и определить, попадает ли точка в полосу значений или нет.
Угу.
У тебя в голове два разных варианта, и ты между ними прыгаешь.
1. Расстояние до знака не более чем заданная величина.
2. Найдём пару ближайших знаков, определим по ним.
Каждый из них по отдельности мягко говоря безумен.
В принципе ты в конечном счёте сможешь их синтезировать в один более менее разумный.
Но порисуй на досуге картинки с линейкой в руках, чтобы в конец не запутаться. Это типа совет.

Мне же не нужно чтобы он ходил по дорогам во время набегов на вражеские деревни.
Скрипты, которые ты видел определяют стратегию ИИ, кого осаждать, какую деревне жечь.
Просто так, ходить куда-то там, ИИ не умеет.


  • Сообщений: 2562
  • За регистрацию на форуме не позже декабря 2016 года и не менее 2500 постов
    • Просмотр профиля
    • Портфолио
опытным путем проверенно - движение по дорогам всеж происходит. если путь из точки а в точку б короче по прямой, но есть кусок дороги то боты и игрок стараются придерживаться дороги. мне кажется, что дело здесь не в текстуре, а в том что для дорог используется суженый полигон, и иконка по координатам идет по 2 параллельным вертексам.  причем выход осуществляется в вершине вертекса. 
Egorex, дорожные знаки интересны только для одного, с помощью их можно задать место засад, при прохождении по дороге через лесной масив например.

  • Сообщений: 3233
  • За создание русификаторов За создание технических проектов различного характера За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
Посмотрите в моде где есть строительство дорог  и сделайте так же

  • Сообщений: 223
    • Просмотр профиля
    • Игровой блог персонажа Egorex
Для расчета модификатора скорости необходимо определить местоположение отряда относительно двух точек - соседних знаков - и определить, попадает ли точка в полосу значений или нет.
Угу.
У тебя в голове два разных варианта, и ты между ними прыгаешь.
1. Расстояние до знака не более чем заданная величина.
2. Найдём пару ближайших знаков, определим по ним.
Каждый из них по отдельности мягко говоря безумен.
В принципе ты в конечном счёте сможешь их синтезировать в один более менее разумный.
Но порисуй на досуге картинки с линейкой в руках, чтобы в конец не запутаться. Это типа совет.

Я вообще не понял этот коммент. ты о чем? я вообще не понимаю проблем, о которых ты говоришь. Зная координаты двух точек (дорожных знаков) можно описать прямую - это задача старших классов школы, или первых курсов института. Зная уравнение прямой, можно легко и просто описать перпендикулярную ей прямую, проходящую через точку с заданными координатами (местоположени отряда). Имея уравнения двух прямых вычисляется точка пересечения, и расстояние от отряда до дороги (расстояние от отряда до точки пересечения двух прямых). Все. Если расстояние меньше определенного значения - отряд находится на дороге и имеет бонус к скорости перемещения. Остается решить как ловчее сделать перебор знаков, я смотрю команду try_for_range. Другой вариант, попроще, сумма расстояний между двумя соседними знаками одной дороги не должна превышать определенную величину.

Что касается нанесения на карту дорожных знаков - вообще никаких проблем. Для начала создаем общую схему городов/замков/сел, прокладываем между ними маршруты, продумываем варианты. Если ты меня спросишь, как я собираюсь это сделать, то я отвечу - Autocad наше все. Координаты всех стационарных объектов известны, составить схему в dwg формате без проблем. Прикинуть в этой схеме расположение знаков также без проблем.

должность модератора идеальная для недотроля - когда не получается тролить - можно всем раздать по банану... прикрываясь правилами выдуманными/искаженными на ходу... (с) MeanLizard
  • Сообщений: 3508
  • За создание крупных модов и других особо сложных проектов За активную деятельность, связанную с публикациями и помощью другим посетителям За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов
    • Просмотр профиля
Я вообще не понял этот коммент. ты о чем? я вообще не понимаю проблем, о которых ты говоришь.
Я почему-то не удивлён.  Судя по твоим рассуждениям, к пониманию проблемы ты движешься, только медленно, без дорог, хотя маркеры я для тебя расставил.



СиЧЪ Total War СиЧЪ Total War
Сайт "Всадники Кальрадии" не является СМИ. Администрация не несет ответственность за высказывания и публикацию каких-либо материалов, сделанные любыми пользователями форума, в том числе посредством личных и публичных сообщений. Материалы, размещенные на ресурсе третьими лицами, могут содержать информацию, не предназначенную для лиц, не достигнувших совершеннолетия. При обнаружении на ресурсе материалов, нарушающих законодательство Российской Федерации, необходимо обращаться к администрации.
Сайт работает на быстром VPS/VDS хостинге от FASTVPS


Powered by SMF 2.0 | SMF © Simple Machines LLC