Ответ: Пишем 3D движок - замену Xors3D
Цитата:
Цитата:
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Как дела?
|
Ответ: Пишем 3D движок - замену Xors3D
Вопрос риторический.
На это обречено 95% "движков", которые крутят кубики с бампом. |
Ответ: Пишем 3D движок - замену Xors3D
Все движки имеют кубик с бампом, не все разрабы этим "хвастаются".
|
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
Из текущих проблем/задач: 1. AI - симуляция огромного числа NPC минимальными ресурсами (возможно утопия) 2. Рендер воксельного мира с использованием marching triangles. 3. Система плагинов. 4. Оптимизация GUI 5. Отладка новой версии Oculus Rift Поймал себя на том, что движок стал походить на зачаток майнкрафт... :-D Кстати, работаю в этом направлении тоже. :) |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
Если сфокусировался бы например только на Render движке, то его уже можно было бы использовать и народ бы либо сам писал свои AI и т.п. решения, либо даже контрибютил в твой двиг. |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
И да - я знаю что клонов майнкрафта сотни. Но хочется не клон - а нечто новое. Xorex, давай в личке обсудим возможное сотрудничество. P.S. На сайте гейм-института скидка 50%. Если кто-то интересуется книгами, лекциями другими материалами - рекомендую! Хоть и на английском, но всё понятно написано. (Не сочтите за рекламу) |
Ответ: Пишем 3D движок - замену Xors3D
Модульность движка, и возможность подключить физику - порой бывает весьма сложной задачкой. Возьми тот же Bullet и физика у тебя уже будет на уровне.
AI - это совсем абстрактная и игровая сфера, не относится к рендер движку вообще. Вообще движки разбивают на слои, более низкие такие как обертка над GAPI и работа с буферами, шейдерами, звуком, физикой, затем идут более абстрактные - граф сцены, материалы, AI, .. - это все фреймворк. Так вот разделить на 2 слоя "обязательно" если ты не хочешь снова все переписывать в будущем. Также писать под одну заточку (minecraft) не расценивай тогда двиг как рендер-двиг, расценивай его как minecraft-двиг, т.к. применение узко-заточенных движков в других сферах почти всегда будет не возможным, или просто не удобным. |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
Цитата:
потом столкнулся с задачей перевести всё на DX10, и выяснилось, что движок был к такому не готов, и многая логика работы и архитектура даже между DXами отличается, что уж там говорить о GL :-) Пришлось вставлять очень много нелепых костылей. Короче, пока ты не знаешь все GAPI (не писал на каждом что-то завершённое), не имеет смысла заморачиваться со слоями - только много (очень) времени просрёшь на эти никчёмные абстрагирования на "будущее". Забей на слои, абстракции вообще, просто херачь, будет продуктивнее) |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
Слои, не всегда выход. Точнее модульность можно обеспечить не обязательно слоями, а например где то на уровне сборки компонентов, где каждый работает напрямую с целевым гапи - меньше оверхеда, проще код. Цена универсализации может быть непомерно высокой. |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
Я не говорю об убер-абстракциях как в том же Ogre. Речь идет тупо о расслоении работы с матрицами и буферами и текстурами, и графа сцены. Если чтобы заменить то как производится работа с математикой - это переписать 90% всего двига, то это уже перебор. Или если у тебя индексные буфера "знают" о существовании графа сцены (это нужно постараться), и делая изменения в графе сцен, у тебя все нахер - так далеко не "попишешь".. Композиция кода должна быть нормальной, не убер-абстрактной, но и не кросс-зависимой по каждому "пуку". |
Ответ: Пишем 3D движок - замену Xors3D
Банальный пример:
В DX10-11 есть InputLayout, то же что и VertexDeclaration в DX9, НО если в дх9 он создавался из нескольких руками заданных структур с параметрами, то в 10-11 тебе нужно иметь скомпилированный VS для его создания. Фишка в том, что в 9 на дроуколах много оверхеда была из-за адаптирования вертексдекларации к входной структуре каждого шейдера, а в 10-11 решили оставить это на препроцесс, убрав каждокадровый оверхед. Вот только у меня в движке декларация ничего не знала о шейдерах, я её вообще считал частью меша (ну типа описывает как парсить VB), а шейдеры существовали где-то в параллельном мире. Пришлось делать костыли. Второй пример - рендер стейты. В DX9 можно когда попало какие ставить, в 10-11 ты должен заранее создавать блоки стейтов и переключать их целиком. У меня в движке слишком рандомно менялись стейты by design, пришлось вставлять ещё костыль, который в рантайме чекал все стейты, искал в мапе похожие блоки, если не находил - создавал новые. |
Часовой пояс GMT +4, время: 02:18. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot