Войти
ПроектыФорумОцените

Экспериментальная sci-fi RTS (переименовано) (4 стр)

Страницы: 1 2 3 4 5 6 Следующая »
#45
7:50, 10 янв. 2021

nklbdev
Еще впереди пазфаиндинг?

#46
(Правка: 9:55) 9:48, 10 янв. 2021

Incvisitor
Тайловый пасфайндинг уже здесь.  Только надо статические коллайдеры уменьшить или сгладить углы, чтобы юниты не цеплялись за эти углы.

(Кстати, у Godot при поиске путей по тайлам иногда бывают глюки, когда находится не прямой путь, а какой-то искривленный по границам тайлов. Наверно, это не победить.)

А вот поиск пути между других юнитов, особенно, зданий, меня все еще волнует.

Так как Godot не может работать с динамическими препятствиями, но есть возможность добавлять/убирать полигоны в навигационную сетку и в тайловой карте есть метод update_raw_quadrants, планирую сделать так:

Сделаю отдельные тайловые карты для графики и для физики/навигации (невидимую). Чтобы при постройке/сносе зданий, когда на навигационной карте меняются тайлы, на визуальной ничего не происходило.

Да, неприятно иметь несколько тайловых карт, да ещё разнесенных по разным YSort-узлам. Уследить за тайлами будет сложно. По этому в планах сделать редактор карт.

#47
14:15, 11 янв. 2021

Ну выходит, победа в челленжде? Или этой версии маловато, чтобы назвать её "полноценная стратегия"?

#48
(Правка: 17:34) 17:33, 11 янв. 2021

elGringo
Извини, видимо, мне нужно все-таки переименовать тему.

Не было никакого официального челленджа. Был лишь личный интерес. Я уже выше писал просьбу отнестись к этой затее с юмором. Ситуация-то была такая (если упростить), один человек сказал "я бы тоже что-то сделал, да нету повода, нет цели", второй сказал "вот тебе повод, смогёшь?", первый ответил "а смогу!".

То есть челлендж-то на самом деле был перед самим собой. Я благодарен Ducat'у за то, что он этим самым помог мне преодолеть порог вхождения в этот личный проект. И так же благодарен всем, кто следил за темой.

Пожалуйста, не воспринимайте эту тему как какой-то официальный спор, конкурс или другое мероприятие. То, что я выставил свой прогресс на общее обозрение - просто хотел публично отчитываться, чтобы не впадать в прокрастинацию и быть в тонусе.

Моя личная победа здесь лишь в том, что проект таки начат и так просто уже не остановится.

По результатам - я писал, что результатом не доволен. Если Ducat все-таки решил, что дошел до нужной точки в прогрессе, это его право. Я же, если доберусь до релиза, тоже обещаю сделать в игре ответный жест.

По текущему состоянию:
Сейчас я жестко завяз в теме "многоэтажности" карты и возможности создавать эту карту не в редакторе движка, а в самой игре.
Например:
1. Редактор Tiled поддерживает многоуровневые terrain-автотайлы, а Godot - нет.
2. Для правильной сортировки тайлов "этажа" карты и юнитов, которые на нем находятся, их нужно помещать в одну YSort-ноду и у Tilemap включать флаг YSort.

Получается такое дерево:
Map
|-Navigation2D
| |-TileMap (невидимый, содержит физику и навигацию)
|-LowestTerrainYSort
| |-TileMap (тайлы нижнего, возможно, непроходимого этажа)
| |-SomeUnit1
| |-SomeUnit2...
|-LowTerrainYSort
| |-TileMap (тайлы первого этажа)
| |-SomeUnit1
| |-SomeUnit2...
|-MiddleTerrainYSort
| |-TileMap (тайлы второго этажа)
| |-SomeUnit1
| |-SomeUnit2...
|-HighTerrainYSort
| |-TileMap (тайлы третьего, самого верхнего этажа)
| |-SomeUnit1
| |-SomeUnit2...

Здесь автотайлингом Godot проблему не решить. Нужно индексировать тайлы самостоятельно и в самодельном режиме "редактор" вставляя тот или иной terrain в клетку, исправлять все соседние тайлы для создания правильных переходов.

#49
17:44, 11 янв. 2021

nklbdev
> Извини, видимо, мне нужно все-таки переименовать тему.
>
> Не было никакого официального челленджа. Был лишь личный интерес. Я уже выше
> писал просьбу отнестись к этой затее с юмором.
Так я не без юморка :) . Понятно, что челлендж самому себе поставлен. Тем не менее, в нем можно победить или проиграть. :)
И вот по ощущениям как - победа, или не очень? :)

#50
17:53, 11 янв. 2021

elGringo
> И вот по ощущениям как - победа, или не очень? :)
То, что порог вхождения преодолен - точно победа. Однако, впереди еще много работы и мне обязательно нужно перейти от прототипа в редакторе к минимально запускаемой игре, пусть и без каких-то функций.

#51
(Правка: 18:28) 18:08, 11 янв. 2021

nklbdev
> Юниты при отправке группой иногда отказались ходить: их точки назанчения имеют
> относительно друг друга такое же положение, как и исходная позиция. По этому
> некоторым юнитам давалась команда "идти за пределы допустимой области". Научил
> их правильно вычислять наиболее близкую к желаемой позицию, отсчитывая от места
> клика мышью.
В свое время много потратил времени (каламбур какой) на различные тактики, перемещение масс войск, хождение строем, взаимодействие корпусов и т.д.
Много там открытий чудных может тебя ждать. Вообще многочастичные взаимодействия не так просты.
Можно месяцами убивать время на полировку. А некоторые задачи почти нерешаемы.


> Состояние на 30.12.2010:
Очень похоже на Старкрафт. Видео в духе компаний первой части. Надеюсь получится не Старкрафт на минималках))

> их точки назанчения имеют относительно друг друга такое же положение, как и исходная позиция.
Кстати, если ориентироваться на тот же Старкрафт, да и многие другие стратегии, то координаты назначения должны иметь не те же относительные позиции, а иметь некую группировку вокруг заданной точки.
Это может быть как в Старкрафте сферическая плотная упаковка, либо же координаты в выбранном строю - клином, в линию, каре и т.д.
Иначе собирать войска вместе будет весьма сложно или невозможно вообще, если они сильно разбредутся.

#52
18:47, 11 янв. 2021

Mr_Jack
Да, если небольшую группу в SC отправлять недалеко, она сохраняет текущий строй. Если ткнуть мышью где-то внутри их общего прямоугольника, то они "сойдутся" ближе в эту точку. Если отправить куда-то подальше, то там строй может измениться.

Да, я это понимаю. Сейчас я лишь добавил немного steering behavior'а, заставив юнитов стремиться ходить цепочками и отворачивать от прущих им навстречу юнитов. На этом пока остановлюсь, ходят и ладно.

Про SC (первый) - это просто для меня один из личных образцов, но не идеал, и полностью повторять я его не собираюсь. Тем более, что там движение идет по мелкой клеточной сетке, а у меня по float-координатам. Я скорее пытаюсь почерпнуть часть из первого SC, часть из второго, а остальное взять из других игр или воображения.

В одиночку у меня точно получится <что-то> на минималках) но надеюсь, ближе ко второй половине проект заинтересует кого-то еще. Если честно, заниматься над подобным проектом с единомышленником всегда было моей мечтой.

#53
15:43, 16 янв. 2021

Привет, я продолжаю работу. Занимаюсь редактором.
Сделал простейшую кисть Вана на 2 угла (которая красит в нужный террэйн не клетку и ее соседей, а перекрестье между 4-мя клетками). Она дает более точные результаты (затрагивает 2*2 клетки), чем покраска клетки (затрагивает 3*3 клетки).

Сделал поддержку нескольких типов террэйна.

Сейчас отлажу и буду заниматься многоуровневостью (в принципе для нее все уже готово, и типы террэйна несут в себе информацию об уровне, но нужно эти отладочные тайлы заменить реальными, большими, красивыми на нескольких целевых тайловых картах по оной карте на слой высоты).

#54
15:47, 16 янв. 2021

Агонь

#55
(Правка: 21:53) 21:51, 16 янв. 2021

Сделал поддержку разных типов террэйнов на одном уровне.
Теперь рефакторинг и перехожу уже от работы с одним тайлмэпом к нескольким тайлмэпам-слоям.
Напоминаю, несколько тайлмэпов нужно не для того, чтобы больше графики было на экране, а для правильной сортировки юнитов и тайлов разных уровней. Если бы был способ проще, я бы обошелся одним тайлмэпом.
А сейчас, если на тайлмэпе, скажем, верхнего уровня, будет тайл, то под ним на остальных тайлмэпах будет дырка и наоборот, если на втором уровне будет тайл, то на 1, 3, 4 уровнях будет дырка.

(Пока что использовал в качестве шаблона для реверс-разработки тип карты Jungle из StarCraft, там 14 типов террэйна)
пример карты на отладочных тайлах | Экспериментальная sci-fi RTS (переименовано)

#56
22:13, 16 янв. 2021

nklbdev
Что такое тайлмэп в данном контексте? Перечитал пост 2 раза, но не понял, о чём ты.

#57
23:51, 16 янв. 2021

Alprog
наверное имеется ввиду то что он по слоям рисует эти возвышенности и они между собой тайлятся на карте

#58
0:22, 17 янв. 2021

Alprog
92+
Да, почти. Один тайлмэп - это один объект движка Godot, занимающийся показом тайловой карты.
Он один способен спокойно показать всю карту. Почему их нужно много?

Допустим, у нас ромбовидные ячейки 64*32, а сами тайлы 64*128. Таким образом на этих тайлах можно изобразить не только поверхность-ковер, но и возвышающиеся объекты. При рендеринге тайлов сначала показываются верхние ряды, потом нижние, по этому наложение срабатывает правильно. Однако другие объекты игры будут ходить по этому пейзажу все равно как по ковру, с ними наложение правильно работать не будет.

Как решить эту проблему?
Сделать еще один тайлмэп. Тайлы возвышенностей будем располагать не на "нижнем" тайлмэпе, а на "верхнем". Включим у "верхнего" тайлмэпа флаг YSort и поместим его и юнитов в один объект YSort.
Тогда юниты и тайлы "верхнего" тайлмэпа будут сортироваться по Y перед рендерингом и будут накладываться правильно.

Эту технику можно увидеть в одном из моих предыдущих видео.

По этому всю единую красивую карту местности, которую мог бы показать один объект TileMap приходится разбивать по уровням на несколько TileMap. И при переходе юнита с одной высоты на другую "пересаживать" этого юнита из одного YSort-объекта в другой.

структура редактора карт | Экспериментальная sci-fi RTS (переименовано)
#59
(Правка: 9:30) 8:47, 18 янв. 2021

Набросал несколько артов

+ Показать

Страницы: 1 2 3 4 5 6 Следующая »
ПроектыФорумОцените