М.Двач / Gamedev

26 Кб, 970x360
Матрицы в геймдеве 2 дек, 13:31 1063054 В конец треда | Веб

Анон, а ты считаешь нормальным что самый популярный игровой движок не дает удобных инструментов работы с матрицами из коробки?

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

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

Ответы065075087

2 2 дек, 14:36 2 1063065

>>1063054 (OP)
Хз при чем тут сам движок, у тебя же есть язык программирования С#, не хватает какого-то класса и оппераций с ним - пишешь его сам. Всегда так делаю для Анрила, только у нас кресты. И в 95% случаев все там уже написано до нас.

Ответы071

3 2 дек, 15:08 3 1063071

>>1063065
К движку претензий не имею. Вопросы к среде разработки, к базовым функциям редактора.
Нахуя нужны какие-нибудь йоба-АИ инструменты, несколько компонентов для работы с анимацией, несколько разных систем ЮИ, несколько разных рендер-пайплайнов когда нет базовых функций которые нужны 50% разработчиков?
Может лучше бы разработчики велосипедили свои системы анимации и ЮИ? Это как-то намного логиченее чем заниматься жалкими 2д массивами.

Ответы076

4 2 дек, 15:25 4 1063075

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

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

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

Ответы077086088

5 2 дек, 15:25 5 1063076

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

Ответы088

6 2 дек, 15:26 6 1063077

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

Ответы086

7 2 дек, 16:14 7 1063084

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

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

8 2 дек, 16:17 8 1063086

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

мимо великодушный пользователь Godot

9 2 дек, 16:21 9 1063087

>>1063054 (OP)
Если нужен редактор, не зависящий от движков:
https://www.mapeditor.org/

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

10 2 дек, 16:31 10 1063088

>>1063075
>Ебанутый? Тут вопрос не в матрицах, а в левел дизайне.
Это ты ебанутый. Я вообще не занимаюсь левел-дизайном, спрайтовые тайлы мне нах не нужны.
Мне нужны совершенно абстрактные данные о карте, по которым игра потом сама построит карту по моим скриптам. Тупо 2д массив, ничего больше.
А ты заставил меня какой-то туториал в стиле рпг-макера смотреть, пидор.

>Один никак не решает эту задачу.
Не пользовался, 100% не могу утверждать, но Один умеет сериализовать двухмерные массивы: https://odininspector.com/attributes/table-matrix-attribute#:~:text=The%20TableMatrix%20attribute%20is%20used,%7D%2C%20%7B%20null%2C%20ExampleHelper.
Мне этого более чем достаточно, сделаю просто двухмерных массив с типом bool.

>>1063076
По повду твоей задачи, я не знаю зачем тебе именно матрица. Игровое поле - это просто игровое поле.
Тут ты прав конечно. Мне по сути нужна просто удобная работы с 2д массивами в редакторе, математика не нужна почти.
Только вот блядский Юнити не умеет сериализовать 2д массивы.

Ответы089

11 2 дек, 16:38 11 1063089

>>1063088
> Это ты ебанутый. Я вообще не занимаюсь левел-дизайном
А чем ты занимаешься выстраивая структуру уровня?
> спрайтовые тайлы мне нах не нужны.
> спрайтовые
Чел, как бы тебе сказать... спрацт модет быть лишь индикатором того, что там.
> Мне нужны совершенно абстрактные данные о карте
Ты четко сказал про 0 и 1 - прохода нет, проход есть.
> по которым игра потом сама построит карту по моим скриптам. Тупо 2д массив, ничего больше.
> А ты заставил меня какой-то туториал в стиле рпг-макера смотреть, пидор.
Для твоей задачи нужен нормальный визуальный редактор, чтобы иметь какое то превью карты, масштабировать, делать заливку.
Юнитевская имплементация тайлмапы и есть этот удобный визуальный редактор, все что тебе надо сделать это данные с нее сконвертить в твой массив.
> Не пользовался, 100% не могу утверждать, но Один умеет сериализовать двухмерные массивы:
В инспекторе выводить двухмерный массив чтобы заполнять карту - это джун минус уровень, юзабилити ужасное, производительность ужасная при редактировании.

Ответы091

12 2 дек, 17:16 12 1063091

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

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

Ответы098

13 2 дек, 17:39 13 1063098

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

Если 10х10 хватит то попроси нейронку сгенерить тебе редактор

Ответы106

14 2 дек, 18:19 14 1063106

>>1063098
Чем 10х10 принципиально отличается от 20х20 например?

Ответы108

15 2 дек, 18:42 15 1063108

>>1063106
10х10 я могу представить жизнеспособным вариантом в инспекторе, чтобы не заморачиваться

Обновить тред
« /gd/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

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

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

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion