Горячая новость:
Поиск по сайту
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Компьютерная техника » Программирование » Разработка графического 3D-движка с нуля (Нужна помощь в абсолютно в во всем - движки ни разу не писал)
Разработка графического 3D-движка с нуля
Дата: Четверг, 17.02.2011, 00:45 | Сообщение # 1
Iexpmhihx
VIP
Curcuit King
Сообщений: 685
Репутация: 60
Статус: Offline
Здрасте... А вот и я biggrin
В общем хлобцы выручайте кто чем может...
Поступая в универ имел задачу не просто выучиться на программиста, а стать создателем наших любимый компьютерных игр.
Посему сейчас, на 3-ем курсе, хочу определиться и начать делать дипломную работу, цель которой - написать хотя бы простенький 3D движок(Комплит вершен - графика, физика, звук все в одном) с простенькой графикой, хотя бы каким-нить звуком и более-менее реалистичной физикой.
Знаю C\C++, C#, учу Java, который кажется до безумства похож С# кроме нескольких нюансов(а раньше я C# считал похожим на Java из-за тогоа что последний чуток изучал своими силами). Немного знаком с технологиями 3D, делал в свое время тачки и оружие для GTA Vice City, однако пока не знакомился даже с программированием DX-систем
Вопросов на первом этапе море - чем делать и как делать... в универе никто этим не занимался (у нас с девлопингом в стране вообще сложно, а в городе нету ни одной дев-фирмы), соответственно учиться надо как-то самому.
Первые вопросы - вообще реально ли за 2,5 года наваять такое чудо информационной техники с единомышленником-ботаном знающим Си Шарп несколько лучше меня, да любящего писать нудные, глупые, не быстродействующие тексты, структуру которых порой сложно понять?
Есть ли возможность сделать движок с использованием IDE от MS, которое зовется Visual Studio 2010, или XNA обязателен? Нужно ли присмотреться к другим IDE?
С чего начать? Т.е. - чего где почитать, разобрать, где можно найти какую-либо теорию по данному вопросу, например есть ли какая-то "типизированная и стандартизованная" структура движка или какие исходники каких движков и где можно попытаться разобрать?

Вообще, как кто считает, есть ли смысл биться с этим проектом, или стоит взять за дипломную какой-то сайт?

Требования к двиглу должны быть такие -
1) из него потом можно будет сделать игру... какую-нить какого-нить жанра.
2) Графика на уровне не выше первого HL или даже 2-3 кваки (т.е. рендер, простые текстурные отражения, однако в дальнешем его можно попробывать чем-нить улучшить... ну или сделать сразу монстра с красивостями DX11, только чтоб не сложно было)
3) физика должна быть более-мение удобоваримой(см. дальше требования к дипломной)
4) движок должен поддерживать хотя бы простые звуки
5) Скорее всего понадобиться написать GUI для чего-то типа SDK по данному движку, на случай дальнейшей продажи творения сторонним девлоперам

Требования к дипломной -
1) Должна быть привязана к какой-то КОНКРЕТНОЙ организации, которая если не купит проект, то хотя бы теоретически может им заинтересоваться (не знаю, возможно идиотизм моего ВУЗа)
2) Не должна быть готовой игрой - сказали что комиссия серьезная и их игры не волнуют, должно быть что-то показывающее умения и навыки и как-то иметь практический смысл.

Как вариант было приложено после разговора с хорошим преподом, заведующим молодыми ученными ВУЗа, следующее задание:
Сделать простенький движок со, скажем так, допотопной графикой, и звуковой частью, но который может смоделировать, скажем, ДТП, т.е. сказать, что при столкновении авто с такой-то геометрией, массой, скоростью и сделанной из такого материала с другой авто и теми же параметрами каждая из машин проедет(пролетит, просунется и т.д.) во так вот и так вот, расстояния от место столкновения такое-то. И все это, естес-но должен смоделировать и показать. Данной прогой может заинтересоваться вполне конкретная организация (ГИББД) и она имеет определенный смысл - мы построим достаточно правдоподобную модель произошедшего, позволяющую решить, кто из столкнувшихся виновен в ДТП, либо какие последствия будут в случае такого удара в реальной жизни.
Мое пожелание, чтобы прога еще могла делать обратную задачу - по данным о предположительном месте столкновения, треков(следов) автомобилей она должна выстроить ситуацию за несколько секунд до столкновения и показать ее и само крушение.
Движок должен быть универсальным, т.е. данный пример с ДТП применим и, скажем, к самолетам (хоть и называться это будет летным происшествием), и к лодкам... А конкретный пример можно сделать в виде скрипта или через созданный к движку GUI-ориентированный редактор сцен(создать который тоже, соответственно жопа). Все это - дабы потом можно бы движок доработать или на его основе написать новый, с хорошей графикой, который можно использовать для создания какой-нить игры...

Ну и главный вопрос - с чего начать? wacko



©Не теряй спокойствия - это твой капитал... В Shift эта фраза оказалась залогом победы...
TDU2 - новая редька хрена ИМХО слаще =)


Сообщение отредактировал Iexpmhihx - Четверг, 17.02.2011, 01:09
 
Дата: Четверг, 17.02.2011, 14:03 | Сообщение # 2
MAP
Соадмин
Drift
Сообщений: 167
Репутация: 13
Статус: Offline
Iexpmhihx, задумка конечно интересная, но написать абсолютно новый самостоятельный движок для сайта, как мне кажется, будет и то в разы легче. Правда для создания нормального сайта, нужно знать как минимум php, sql, javascript. Для расширенного еще asp и api например.
 
Дата: Четверг, 17.02.2011, 17:07 | Сообщение # 3
Iexpmhihx
VIP
Curcuit King
Сообщений: 685
Репутация: 60
Статус: Offline
MAP, Я знаю, что задумка интересная... вопрос - где взять список коллекций методов и классов DirectX? или там как-то все по другому?
На счет движка сайта - согласен что в разы проще. И php, asp и MySQL будут давать на этом и следующем семестре. Jscript фактически лишь скриптовый вариант Java, так что суть в нем та же самая.
К этому бы я бы еще добавил обязательное знание языка разметки HTML. А если я правильно понял, то ты говоришь про API-функции библиотек ОС и браузеров, которые конфигурально выражаясь привязывают движок конкретному браузеру или ОС, что есть УЖАСНО, ибо сайт должен быть кросс-платформенным. API-функции большинство программистов (правильных и более-менее толковых) обходят, создая собственные подобия нужных API-функций средствами своего языка программирования, ибо так создается кросс-платформенное ПО, к тому же обычно выходит еще и производительнее...

Плюс - идея то создать именно движок игры... а не сайта... Ну не хочу я сделать как проще (есть куча других вариантов, намного проще сайта, скажем что-то по базам данных), а хочу сделать что хочу... smile
Просто вопрос с чего начинать при моделировании движка - отдать все на обсчет математики в циклах - и у нас появляются бесконечные итерационники в которых параллельно считаются положение объектов(aka материальных точек и их координат), просчет физики и взаимодействия объектов (куча if() типа "если объект столкнулся с другим то такое-то действие, else : следующий if с другим подобным свойством. Все вместе в С-подобных языках заменяется на Switch, но переключатель по сути при компиляции превращается в тот же список if-ов), расчет звуковых эффектов(тот же Switch только результат выполнения условия проигрывание определенного звука)(скажем так, можно взять какой-то бесплатный звуковой движок и набор кодеков для обработки звуков - с этим писанины будет на тонны символов меньше), плюс сам 3d-рендер в реальном времени...
Можно реализовать часть этого всего прерываниями... но тогда при увеличении производительности мы увеличим сложность написания и залезим в дебри директивы _ASM... А язык ассемблера и все расчеты на нем, тем более прерывания - чистой воды ужас... во многом для меня не понятный.
так что воть те и раз =)
Кто-нить тут занимался разработкой игр на готовых движках или пробовал писать свой? А с DX работал?

---------------------------------------------
Добавлено 17.02.2011 в 24:46:
Сама суть не в том,что меня заставили или заставляют... не в том что мне нужен дипломник... а в самой идее создания НОВОГО движка самостоятельно... вот мечта у меня такая есть =) Вполне возможно что как дипломная работа не будет принята...



©Не теряй спокойствия - это твой капитал... В Shift эта фраза оказалась залогом победы...
TDU2 - новая редька хрена ИМХО слаще =)


Сообщение отредактировал Iexpmhihx - Четверг, 17.02.2011, 23:46
 
Форум » Компьютерная техника » Программирование » Разработка графического 3D-движка с нуля (Нужна помощь в абсолютно в во всем - движки ни разу не писал)
Страница 1 из 11
Поиск: