Главная Юзердоски Каталог Трекер NSFW Настройки

Gamedev

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 9 4 7
ECS своими руками Аноним 26/04/24 Птн 01:39:34 947107 1
1714084769110.jpeg 27Кб, 476x436
476x436
1714084769131.jpeg 1903Кб, 4000x3000
4000x3000
1714084769855.jpeg 3833Кб, 4000x3000
4000x3000
1714084770768.jpeg 3567Кб, 3000x4000
3000x4000
Вот уже месяц, свободными вечерами после работы пишу УБИЙЦУ Unity, Unreal и Rage!. Решил я написать свою систему ECS. Честно признаюсь, до этого я не знал, что она уже существует. И даже то, что она называется ECS я случайно узнал лишь пару недель назад. Просто однажды мне пришло в голову, что было бы неплохо загнать всё объеткты и сущности игры в единую таблицу. Я решил использовать двухмерный массив. Изначально я даже назвал это всё Arlog. Логика в массиве.
Брать готовые наброски чьи-то или использовать какие-нибудь фреймворки не стал. Хочу на выходе получить логически-законченное приложение, которое способно хранить и обрабатывать огромное количество данных в табличном виде типо (пик) . Символ A - это чисто для себя назвал абстракцию ячейки в массиве. Символ В - это split ячейки. Т.е ещё меньшие доли ячейки |х|у|z | и т.д.. т.е B это самая минимальная атомарная часть данных..
..
Конечно же основная цель - это выпускать на этом движке массу увлекательных игрушек, убийц GTA / Worldoftanks/.. Minecraft/ и пр пр..
На деле, хоть бы убийцу тетриса написать сперва))..

Короче говоря, если серьезно, то написал уже больше двух десятков функции и процедур, целевая задача которых - это прочёсывание огромного двухмерного массива Objects на предмет поиска тех или иных ячеек с данными.

На пике изображена и распечатана минимальнейшая тестовая табличка с пятью объектами (* х5 экземпляров для каждого класса объектов) . Такие объекты как cat, man, sun, box, и даже god с одним лишь единственным параметром "Любовь".
Но это всё просто для абстракции придумывал просто на ходу, суть не в этом.
Главные, базовые структуры каждой структуры данных в этом моём недодвижке, это строчки в первом элементе каждой строки.. ну к примеру хочу я создать человечка. Пишу задающую строку для него. Сначала название объекта во множественном числе, потом в единственном. (Потом объясню зачем во множ. задумывалось)

Mans|man|#0|#x|#y|#power|@name
Первый токен #0 означает количество экземпляров данного класса. Туда не лезем, а просто указываем что это Int символом решетки, и ставим значение 0 соответственно. По мере того как движок случайно или преднамеренно будет добавлять/клонировать экземпляры какого-нибудь класса, он сам будет изменять это значение на 1,2,3.. 5835...и т.д. Ну или командой функцией типо:
AddA("man", 36, 82, 10, Anon )
Можно это самостоятельно сделать. И двиг добавить в таблицу новый экземпляр какого-нибудь очередного Васька в список man.
Поскольку каркас уже обозначен в крайней левой ячейке n x 0, то транслятор уже не задаёт ебанутых вопросов, типо что такое 36, 82, и тем более Anon.
Он понимает что это x, y , name
Все функции на пике 2. Это я тестировал их.
Загвоздка у меня возникла с функцией удаления DelA(.....
Пытаюсь научить компилятор понимать просьбы "человека" типо этой:
DelA("car", x,y = 356,862);

Что означает удалить все машины, у которых x = 356, a y = 862. (Решил параллельное присвоение использовать , под него проще синтаксический анализатор было сделать), нежели под х = 375, у = 903, z =.....

Короче говоря, практически все "низкоуровневые" функции я прописал и программу научил их понимать и выполнять. А из непосредственно высокоуровневых функций будут типо отыскать все экземпляры где live жизни <= 0 , а затем удалить их. Или же такие функции как установить значение #y для всех экземпляров класса "stone" y-- если камень который был под ним, исчез. И т.д. ну это все примеры разумеется.

Ну а как доточу последние штрихи, то кину эти все команды в loop необходимо уложиться в 30-45 миллисекунд чтобы укладываться в 25-30 кадров/с рендеринга

Как думаете , получиться что-нибудь из этого всего? Можно ли хоть что-то типо Bejeweled будет написать на этом всём?
Аноним 26/04/24 Птн 01:51:57 947109 2
>>947107 (OP)
Заранее сори за очепятки смешные, сам сижу рофлю щас.. перечитал охуел.
> Как думаете получитЬся ли ?
Конечно же получится)
Аноним 26/04/24 Птн 11:43:31 947127 3
Во первых, ты не совсем понимаешь чем занимается игровой движок. Это шейдеры-хуейдеры, люмены-хуюмены, скелетная анимация и прочее. И в создании игр, погроммирования процентов 10% в самом сложном случае, остальноэ то работа художников, аниматоров и других бесполезных гуманитариев.

А ты просто угораешь по программированию, изобретая велосипедные структуры данных на основе хешмапа. В этом разделе ты вряд ли найдешь поддержку, ибо тут 3.5 анона, умеющих хоть как-то сносно кодить
Аноним 26/04/24 Птн 11:52:28 947129 4
>>947109
> получиться
Мдэ, ну и движкописи пошли..
Скажу честно, читал пару строк вначале, середине и в конце.
По уровню ебанутости ты движкопися обыкновенный.
Поэтому курс лечения можешь начинать с легких нейролептиков, Кветиапин 100мг, 1 раз в день.
Аноним 26/04/24 Птн 11:56:30 947130 5
>>947107 (OP)
Нахуя ты каждую неделю высираешь новый тред фантазий? Они же все как под копирку.
Аноним 26/04/24 Птн 13:05:52 947141 6
>>947130
Я первый раз это сюда пишу. Не знал что у меня уже есть последователи . ЪАХ АХ АХ Аааа..
Покажи хоть эти простыни, интересно взглянуть
Аноним 26/04/24 Птн 13:12:53 947145 7
>>947127
Да я понимаю, что я не раскрыл тему шейдеров и всех этих алгоритмов поиска пути, Lens flare, collide, bones/object анимаций и пр.
Я хочу попробовать скроить из всего этого хотя-бы симулятор какого-то муравейника. С видом сверху.
Понятно понятно дело что я шучу насчёт GTA и Майнкрафт))
Аноним 26/04/24 Птн 14:12:50 947160 8
Аноним 26/04/24 Птн 17:02:50 947190 9
>>947160
>Ведь есть bevy.
чот тебя рано из дурки выпустили
Ответить в тред Ответить в тред

Check this out!

Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов