Войти
Движок C++.Форум

Что вы хотите знать о разработке кроссплатформенного движка на C++. (комментарии) (3 стр)

Страницы: 1 2 3 4 59 Следующая »
#30
8:46, 10 дек 2014

Если серьёзно, то начинать надо с математики.
Надо найти математическую библиотеку, которая:
1) Имеет базовые типы Point2, Point3, Point4. Point2 должен быть как от int, так и от float.
2) Имеет базовые типы Rect (x, y, w, h),  Insects (left, top. right, bottom), которые умеют работать с Point2. Rect так же от int и float.
3) Имеет кватернионы.
4) Имеет базовые типы Matrix3x3 (2d трансформации, либо вращение/скейл в 3d), Matrix4x4 и Matrix3x4 (для оптимизации места при передаче в шейдер).
5) Весь набор операций с выше приведёнными типами.
6) Желательно 2d: полигоны с любой вложенностью контуров и логическими ф-циями пересечения, объединения, вычитания.
7) Желательно 3d: AABB, OBB, Plane, Ray, Frustum и ф-ции их пересечения.
8) Желательно всякая мелочь вроде линейной/сферической интерполяции, равенства в пределах eps и т.д.
Лицензия отдельный разговор...
Кто-нибудь знает математическую библиотеку, которая подходит под все условия?

#31
12:17, 10 дек 2014

the_siv
Погодь, не спеши. Ты будешь менеджить проект или лидить разработку? Тот факт, что ты разменяв 3й десяток решил заняться геимдевом похвально. Но может сначала расставим приоритеты? Зачем писать свой движок? Что бы поиграть с матрицами, покрутить кубы и бросить? Комментарий про Капланяна и Рудибира ты нарочно проигнорил?

#32
12:33, 10 дек 2014

lookid
Почему решил заняться? Занимаюсь уже 12 лет только геймдевом. И движок уже есть, но он не фришный и выкладывать я его не имею права, да и не хочу. Но открытых движков для казуальных проектов особо что-то нет...
>>Ты будешь менеджить проект или лидить разработку?
Буду и лидить, и менеджеть, если кто-то против, не проблема! Создавайте свой движок!
>>Зачем писать свой движок?
For fun.
>>Что бы поиграть с матрицами, покрутить кубы и бросить?
Возможно, хотя я и этого не обещаю. Покрутить кубы - это уже очень много работы надо сделать.
>>Комментарий про Капланяна и Рудибира ты нарочно проигнорил?
Да.

Собственно не понятен посыл сообщения: я никому ничего не должен, как и мне никто ничего не должен. Предлагаю из этого и исходить: хотите обсуждать - давайте обсуждать, хотите разрабатывать - давайте будем разрабатывать. Но требовать - это не ко мне.
По прежнему на повестке для стоит математическая библиотека. Далее смежный вопрос: code style - будет не красиво, если будет использоваться куча чужих решений и везде свой кодстайл, зоопарк какой-то получится.

#33
12:37, 10 дек 2014

Кстати, не такой уж я и древний, 3й десяток ещё не разменял, но уже скоро.

#34
21:02, 10 дек 2014

u960
> но может ограничится какой нить одной платформой?
Так а в чём профит? Сейчас модно разрабатывать маленькие игры под мобилки: это доступнее для начинающих программистов игр, проще найти работу именно разработчикам под iOS и Android, под декстопы и консоли на рынке труда требуются в основном супер профессионалы. Конечно же главное желание, если сильно хочешь писать под консоли и стремишься к этому, то наверняка рано или поздно этого добьёшься, но это будет сделать гораздо сложнее, чем найти кантору которая клепает игры под мобилки и вас взяли бы учеником на маленькую зп. Опять же кантор, которые делают ААА проекты и игры под консоли мало очень, они есть далеко не в каждом городе. ИМХО конечно же, но тенденция в целом такова.

#35
21:31, 10 дек 2014

Может взять за основу какой-нибудь cocos2d-x.org или gameplay3d.org? Просто я описал в самом первом комментарии что нужно для мобилки-движка. И оказалось, что с нуля это никто не писал.

#36
21:59, 10 дек 2014

lookid
Если их взять за основу, то что останется реализовать?

#37
0:28, 11 дек 2014

the_siv
> Кто-нибудь знает математическую библиотеку, которая подходит под все условия?
www.workstation.pro/docs/csad/html/namespacebt.html
> 1) Имеет базовые типы Point2, Point3, Point4. Point2 должен быть как от int,
> так и от float.
Да полностью поддерживается вся математика (не все функции для int реализованны).
> 2) Имеет базовые типы Rect (x, y, w, h),  Insects (left, top. right, bottom),
> которые умеют работать с Point2. Rect так же от int и float.
Rect и Insects представлены как Point4
> 3) Имеет кватернионы.
Да полностью поддерживается вся математика.
> 4) Имеет базовые типы Matrix3x3 (2d трансформации, либо вращение/скейл в 3d),
> Matrix4x4 и Matrix3x4 (для оптимизации места при передаче в шейдер).
С Matrix3x4 Matrix3x3 придется еще подумать, но есть 2d преобразования упрощенные (поворот).
> 5) Весь набор операций с выше приведёнными типами.
Да, если чего то не хватает то добавлю.
> 6) Желательно 2d: полигоны с любой вложенностью контуров и логическими ф-циями
> пересечения, объединения, вычитания.
Есть работа с массивами Point2, Point3, Point4 и функции генератора по работе с геометрическими объектами (но пока основная часть в старом проекте).
> 7) Желательно 3d: AABB, OBB, Plane, Ray, Frustum и ф-ции их пересечения.
И для 2D тоже есть (определение лево/право точка/прямая прямая/отрезок и тд).
> 8) Желательно всякая мелочь вроде линейной/сферической интерполяции, равенства
> в пределах eps и т.д.
Да но пока не все функции реализованы, и в некоторых немного другой подход. Например равенство через целочисленное сравнение, заранее приведенных и отмасштабированныx данных.
Кроме того тригонометрические и математические функции, плюс работа с ассоциативными списками и прочее.

В общем я для этой части полагаюсь полностью на свое творение.

#38
2:57, 11 дек 2014

the_siv
> Если серьёзно, то начинать надо с математики.
почему именно с нее? Все таки до тех пор пока куба на экране не будет, толку-то от математики?

Или куб уже есть?

the_siv
> Надо найти математическую библиотеку, которая:
например http://www.geometrictools.com/Source/Mathematics.html

#39
7:07, 11 дек 2014

u960
> Ну так бы и назвали тему! "движок на си++ под мобилки"
Ну пусть будет движок под мобилки.

foxes
> www.workstation.pro/docs/csad/html/namespacebt.html
Это ты писал? А зачем каждый тип Point написан заново (Point2, Point3, Point4), а не через шаблон (это первое что бросилось в глаза)?

war_zes
> Все таки до тех пор пока куба на экране не будет, толку-то от математики?
Как куб на экране появится-то совсем без математики? :) Даже камеру на сцене чтобы поставить и проекционную матрицу посчитать - уже математика нужна.
> например http://www.geometrictools.com/Source/Mathematics.html
Мощно. Это переписанный WildMagic на сколько я понял? Единственное нету полноценной работы с полигонами как я понял.

Обе математические библиотеки пока что подробно не изучал.

#40
7:13, 11 дек 2014

the_siv
> Как куб на экране появится-то совсем без математики?
? зачем там математика? хватит

struct Vector3 {float x,y,z;}

И то необязательно

the_siv
> Мощно. Это переписанный WildMagic на сколько я понял?
оно и есть. Они вторую версию движка пилят (WildMagic развился до 5 версии, а теперь делают GeometricTools).

#41
8:28, 11 дек 2014

war_zes
> ? зачем там математика? хватит
Дело в том, что цель не "сделать залипуху" и не "вывести на экран куб".

#42
8:47, 11 дек 2014

the_siv
В таком случае надо начинать с core кода (профилирование, логирование, сборка, платформа)... Я так сейчас и собираюсь сделать (тож заведу сообщество своего движка:) )

#43
10:05, 11 дек 2014

the_siv
> А зачем каждый тип Point написан заново (Point2, Point3, Point4), а не через
> шаблон
Реально это разного порядка сущности и то что свойственно Point2 не свойственно Point3, плюс начинка разная. На самом деле это обертки весь функционал существует самостоятельно и отработан для каждого типа как уникальный, и для каждой платформы.
Например:
http://www.workstation.pro/docs/csad/html/structs_functions_vecto… 5b62f6834553f
В свою очередь такой вид был принят для возможной гибкой оптимизации отдельных инструкций под определенную платформу.
А от шаблонов я сразу отказался по ряду причин, во первых основа на C, и дальнейшее использование математики подразумевает возможность писать код на C. Во вторых статичная вариативность шаблона заменена на динамические алгоритмы, для компактности.

Тоже самое с типами, есть ряд функций которые можно реализовать только для определенного типа иначе их свойства в корне меняются. Например расчет нормалей для целого числа производится иначе. Кроме того реализацию преобразование типов все равно приходится писать отдельно. В конечном итоге разница между шаблоном и обычным скопированным классом только в форме записи, по объему писанины все тоже самое. А то что в шаблоне можно сократить на сложении вычитании и других простых идентичных функциях это не стало весомым плюсом.

В конечном итоге эти классы были описаны для C++ как собирательные образы, и не являются приоритетными, но возможно я сделаю в последствии базовый шаблон. Можно прекрасно обойтись без них например вот так:

int v1[3];
int v2[3];
int v3[3];
...
vecFunctions.V3ICombine(v1,v2,v3,0.1,100); // v3=v1*0.1+v2*100;
#44
11:18, 11 дек 2014

Добрый день, я уже как-то в 2005 году задался этими вопросами, и у меня родился проект Mengine

http://svn.code.sf.net/p/menge-engine/code/trunk

>>Чтобы можно было сделать полноценный Тауер Дефенс какой-нибудь.
Я думаю на нем можно сделать полноценный ТД :)

могу предложить его за основу и продолжить разработку

ну или чем-то помочь :) есть опыт в любом озвученном в первом посте вопросе

Страницы: 1 2 3 4 59 Следующая »
Движок C++.Форум