Бери OGRE3d для рендера, и там ещё поддержка уровней кваки есть.
Формат уровней и редактор тоже из кваки бери.
http://www.gamedev.ru/code/forum/?id=16153#m7
> Я вообще с некоторого времени решил оказаться от использования таких классов, как CApplication, CEngine, CEngineManager, CManagerManager.:) Это красиво, но это замедляет работу, усложняет код и требует больше времени на разработку.
> Сейчас у меня всё вообще на функциях. Функция Init(), Run(), DrawScene(), Это отнюдь не мешает, даже в большом проекте. ООП надо использовать там, где оно необходимо.[/i]
Учту.
Ещё вопрос: мне нужны будут объекты класса "вектор" или это всё имхо автора из http://www.gamedev.ru/code/forum/?id=16153&page=3#m31 ?
http://www.gamedev.ru/code/forum/?id=16153&page=6#m76
> В момент взръва просто тот истребитель, что летел уничтожается и на его место вставляется группа обьектов, частей истребителя, которъе имеют с ним обшее лиш как геометрия и начальнъе параметръ для физики.
Кстати, да, ещё как-то нужно сделать разрушаемость... Как вариант сгодится.
http://www.gamedev.ru/code/forum/?id=16153&page=6#m79
> Как я для себя резюмировал, прежде чем делать истребитель - подумай о том, как он будет уничтожен :) Н-да, чтобы самолёт "правильно" рассыпался, надо его сперва "нарезать" на обломки, а потом их только раскидать в разные стороны. Тут уже искать компромисс между реалистичностью и возможностями компьютера. А если резать геометрию "влёт"? Скажем - летит себе подразделение истребителей, а в поле стоит инженер Гарин со своим гиперболоидом и лучом рассекает аппараты на части - как ножом сало? Куски произвольной формы получаются. Заранее не разрежешь... Правда и резать геометрию модели в рантайме - чё-то фантастика какая-то :)
Хах))
http://www.gamedev.ru/code/forum/?id=125072#m0
>Всё кроме физики у меня есть - самописное. Я решил что я хоть и сумасшедший, но не настолько, чтоб писать ещё и физ. двиг, поэтому юзаю ODE.
По крайней мере теперь точно понятно, что обычно за физику в играх отвечает физ.двиг. {Фак, почему эта инфа не гуглится прямым текстом?}
Судя по Движок (игровой движок), физика в играх реализуется именно через физ.двиг. Но я всё ещё немного сомневаюсь... может мне физику всё-таки лучше делать не через физ.двиг?
http://www.gamedev.ru/code/forum/?id=49158#m2
> Вообще движки пишутся от года до двух лет 8)) по-моему это не короткий срок.....
Фак Х(
Нашёл онлайн-самоучитель по созданию 3D-игр с помощью DirectX на сайте Microsoft
https://msdn.microsoft.com/ru-ru/library/windows/apps/hh452744.aspx
Пошёл вкуривать...
Epsilon
> Хочу сделать двиг. Чё посоветуете?
Бери существующий, делай игру и вноси в существующий двигатель возможности, которых в нём ещё нет - http://urho3d.github.io/documentation/1.5/index.html
Присоединяйся - http://www.gamedev.ru/community/urho3d/ (инфа немножко устарела. Сейчас он ещё круче - http://urho3d.github.io/ )
Саша123
Вообще-то заманчиво. Но всё же попытаюсь создать свой.
Epsilon
> Вообще-то заманчиво. Но всё же попытаюсь создать свой.
Это движкописатель.
Расходимся, посоны. Игры не будет.
Epsilon
> Как я для себя резюмировал, прежде чем делать истребитель - подумай о том, как
> он будет уничтожен :) Н-да, чтобы самолёт "правильно" рассыпался, надо его
> сперва "нарезать" на обломки, а потом их только раскидать в разные стороны. Тут
> уже искать компромисс между реалистичностью и возможностями компьютера. А если
> резать геометрию "влёт"? Скажем - летит себе подразделение истребителей, а в
> поле стоит инженер Гарин со своим гиперболоидом и лучом рассекает аппараты на
> части - как ножом сало? Куски произвольной формы получаются. Заранее не
> разрежешь... Правда и резать геометрию модели в рантайме - чё-то фантастика
> какая-то :)
Воксели. Никакой фантастики.
Epsilon
> Я вообще с некоторого времени решил оказаться от использования таких классов,
> как CApplication, CEngine, CEngineManager, CManagerManager.:) Это красиво, но
> это замедляет работу, усложняет код и требует больше времени на разработку.
> Сейчас у меня всё вообще на функциях. Функция Init(), Run(), DrawScene(), Это
> отнюдь не мешает, даже в большом проекте.
вы наверное не писали еще проектов по 50к строк кода) и 50к это еще не большой а так себе.
представляю 900 API типа
cameraMove()
cameraSetFOV()
cameraSetProjection()
cameraSetView()
cameraCullingMethod()
cameraCutoffDistance()
cameraCutoffDistanceParticles()
....
cameraGetPosition
terrainGetWidth
terrainGetHeight
....
Ren
> Воксели
Боюсь воксели для меня сложновато.
Mira
> вы наверное не писали еще проектов по 50к строк кода) и 50к это еще не большой
> а так себе.
Мой максимум 1,5к.
И там, про классы, не моё мнение -- это цитата по ссылке.
Mira
Отредактировал #16-пост. Теперь стало яснее, где мой текст, а где цитирование чужого?
Epsilon
Ну зачем тебе все это?) может подумаешь еще раз?))
Есть прекрасная тема уже на 200+ страниц, благодатнейшее поле для флуда, Возвращение дерехтора с новыми идеями, все дела, а ты движки писать, не понимаю я тебя.
Epsilon
вот так уже читабельнее
//PS эпсилон эксперт по созданию флудотем)
Epsilon
> Боюсь воксели для меня сложновато.
Боюсь что рассекание моделей реалтайм на новые модели - посложнее вокселей.
Что значит "const" в прототипе функции
FLOAT D3DXVec3Length(// Возвращает модуль CONST D3DXVECTOR3* pV // Вектор, чью длину мы вычисляем );
?
emptiness_rain
> Есть прекрасная тема уже на 200+ страниц, благодатнейшее поле для флуда,
> Возвращение дерехтора с новыми идеями, все дела, а ты движки писать, не понимаю
> я тебя.
Как ни странно, но я хочу результата (релиз), а там ничего кроме флуда.
Mira
> //PS эпсилон эксперт по созданию флудотем)
Да ладно, всего-то пару раз было))
Ren
> Боюсь что рассекание моделей реалтайм на новые модели - посложнее вокселей.
Epsilon
> не моё мнение -- это цитата по ссылке.
Это лишь чужая цитата, мне так круто не нужно.
И всё-таки у меня всё ещё остаётся открытым вопрос: как можно нарисовать на мониторе 3D-объект? С помощью DirectX знаю-умею. Но лучший ли это вариант?
Конец первых суток: готов стартовый кусочек инициализации ДайректЭкс.
[file=118548]
P.S.: Дальше будет интереснее ;)
P.P.S.: Разрешаю {конструктивно} покритиковать исходный код.
Epsilon
> Что значит "const" в прототипе функции
>
> FLOAT D3DXVec3Length( // Возвращает модуль
> CONST D3DXVECTOR3* pV // Вектор, чью длину мы вычисляем
> );
Это значит что в поля вектора можно смотреть но нельзя их менять.
Лучше бы ты взял готовый движок :)
Epsilon
> - написать двиг не хуже, чем у Quake;
Epsilon
> Как ни странно, но я хочу результата (релиз)
Я думаю комментарии тут излишни)
Освещение и текстурирование сегодня не успеваю.
Итоги вторых суток:
- инициализация DX;
- вершинно-индексная геометрия;
- наброски уровней (это позже).
[file=118579]
В демке: крутящийся кубик (пока рисуется через wireframe) вокруг которого можно нарезать круги (WASD-англ-раскладка) и вертеть камерой.
P.S.: Escape -- выход из проги.
Тема в архиве.