img-Qkh0py.png26 Кб, 970x360
Матрицы в геймдеве 1063054 В конец треда | Веб
Анон, а ты считаешь нормальным что самый популярный игровой движок не дает удобных инструментов работы с матрицами из коробки?

Вот, например, мне нужно в Unity сделать простое двумерное игровое поле на котором клетки с 0 непроходимы и клетки 1 проходимы. И что, я получается должен создавать массив из всех клеток и потом искать каждую конкретную клетку по индексу? Это же пиздец, я постоянно буду ошибаться с индексами, не говоря уже об "удобстве" работы в редакторе со списком из 100 элементов.

У Юнити довольно мощный редактор, но он оказывается не справляется с такой тривиальной для геймдева задачей, без которой ни обходится почти не одна игра. Для этого нужно наворачивать какой-нибудь громоздкий плагин вроде Odin Inspector. Но мне это нахуй не нужно, проще свой мини-велосипед запилить с текстовыми файлами в которых будут 0 и 1 по числу столбцов и строк.
2 1063065
>>054 (OP)
Хз при чем тут сам движок, у тебя же есть язык программирования С#, не хватает какого-то класса и оппераций с ним - пишешь его сам. Всегда так делаю для Анрила, только у нас кресты. И в 95% случаев все там уже написано до нас.
3 1063071
>>065
К движку претензий не имею. Вопросы к среде разработки, к базовым функциям редактора.
Нахуя нужны какие-нибудь йоба-АИ инструменты, несколько компонентов для работы с анимацией, несколько разных систем ЮИ, несколько разных рендер-пайплайнов когда нет базовых функций которые нужны 50% разработчиков?
Может лучше бы разработчики велосипедили свои системы анимации и ЮИ? Это как-то намного логиченее чем заниматься жалкими 2д массивами.
4 1063075
>>054 (OP)

> Матрицы в геймдеве


> Вот, например, мне нужно в Unity сделать простое двумерное игровое поле на котором клетки с 0 непроходимы и клетки 1 проходимы. И что, я получается должен создавать массив из всех клеток и потом искать каждую конкретную клетку по индексу? Это же пиздец, я постоянно буду ошибаться с индексами, не говоря уже об "удобстве" работы в редакторе со списком из 100 элементов.


Ебанутый? Тут вопрос не в матрицах, а в левел дизайне.

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

> У Юнити довольно мощный редактор, но он оказывается не справляется с такой тривиальной для геймдева задачей, без которой ни обходится почти не одна игра. Для этого нужно наворачивать какой-нибудь громоздкий плагин вроде Odin Inspector.


Ебанутый? Один никак не решает эту задачу.
5 1063076
>>071
По повду твоей задачи, я не знаю зачем тебе именно матрица. Игровое поле - это просто игровое поле. Матрицы в математике представляют собой некие данный с которыми можно проводить сякие операции, умножать, находить определитель, инвертировать и.т.д. А человек потом эти данные уже интерпретирует как нечто прикладное. Тебе нужно искать определитель твоего игрового поля или умножать его на что-то? Я думаю нет. Тебе нужно простое ООП.
Вот у тебя есть клас Cell с твой клеткой, у неё есть поле проходимости. Далее есть само игровое поле это ждругой класс - оно спавнит эти селлы по какому-то закону. Ну например использует текстуру перлин нойза. Читаешь пиксель соответсвующий координате поля и проверяешь если значение пикселя больше порога, то спавнишь туда непроходимую клетку, если меньше порога - проходимую. Получается по сути что-то майнкрафтоподобное. Ну и карту в любом случае лучше хранить в текстуре, а не в тексте. В случае чего, ты можешь эту карту просто нарисовать и загрузить в свою дрочильню.
Так же имея Cell отдельным классом, легко навернуть чтобы она была не просто проходимой или непроходимой, а например имела цену прохождения по ней, как в Героях3. А так же у клетки может быть свой тип. Например: дорога, лес, вода, гора и.т.д.
В общем, не нужны тебе никакие матрицы.
6 1063077
>>075

> Сразу заспойлеру - это называется тайл мап


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

>типичные проблемы юнити-маркетологов



мимо свободный пользователь Godot
8 1063086
>>075

>тайп мап


>>077

>тайл мап


Юнити-маркетологи ленятся кинуть прямую ссылку?
https://learn.unity.com/tutorial/introduction-to-tilemaps

мимо великодушный пользователь Godot
9 1063087
>>054 (OP)
Если нужен редактор, не зависящий от движков:
https://www.mapeditor.org/

мимо щедрый пользователь Godot
10 1063088
>>075

>Ебанутый? Тут вопрос не в матрицах, а в левел дизайне.


Это ты ебанутый. Я вообще не занимаюсь левел-дизайном, спрайтовые тайлы мне нах не нужны.
Мне нужны совершенно абстрактные данные о карте, по которым игра потом сама построит карту по моим скриптам. Тупо 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д массивы.
11 1063089
>>088

> Это ты ебанутый. Я вообще не занимаюсь левел-дизайном


А чем ты занимаешься выстраивая структуру уровня?

> спрайтовые тайлы мне нах не нужны.


> спрайтовые


Чел, как бы тебе сказать... спрацт модет быть лишь индикатором того, что там.

> Мне нужны совершенно абстрактные данные о карте


Ты четко сказал про 0 и 1 - прохода нет, проход есть.

> по которым игра потом сама построит карту по моим скриптам. Тупо 2д массив, ничего больше.


> А ты заставил меня какой-то туториал в стиле рпг-макера смотреть, пидор.


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

> Не пользовался, 100% не могу утверждать, но Один умеет сериализовать двухмерные массивы:


В инспекторе выводить двухмерный массив чтобы заполнять карту - это джун минус уровень, юзабилити ужасное, производительность ужасная при редактировании.
12 1063091
>>089

>Юнитевская имплементация тайлмапы и есть этот удобный визуальный редактор, все что тебе надо сделать это данные с нее сконвертить в твой массив.


Ну ладно, если попердолиться то этот инструмент сойдет для моей задачи, прости что объявил тебя пидором.

>В инспекторе выводить двухмерный массив чтобы заполнять карту - это джун минус уровень


Игры же разных жанров бывают, не на рпг-макере ведь делаю. Под мою задачу хватит карт 10х10.
13 1063098
>>091

> Игры же разных жанров бывают, не на рпг-макере ведь делаю. Под мою задачу хватит карт 10х10.



Если 10х10 хватит то попроси нейронку сгенерить тебе редактор
14 1063106
>>098
Чем 10х10 принципиально отличается от 20х20 например?
15 1063108
>>106
10х10 я могу представить жизнеспособным вариантом в инспекторе, чтобы не заморачиваться
Обновить тред
« /gd/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах.Подробнее