М.Двач / Gamedev

Этого треда уже нет.
Это копия, сохраненная 19 ноября 2018 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

10 Кб, 500x500
Пытаюсь создать ядро для своего движка. 15 янв, 01:53 467969 В конец треда | Веб

Уже несколько месяцев решаю одну задачу.
Я хочу сделать так, чтобы люди которые занимаются разработкой 3D графики для игр(ы), фильмов, или каких-либо интерактивов, не суть... не просто тупо моделили вершинки и грани в Максе, а наделяли свои 3d сцены, хоть малейшей логикой или физикой или каким-либо интерактивом, ещё на стадии моделирования. И причем ! Тупо на стадии моделирования ! Где-нибудь в векторном редакторе. К примеру делает кто-то сундук с драгоценностями (ну под каких либо там "пиратов Карибского моря"). И видеть его творческая душа, что после попадания шпаги по крышке этого сундука, должно произойти следующее:
1) Крышка треснула
2) Золото издало звон внутри ящика
3) текстура древесины меняется на текстуру царапаной древесины.
4) Координаты Х и У сундучка, чуток translate в сторону.
5) 3D модель идеально целого сундука навсегда исчезла (выгрузилась) из памяти программы, заменившесь на какой-либо "Sunduk.Nadkolot"
6) после удара саблей, пробежала искра (пусть даже рандомных параметров). И в течении 5 сек пусть идёт из сундука дым, а вот параметры двма не рандомных, а вполне себе manual'ные клуб пара радиусом1 метр, и виден этот дым до 30 метров.
------
Приведенные выше цели - это весьма объективные цели.
Есть также и субъективные цели у сундучка:
1) уровень владения шпагой у ударяющего =+ 1
2) враги в радиусе Х метров обернулись в сторону того кто ебанутый шпагой этот сундук.... Но это ладно, эти задачи - они уже второстепенные. Они могут быть решены на уровне движка.
Вернёмся к первым 6 целям.
Я разрабатываю сейчас небольшой язык нет, даже не программирования, а скорее - язык моделирования. Задача в том, чтобы он был понятен далёким от программирования людям, художникам, текстурщикам и тд. Людям творческим. Но так, чтобы они могли излагать на нем свои простейшие задумки. И так чтобы код писать не в Ide куда-либо в страшные фигурные скобки, а просто добавлять в имя файла модельки или целиком сцены (если она представляет из себя съатаченные во единое целое, модели).
Если перевести мой первый пример с сундуком в естественный вид. То есть так как оно будет уже на компе :-) , то получится примерно такой список файлов:
1) sunduk(Ttxd_new_box.png).3ds
2) sunduk(v20).3ds
3) sunduk(v40).3ds
4) sunduk(v55-).3ds
5) sunduk(D5,).3ds
6) sunduk(D9,Zstuk.mp3).3ds
7) sunduk(D12, Ttxd_old_box).3ds
8) sunduk(D15-,P(100,5)).3ds

9) stuk.mp3
10) txd_new_box.png
11) txd_old_box.png

Поясняю
1) << всё хорошо. Сундук только-только проинициализировался. Он целый и имеет текстуру "целого сундука".
2) тоже самое но уровень детализации слабее. Так как для расстояния 20 метров
3) тоже самое но уровень детализации слабее. Так как для расстояния 40 метров
4) тоже самое но уровень детализации слабее. Так как для расстояния 55 метров. А вот знак "-" говорит о том что далее 57,58,.... 100500 метров сундук необходимо отключать полностью (visible = false).
5) после удара эквивалентного 5 кг
6) после удара эквивалентного 9 кг, атут ещё и звук удара проиграть!
7) после удара эквивалентного 12 кг, тут уже и текстуру сменим.
8) пар Диаметр 100 см , длительность 5 сек.
Разумеется игра не про сундуки какие-либо и сокровища, а сундук это чисто пример, для понимания. Это более простой пример просто.
Я прописал почти все вспомогательные функции которые необходимы для обработки главной логики интерпретатора моего языка.
Пишу на Паскале:

