"Последняя сущность". Микроотчёт и запрос помощи.

+86
в блоге Gamedev is Friendship!


Тезисно:
— Сансет, конечно, жжёт, но речь не только о ней.
— проект движется, но очень медленно.
— немного матчасти.
— нужна помощь художника и музыканта.
— ловите багов!!!

Ссылки:
+ Текущая версия:
Версия для Вин XP и выше (64 бит): Качать
Для других систем качать love-файл отсюда и скармливать его движку, скачанному отсюда.
(На всякий случай: на втором уровне стражник на самом деле — однокурсница Сансет, а на четвёртом тень — мисс Инквелл. Это к вопросу о потребности в художнике. -_- )

+ Старая версия:
Версия для Вин XP и выше (64 бит): Качать
Для других систем качать love-файл отсюда и скармливать его движку, скачанному отсюда.

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

Планы на будущее по программерской части:
— Исправление багов
— Больше уровней
— Настройки, инструкция по управлению, About
— … наверняка что-то ещё…

26 комментариев

В ленту…
MexoOne
+1
Ву-ху! Вот это забава-забава-забава! Получается уже целых три годных проекта не забросили. Удачи в поиске персонала.
vorodor
+3
Спасибо )
MexoOne
+3
Эт тебе спасибо, что такую красоту не забрасываешь.
vorodor
+3
*раскраснелся* )
MexoOne
+3
Что дают за 4 звезды?
Fisherman
+1
Вообще планируется скорее магазин. Т.е. есть фиксированные лоты по два на каждые N звёзд, от 1 до 5 (в сумме 30, как планируется и уровней).
4 звезды: плюс одно заклинание или поднять контроль сущностей на К (нужно будет смотреть по балансу)
5 звёзд: плюс одно заклинание или M статов (нужно будет смотреть по балансу)
Чтобы не порвать плавность прокачки, думаю сделать ограничение ещё и на лвл.
MexoOne
0
Но со звёздами недавнее дополнение, возможно, что-то изменю. Буду ещё смотреть по уровней.
MexoOne
0
Сорри за офтоп, но как реализовано одновременность хода? Пытался что-то подобное сделать, но не смог.
прохладные мыслиДопустим есть 3 юнита:A, B, C. Юниты ходят A->B,B->C,C->A, но из-за непустого места они у меня клинись. Так и не смог в харовод.
Twogush
+1
Ну игрок в принципе может выбрать целью для ходьбы лишь пустую на начало хода клетку. ИИ тоже. Если при этом кто-то в кого-то упрётся — его шаг сценария тормозится и кто-то из этих двоих (или оба) вернётся на клетку с которой пришёл. На моей механике чистый хоровод не получится. Если я размещу 4 юнита на блоке 2х2 клетки и заставлю их идти по часовой стрелке, они чуть дёрнутся, но тут же вернутся на исходные позиции.
MexoOne
0
Кстати, если интересно, я пришёл к просчёту пересечений объектов не по квадратам клеток, а по окружностям диаметром чуть меньше стороны квадрата. Такое взаимодействие мне показалось более натуральным. Есть небольшой дёрг, когда персонаж пытается сходить на занятую клетку, отсутствуют раздражающие зацепы уголками, которые глаз не видит, но по математике они есть, появляется хоть и краткая, но анимация атаки на соседнюю клетку.
У меня клетки 50х50, а окружность экспериментально подобрал 48.
MexoOne
+1
Мне интересно решения хоровод. Хотя по факту это поиск графа… какого-то, я не силен в математику.
Если у тебя карта поделена на клетки, то зачем окружности? Карта получается матрицей, где если в ячейке не пусто, то нельзя пройти.
Не совсем понимаю зачем нужен просчет коллизии
Twogush
+1
Движение у меня задаётся по клеткам, а происходит по честным экранным координатам. Это нужно не только для ходьбы. Та же Искра, а позже и другие заклинания могут лететь под произвольным углом и «поймать» врага на полушаге — нужен честный просчёт.
Для реализации же именно хоровода… Можно попробовать добавить персонажу или клетке местности признак «тот персонаж отсюда уходит», устанавливаемый для всех движущихся объектов до начала любых движений. Или если это делается чисто для ИИ, реализовать некий общий разум (общее хранилище, через которое они обмениваются планами), позволяющий такое движение.
MexoOne
+1
Хитро. Особенно в случае х-диагонального хода юнитов — один шагнет, а другой останется на месте.
псевдо графиксAB #в случае когда юниты пойдут по правилу: A->D,B->C.
CD #возможно, есть еще интересные случаи
Twogush
+1
Просто вспомнил. Такие диагонально-перекрёстные движения не просчитывались в Дюне 2000. Было иногда забавно наблюдать, как, скажем, танк проезжает под харвестером. Могу предположить, что там поиск пути был чисто по клеткам карты, без учёта реального перемещения юнитов и промежуточных положений.
Да, вариант с постоянным контролем пересечений более ресурсоёмкий. Но мне нужен именно он. В принципе, можно сделать немного дешевле: При старте движения тут же посчитать траекторию (прямая в большинстве случаев) и искать пересечение её с траекториями других движущихся объектов. Система двух линейных уравнений. Если таковое имеется в некий ближайший момент времени (в пределах ближайшей клетки) — разрулить будущую коллизию (кого-то остановить, например).
MexoOne
0
Кстати, про Дюну и прочие C&C. Когда берёшь большую плотно стоящую толпу и отправляешь всех вместе в некую точку, сначала начинают движение стоящие вокруг, т.е. те, кто может сдвинуться хоть куда-нибудь. Остальные ждут, пока освободится хоть одна клетка, причём не обязательно в направлении основного движения. Кто-нибудь из дальних мог поехать назад и вообще в объезд. Или поехать в одну сторону упереться в кого-нибудь, развернуться и поехать через другой коридор. Можно предположить, что каждый юнит хранит точку назначения и периодически пересчитывает возможный маршрут.
MexoOne
0
— Обсуждение выше напомнило мне о такой статье как Повесть о создании классической RTS в домашних условиях с нуля и её ответвлении Алгоритм построения пути в стратегической игре. Думаю, что шанс того что тебе будет энти штуки интересно прочитать достойно высок.
Waterfall
+1
Определённо интересно. Как-то так вышло, что ко многим умозаключениям по игровой механике пришёл методом наблюдения со стороны и набивания шишек. Любопытно посмотреть, как оно по уму делается.
MexoOne
0
А нет ли статьи поновей? Волновой алгоритм, если мне память не изменяет, довольно мало эффективный.
пруфов нет, может я даже игру перепутал. Если найду статью на хабре то дам ссылкуВ 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 — первый юнит не смог пройти, т.к. второй ему мешал. В первом варкрафте юниты из-за этого часто ходили как попало, а не строем. Хотя возможно это из-за другой причины.
Twogush
+1
>> А нет ли статьи поновей?
— Конкретно про эту игру вряд ли. Старая игра. Старая статья. И тишина. Зато написана живым языком и содержит ряд хороших идей, чем и ценна.

