"Последняя сущность". Микроотчёт и запрос помощи.
Тезисно:
— Сансет, конечно, жжёт, но речь не только о ней.
— проект движется, но очень медленно.
— немного матчасти.
— нужна помощь художника и музыканта.
— ловите багов!!!
Ссылки:
+ Текущая версия:
Версия для Вин XP и выше (64 бит): Качать
Для других систем качать love-файл отсюда и скармливать его движку, скачанному отсюда.
(На всякий случай: на втором уровне стражник на самом деле — однокурсница Сансет, а на четвёртом тень — мисс Инквелл. Это к вопросу о потребности в художнике. -_- )
+ Старая версия:
Версия для Вин XP и выше (64 бит): Качать
Для других систем качать love-файл отсюда и скармливать его движку, скачанному отсюда.
В старой есть уровень-выживалка (кнопка Загрузить). В текущей работает вся «механическая» часть, идёт сюжет, но из-за перепила движка выживалка уже работает некорректно, выкинул. Ждите в следующих версиях.
Планы на будущее по программерской части:
— Исправление багов
— Больше уровней
— Настройки, инструкция по управлению, About
— … наверняка что-то ещё…
26 комментариев
4 звезды: плюс одно заклинание или поднять контроль сущностей на К (нужно будет смотреть по балансу)
5 звёзд: плюс одно заклинание или M статов (нужно будет смотреть по балансу)
Чтобы не порвать плавность прокачки, думаю сделать ограничение ещё и на лвл.
прохладные мыслиДопустим есть 3 юнита:A, B, C. Юниты ходят A->B,B->C,C->A, но из-за непустого места они у меня клинись. Так и не смог в харовод.
У меня клетки 50х50, а окружность экспериментально подобрал 48.
Если у тебя карта поделена на клетки, то зачем окружности? Карта получается матрицей, где если в ячейке не пусто, то нельзя пройти.
Не совсем понимаю зачем нужен просчет коллизии
Для реализации же именно хоровода… Можно попробовать добавить персонажу или клетке местности признак «тот персонаж отсюда уходит», устанавливаемый для всех движущихся объектов до начала любых движений. Или если это делается чисто для ИИ, реализовать некий общий разум (общее хранилище, через которое они обмениваются планами), позволяющий такое движение.
псевдо графиксAB #в случае когда юниты пойдут по правилу: A->D,B->C.
CD #возможно, есть еще интересные случаи
Да, вариант с постоянным контролем пересечений более ресурсоёмкий. Но мне нужен именно он. В принципе, можно сделать немного дешевле: При старте движения тут же посчитать траекторию (прямая в большинстве случаев) и искать пересечение её с траекториями других движущихся объектов. Система двух линейных уравнений. Если таковое имеется в некий ближайший момент времени (в пределах ближайшей клетки) — разрулить будущую коллизию (кого-то остановить, например).
пруфов нет, может я даже игру перепутал. Если найду статью на хабре то дам ссылкуВ AoE2 использовали сразу две идеи: медленный A*, для близких координат, и жадный и неточный алгоритм для больших расстояний, который потом динамически пересчитывался через A*.
Вообще, изначально был интересен сама реализация одновременого хода. В ск2 плотная группа юнитов может идти без запинки в любую сторону. В древних играх ход каждого юнита инициировался в порядке создания юнита и потому толпа юнитов могла в одну сторону идти плавно, а в другую с запинками.
Псевдо графиксЦифра порядок хода юнита. Х — пустой тайл.i)- итерация хода.
4,3,2,1,X. Ход в лево
1)X,4,3,2,1
В обратную сторону X,4,3,2,1
1)4,X,3,2,1 — первый юнит не смог пройти, т.к. второй ему мешал. В первом варкрафте юниты из-за этого часто ходили как попало, а не строем. Хотя возможно это из-за другой причины.
— Конкретно про эту игру вряд ли. Старая игра. Старая статья. И тишина. Зато написана живым языком и содержит ряд хороших идей, чем и ценна.
>> *научно-текст*
— Не тому ты пишешь про алгоритмы нахождения пути. Я не математик, не геометрик и почти не программист.
В более новых играх, по моим наблюдениям, почти ушли от деления поля на квадратики* и юниты действуют в непрерывном пространстве (почти: пиксели никто не отменял). За счёт этого возможна плавность движения толпой. Если есть зазор хоть в пару пикселей, а скорость движения не сильно отличается, они вполне могут двигаться равномерно.
*Оставляют для мини-карты, иногда для строительства, и моделировать уровень проще по сетке. Но просчёт перемещений во время игры идёт уже по более менее честным контурам объектов.