Вот, например, мне нужно в Unity сделать простое двумерное игровое поле на котором клетки с 0 непроходимы и клетки 1 проходимы. И что, я получается должен создавать массив из всех клеток и потом искать каждую конкретную клетку по индексу? Это же пиздец, я постоянно буду ошибаться с индексами, не говоря уже об "удобстве" работы в редакторе со списком из 100 элементов.
У Юнити довольно мощный редактор, но он оказывается не справляется с такой тривиальной для геймдева задачей, без которой ни обходится почти не одна игра. Для этого нужно наворачивать какой-нибудь громоздкий плагин вроде Odin Inspector. Но мне это нахуй не нужно, проще свой мини-велосипед запилить с текстовыми файлами в которых будут 0 и 1 по числу столбцов и строк.
Хз при чем тут сам движок, у тебя же есть язык программирования С#, не хватает какого-то класса и оппераций с ним - пишешь его сам. Всегда так делаю для Анрила, только у нас кресты. И в 95% случаев все там уже написано до нас.
К движку претензий не имею. Вопросы к среде разработки, к базовым функциям редактора.
Нахуя нужны какие-нибудь йоба-АИ инструменты, несколько компонентов для работы с анимацией, несколько разных систем ЮИ, несколько разных рендер-пайплайнов когда нет базовых функций которые нужны 50% разработчиков?
Может лучше бы разработчики велосипедили свои системы анимации и ЮИ? Это как-то намного логиченее чем заниматься жалкими 2д массивами.
> Матрицы в геймдеве
> Вот, например, мне нужно в Unity сделать простое двумерное игровое поле на котором клетки с 0 непроходимы и клетки 1 проходимы. И что, я получается должен создавать массив из всех клеток и потом искать каждую конкретную клетку по индексу? Это же пиздец, я постоянно буду ошибаться с индексами, не говоря уже об "удобстве" работы в редакторе со списком из 100 элементов.
Ебанутый? Тут вопрос не в матрицах, а в левел дизайне.
То что ты описываешь - тебе выходит нужен инструмент для левел дизайна чтобы клеточки размечать заняты они или не заняты удобно.
Сразу заспойлеру - это называется тайп мап, и даже он есть в юнити из коробки.
> У Юнити довольно мощный редактор, но он оказывается не справляется с такой тривиальной для геймдева задачей, без которой ни обходится почти не одна игра. Для этого нужно наворачивать какой-нибудь громоздкий плагин вроде Odin Inspector.
Ебанутый? Один никак не решает эту задачу.
По повду твоей задачи, я не знаю зачем тебе именно матрица. Игровое поле - это просто игровое поле. Матрицы в математике представляют собой некие данный с которыми можно проводить сякие операции, умножать, находить определитель, инвертировать и.т.д. А человек потом эти данные уже интерпретирует как нечто прикладное. Тебе нужно искать определитель твоего игрового поля или умножать его на что-то? Я думаю нет. Тебе нужно простое ООП.
Вот у тебя есть клас Cell с твой клеткой, у неё есть поле проходимости. Далее есть само игровое поле это ждругой класс - оно спавнит эти селлы по какому-то закону. Ну например использует текстуру перлин нойза. Читаешь пиксель соответсвующий координате поля и проверяешь если значение пикселя больше порога, то спавнишь туда непроходимую клетку, если меньше порога - проходимую. Получается по сути что-то майнкрафтоподобное. Ну и карту в любом случае лучше хранить в текстуре, а не в тексте. В случае чего, ты можешь эту карту просто нарисовать и загрузить в свою дрочильню.
Так же имея Cell отдельным классом, легко навернуть чтобы она была не просто проходимой или непроходимой, а например имела цену прохождения по ней, как в Героях3. А так же у клетки может быть свой тип. Например: дорога, лес, вода, гора и.т.д.
В общем, не нужны тебе никакие матрицы.
> Сразу заспойлеру - это называется тайл мап
На всякий случай фикс, а то с учетом того что в дальше по треду написано полагаю ты можешь быть не в курсе этого.
>типичные проблемы юнити-маркетологов
мимо свободный пользователь Godot
>тайп мап
>>077
>тайл мап
Юнити-маркетологи ленятся кинуть прямую ссылку?
https://learn.unity.com/tutorial/introduction-to-tilemaps
мимо великодушный пользователь Godot
Если нужен редактор, не зависящий от движков:
https://www.mapeditor.org/
мимо щедрый пользователь Godot
>Ебанутый? Тут вопрос не в матрицах, а в левел дизайне.
Это ты ебанутый. Я вообще не занимаюсь левел-дизайном, спрайтовые тайлы мне нах не нужны.
Мне нужны совершенно абстрактные данные о карте, по которым игра потом сама построит карту по моим скриптам. Тупо 2д массив, ничего больше.
А ты заставил меня какой-то туториал в стиле рпг-макера смотреть, пидор.
>Один никак не решает эту задачу.
Не пользовался, 100% не могу утверждать, но Один умеет сериализовать двухмерные массивы: https://odininspector.com/attributes/table-matrix-attribute#:~:text=The%20TableMatrix%20attribute%20is%20used,%7D%2C%20%7B%20null%2C%20ExampleHelper.
Мне этого более чем достаточно, сделаю просто двухмерных массив с типом bool.
>>076
По повду твоей задачи, я не знаю зачем тебе именно матрица. Игровое поле - это просто игровое поле.
Тут ты прав конечно. Мне по сути нужна просто удобная работы с 2д массивами в редакторе, математика не нужна почти.
Только вот блядский Юнити не умеет сериализовать 2д массивы.
> Это ты ебанутый. Я вообще не занимаюсь левел-дизайном
А чем ты занимаешься выстраивая структуру уровня?
> спрайтовые тайлы мне нах не нужны.
> спрайтовые
Чел, как бы тебе сказать... спрацт модет быть лишь индикатором того, что там.
> Мне нужны совершенно абстрактные данные о карте
Ты четко сказал про 0 и 1 - прохода нет, проход есть.
> по которым игра потом сама построит карту по моим скриптам. Тупо 2д массив, ничего больше.
> А ты заставил меня какой-то туториал в стиле рпг-макера смотреть, пидор.
Для твоей задачи нужен нормальный визуальный редактор, чтобы иметь какое то превью карты, масштабировать, делать заливку.
Юнитевская имплементация тайлмапы и есть этот удобный визуальный редактор, все что тебе надо сделать это данные с нее сконвертить в твой массив.
> Не пользовался, 100% не могу утверждать, но Один умеет сериализовать двухмерные массивы:
В инспекторе выводить двухмерный массив чтобы заполнять карту - это джун минус уровень, юзабилити ужасное, производительность ужасная при редактировании.
>Юнитевская имплементация тайлмапы и есть этот удобный визуальный редактор, все что тебе надо сделать это данные с нее сконвертить в твой массив.
Ну ладно, если попердолиться то этот инструмент сойдет для моей задачи, прости что объявил тебя пидором.
>В инспекторе выводить двухмерный массив чтобы заполнять карту - это джун минус уровень
Игры же разных жанров бывают, не на рпг-макере ведь делаю. Под мою задачу хватит карт 10х10.
> Игры же разных жанров бывают, не на рпг-макере ведь делаю. Под мою задачу хватит карт 10х10.
Если 10х10 хватит то попроси нейронку сгенерить тебе редактор
10х10 я могу представить жизнеспособным вариантом в инспекторе, чтобы не заморачиваться