AMM1AK
Хорошо,задам 2 вопрос.Возможно ли используя все перечисленные библиотеки и GLSL написать игру на C++? Без создания движка под неё.
nes
Нужен он для того,чтобы было комфортабельно выпускать и пилить обновления для самой игры,ну и для создания подобных клонов игре.Но скорее 1 вариант.
AMM1AK
а что насчёт 3д математики?
EnderGames
> Возможно ли используя все перечисленные библиотеки и GLSL написать игру на C++? Без создания движка под неё.
без движка нельзя
даже если берёшь готовый движок общего назначения (Unity3d, Unreal), там как правило ничего нет конкретно для твоей игровой логики, так что пишешь движок в движке
другое дело, что можно не отделять движок от игры, но это всё равно придётся делать для второй игры, ну или писать всё по-новой, забыв что чего-то когда-то там было
#!
В целом сколько времени у меня может занять полноценное обучение от мат части до написания движка и игры?
EnderGames
В смысле что насчёт 3д математики? Если ты про библиотеку, то советую glm. Векторы, матрицы, кватернионы, а так же ещё много всего полезного есть в этой легковесной шаблонной библиотеке.
Или ты имеешь в виду, нужны ли знания линейной алгебры для разработки движка? Несомненно, нужны.
EnderGames
> сколько времени у меня может занять полноценное обучение от мат части до написания движка и игры?
да кто ж тебя знает? может забросишь на второй неделе
для достижения одного и того же результата можно использовать разные подходы и инструменты, т.е. можно расти в этом смысле, при том, что визуально это всё те же треугольники или кубы
характерный пример
https://gamedev.ru/flame/forum/?id=237272
AMM1AK
Нет,я про сам матан,в смысле как и где юзать из математики.
AMM1AK
https://www.youtube.com/watch?v=UTumRlKMi-w я пока только эту лекцию прошел
EnderGames
Ты на верном пути! Продолжай изучение 😃
AMM1AK
Это сарказм?
https://github.com/RandyGaul/ImpulseEngine
вот тут есть и физика, и рендер и маткматика
EnderGames
Нет! Как ты собрался работать с графикой, не зная основ линала?
EnderGames
> В целом сколько времени у меня может занять полноценное обучение от мат части до написания движка и игры?
лет 10 на движок и 10 на игру, как и сказали выше. Игра будет сразу практический, но чтобы её продать и понять что и как надо продавать как раз уйдет года 4 после релиза сырого и недоделанного движка.
Кроме всего прочего требуется оптимизация движка, шейдеры, скелетная анимация, поддержка различных 3д форматов анимации и моделей. GI, продвинутый GI типо lumen, PBR концепция, физика, разрушения через voronoi, генерация ландшафта через voronoi, различные паттерны проектирования типо: фабрика, builder и т.д. Entity Component System, VAT запекание анимации в текстуру для массивных сражений или больше 16 персонажей на экране. Различные VFX системы. Сортировка, множественная сортировка, параллельность операций или потоки, где что хранить (какая структура или коллекция имеет какую скорость вставки, обращение к объекту коллекции, удаление из коллекции). Как распределяется память в коллекции, что такое hash, что такое коллизия коллекций, что такое вёдра.
Трассировка, пересечение прямых и плоскости, отсечение по плоскости, BSP, Voxel'и он же Octree, бинарные деревья, RTree.
UI реализация через model view или там шейдеры, редакторы UI, мира. Тени, запекание теней, запекание отражений. SSS материалы, постэффекты: SSAO, Blum, DOF, растянутый синий свет от фонарей или фар (забыл название), растянутые тени от объекта под солнцем (вроде shuffle или что то такое), виньетка. SDF, облака, realtime освещение, смена погоды, мох, снег, песок, звук при ходьбе от материалов под ногами, ландшафт, слои ландшафта, tesselation ландшафта, parallax, забыл название в UE используется когда находясь рядом с объектом, мы можем растекаться по нему как лизун вокруг его формы за счёт этой карты. Физика частиц на стороне шейдера) Одно изучение UE займет лет 20, а чтобы его написать наверное и всей жизни не хватит, а раз это будет хуже, то на движок даже не посмотрят (то есть движок не продать).
На личном опыте я выдохся уже на этапе разрушений, моделировании и математике BSP.
В самопальных движках основная засада даже не код, а отсутствие хотя бы внутреннего маркетинга и поддержки.
Т.е. когда тебе понадобятся артисты для игры, ты их низачто не затянешь в своё поделие вместо мейнстримных.
Но помирают обычно раньше. Некоторые даже до кватернионов не доходят )))