Function get_str_from_grp(Group:string;number:integer):string; function info_par(par:string):string; function is_par_in_str(stroka:string;par:string):boolean; function is_par_in_grp(List_obj:string;par:string):boolean; function get_Fname_str(code_obj:string):string; function get_Gname_str(code_obj:string):string; function get_kol_par(code_obj:string):integer; function get_par_from_str(stroka:string; par:integer):string; function is_lod_for_obj_in_grp(List_obj:string;name_object:string):boolean; function is_lod_for_obj_in_grp(List_obj:string;name_object:string):boolean; function get_metr_lod_for_object_in_grp(List_obj:string;name_object:string;Number_of_LOD:integer):integer; function info_finishing_for_obj_in_grp(List_obj:string;name_object:string):string; function get_par_obj_in_grp_for_dist(List_obj:string;name_object:string;metr:integer):string; function get_code_metra_for_obj_in_grp(List_obj:string;name_object:string;metr:integer):string; function is_DEF_in_group (List_obj:string;name_object:string):boolean; function is_l(par:string):boolean; function is_t(par:string):boolean; function is_c(par:string):boolean; function is_d(par:string):boolean; function is_f(par:string):boolean; function is_z(par:string):boolean; function is_a(par:string):boolean; function is_p(par:string):boolean; function is_o(par:string):boolean; function is_s(par:string):boolean; function is_m(par:string):boolean; function is_j(par:string):boolean; function is_plus(par:string):boolean; function is_minus(par:string):boolean; function is_w(par:string):boolean; function is_x(par:string):boolean; function is_e(par:string):boolean; function is_g(par:string):boolean;

Grp - это стриноговое значение в котором хранятся вообще весь список файлов объектов сцены. С разделителем "|||" (Типо всё что в доме, дверь.3Ds|||windowA.3ds|||windowB.3ds||| и тд.

Каковы вообще перспективы всего этого. Доделаю я это или нет? Все функции работают но порознь.
Если я перестану сейчас писать на Паскале и перейду на пролог, это будет лучше? Он справляется с такими задачами как у меня?
Притом меня рендер мало вообще интересует в игре, интересует больше логическая мощность движка. Рендер и пр можно взвалить на irlicht мли на Glscene. На что угодно

Ответы797879797994814383338372

15 янв, 03:37 2 467978

>>467969 (OP)
Ты какой-то ебанутый.

15 янв, 03:52 3 467979

>>467969 (OP)
Зачем ты описал блюпринты в анриле? Кому надо тот все это делает на них, даже визуализаторы.
Судя по всему ты ещё и не в курсе, что практически во всех 3д редакторах текущих используются ноды.

Ответы7993

15 янв, 09:42 4 467993

>>467979
У меня не ставится unreal. Вообще не ставится, 3 компа дома. Ни на один не ставится. Я знаю что такое блюпринт, но тут ведь другое немного.

15 янв, 09:59 5 467994

>>467969 (OP)
Шизик, плес

Ответы8137

15 янв, 15:52 6 468137

>>467994
Чё такого-то? Это типо система управления контентом без кодинга у него получится. Я так делал когдато, правда для Glscene

15 янв, 16:34 7 468143

>>467969 (OP)
>Уже несколько месяцев решаю одну задачу.
>суть токова...

15 янв, 16:56 8 468144

Это нинужна, можно прикрутить скрипт за пару минут

Ответы8173

15 янв, 17:19 9 468152

ЯННП оп хочет в 3d редактор засунуть свой скриптовый язык?

Ответы8173

15 янв, 19:03 10 468173

>>468144 Я это прекрасно понимаю. Создаём скрипт на Яве или С#. Пишем код. Добавляем глобальную переменную object, создаём ассеты и кидаем на объекты скрипт. Вуаля! Объекты поумнели, начали взрываться, перемешаться, прыгать, исчезать , появились свистели и переделки.
>>468152 нет. Но ты верно мыслишь. Я не в редактор скрипт хочу свой воткнуть, а в названия файлов (асетов). А игру(то есть пока не игру а интерпретатор), заставить понимать этот язык и "рендеринг" объекты согласна правильно этого скрипта.

Ответы8178

15 янв, 19:16 11 468178

>>468173
В связи с чем и пишу теперь синтаксический анализатор. А приведенные выше во главе поста функции, это вспомогательные функции для работы с отдельными токенами. Есть пару функций для анализа целых "предложений"(т.е целиком названий файлов с асетами. Но предо мной сжвозникла новая задача. Теперь необходимо начать программировать как бы "в глубину", то есть писать подпрограммы для расчета расстояний от камеры до объектов, предусмотреть степени разрушаемости объектов, предусмотреть всё так, чтобы всё это взаимодействовало.
Перед собой пока не ставлю цели интегрировать сразу всё это куда-либо в юнити тем в unreal, нет. Просто пытаюсь создавать обычные dll ки с функциями и логикой. Хочу довести дело до того, чтобы оставить профессиональным движкам задачу тупо рендерить треугольники, а свои функции поместить в update куда-либо. ну вы поняли короче. Апотом... Хоть на все четыре стороны. Хоть на Glscene игру можно делать. Импортируй(линкуй функции) из dll и всё. Пили контент спокойно. Нет ну разумеется сам очновной сценарий игровой пишется иначе. Но. Почтой решаю задачу по обработке самого контента.

16 янв, 00:09 12 468333

242 Кб, 940x504310 Кб, 1436x9535,1 Мб, mp4,
1152x720, 2:48

>>467969 (OP)
>Пишу на Паскале:
Нахуй тебе это говно мамонта, пиши на божественом C# он очень легко учится, скоро обновится до версии 8.0 и будет работать еще быстрее.

Мог бы тебе С++ рекомендовать учить, но он сложный язык и его нужно долго учить, там много подводных камней.

Лучше переходи к визуальному програмированию, с разноцветными окошечками, символами и буковками это намного лучше чем методы и логичнее.

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

Разбей все програмные действия на элементарные функции и как кирпичик строй свое приложение.

Ответы83408342

16 янв, 01:28 13 468340

>>468333
> >Пишу на Паскале:
> Нахуй тебе это говно мамонта, пиши на божественом C# он очень легко учится, скоро обновится до версии 8.0 и будет...
Да , ты прав. Я месяц назад начал заниматься потихоньку Sharp. Освоил типы переменных и их диапазоны зеачений. Базовые конструкции и структуры погонял. Сам себе экзамены всякие и тесты каждый день придумываю короче.

> Лучше переходи к визуальному програмированию, с разноцветными окошечками, символами и буковками это намного лучше чем методы и логичнее.

Это тоже верно. Я прислушаюсь к совету.
Вот эта вот моя любовь к минимализму на черном фоне. (А также и всех таких же консольщиков ), берёт свои истоки с детства, со школьных уроков информатики наверное. )) Сам не знаю. Привычка скорее какая-то. Весь маленький у приложений. Юсесов практически нет лишних. хуля , там один uses - System чаще свои тупо пишу.

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

Ответы83418355

16 янв, 01:31 14 468341

>>468340
Забыл спросить, а сам в какой среде шарпуешь? Microsoft visual studio? Или какие может ещё IDE'шки

16 янв, 01:32 15 468342

>>468333
Забыл спросить, а сам в какой среде шарпуешь? Microsoft visual studio? Или какие может ещё IDE'шки

Ответы8353

16 янв, 03:23 16 468353

>>468342
>Microsoft visual studio?
Да.
Вот качаешь бесплатную
https://www.visualstudio.com/ru/vs/community/?rr=https://ru.wikipedia.org/
Потом регаешся в микрософте и у тебя будет вечная легальная лицензионая IDE, тебе это хватит за глаза.

Ответы8354

16 янв, 03:28 17 468354

>>468353
Еще добавлю
В самой visual studio есть пакетный менеджер NuGet о туда можно скачивать готовые библиотеки чтобы не тратить время на написания велосипедов.

16 янв, 03:52 18 468355

>>468340
Скачивай эту книгу, и изучай она небольшая но будешь в курсе в актуальных и подерживаемых конструкций языка.
https://rutracker.org/forum/viewtopic.php?t=5507518

Вот еще сайт полезный: https://metanit.com/sharp/tutorial/1.1.php
Там в жатом виде преподносится инфа.

http://nnm-club.name/forum/viewtopic.php?t=1053230

Вот еще видео в котором хорошо объясняется ООП на практике, когда то покупал на сайте подписку на месяц и скачивал материалы.
Это очень полезный материал для тех кто хочет научится писать красивый оптимизированный код.
Я думаю тебе это будет полезно.
https://infobit.me/threads/volosatov-teorija-oop-na-praktike-2015.15581/

16 янв, 10:11 19 468372

>>467969 (OP)
>Пишу на Паскале:
СУУУКА! КАК ЖЕ БОМБАНУЛО, БЛЯДЬ! А Я-ТО ДУМАЮ, ЧТО МЕНЯ ИГНОРЯТ В НУБОТРЕДЕ!
ЕБУЧИЙ ШИЗИК, НАХУЯ ТЫ ВСЕХ ПАСКАЛИСТОВ ЗАШКВАРИЛ!? НА ПАСКАЛЕ ОН ПИШЕТ! НАХУЙ ПОЙДИ, МРАЗЬ!

Ответы837883808384

16 янв, 10:51 20 468378

>>468372
А чё тебя-то бомбит?
Ну пойди уебись об стену если хуево. Черт ебать

16 янв, 10:52 21 468380

>>468372
> ВСЕХ ПАСКАЛИСТОВ ЗАШКВАРИЛ!?
За себя сам отвечай

Ответы8384

16,5 Мб, webm,
1920x1080, 0:50
16 янв, 11:03 22 468384

>>468372
>>468380
>За себя сам отвечай

Тред утонул или удален.
Это копия, сохраненная 19 ноября 2018 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /gd/В начало тредаВеб-версияНастройки

/a//b//mu//s//vg/Все доски

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