>> *научно-текст*
— Не тому ты пишешь про алгоритмы нахождения пути. Я не математик, не геометрик и почти не программист.
Waterfall
+1
Мой косяк. Там был еще один абзац, в котором я написал что курс ветки пошел в другую сторону. И одновременность хода не совсем подходит…
Twogush
+1
В ск2 плотная группа юнитов может идти без запинки в любую сторону

В более новых играх, по моим наблюдениям, почти ушли от деления поля на квадратики* и юниты действуют в непрерывном пространстве (почти: пиксели никто не отменял). За счёт этого возможна плавность движения толпой. Если есть зазор хоть в пару пикселей, а скорость движения не сильно отличается, они вполне могут двигаться равномерно.

*Оставляют для мини-карты, иногда для строительства, и моделировать уровень проще по сетке. Но просчёт перемещений во время игры идёт уже по более менее честным контурам объектов.
MexoOne
0
Что делает Опыт +1 за три звезды?
Fisherman
+1
Упс. Не ту строчку указал в коде. На самом деле +1 заклинание. Спасибо.
MexoOne
0
И это при том, что сотворить третье заклинание никак.
Fisherman
+1
Да, косяк… Я писал выше, что звёздочки нововведение. По моей задумке первые уровня 3-4 заклинания творятся по заданному списку, после открывается свобода творчества. Думаю доработать систему звёзд, скажем, ограничить их по уровню персонажа. Но в этой демке этого ещё нет, упустил, да.
MexoOne
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Скрыто Показать