forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты C++ (http://forum.boolean.name/forumdisplay.php?f=56)
-   -   Пишем свой первый игровой движок (3D Game Engine) (http://forum.boolean.name/showthread.php?t=16342)

ІГРОГРАЙКО 16.02.2012 05:14

Пишем свой первый игровой движок (3D Game Engine)
 
Приветствую тебя!
Если ты посетил эту тему, значит у тебя есть желания узнать нечто больше, чем: "как налепить текстуру на модель в Blitz3D" или "как сделать чтоб при нажатии клавиши воспроизводилась анимация модели"...

Так вот, я решил что пришло время мне заняться очень серьёзным и большим делом.
"Уверен ли я что доделаю это не забив на старте?" - возможно спросите вы... Да не уверен, потому и пишу здесь чтобы мне было с кем обсуждать и генерировать идеи. Но не забью болт это уж точно, потому что я взял эту тему как тему моего будущего диплома...;)

Начнём!
Игровой движок - это такое срединное (middleware) ПО что упрощает разработку конечного ПО (software), в нашем случае компьютерной игры.
То есть в игровой движок должны входить все возможные библиотеки, утилиты + среда разработки для возможности создать конечный продукт.

Мой движок будет состоять из:
  1. Графического движка
  2. Физического движка
  3. Звукового движка
  4. AI движка
  5. Сетевого движка
Вроде бы ничего не забыл...

Он будет:
  1. Кросс-платформенным (:winlogo: , :luxlogo: , :maclogo:-?)
  2. OpenSource
Поскольку первый пункт: "Графический движок" - значит это самая важная часть игрового движка... А поскольку я буду писать его как 3Д то здесь вариантов не много - OpenGL

Честно говоря, писать с "0" я буду только графический движок. Все остальное использую уже готовенькое, но до этого еще ох как далеко...

- Вопрос: А почему не выбрать и готовенький графический движок, их же туева хуча?
- Ответ:
  1. Я хочу сделать свой, а не ковыряться в чужих
  2. Я хочу получить ценный опыт
Вот это было введение, далее самый важный (я так считаю) и самый первый этап жизненного цикла этого проекта:

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

Начнем с простых вопросов:
- В: Сколько на это есть времени?
- О: На первый экземпляр ГД (графического движка) - до 20-о Мая 2012г. На весь проект - до Декабря 2012г.
- В: Сколько на это есть денег?
- О: 0
- В: Какой мой уровень знаний С++?
- О: Низкий или средне низкий. (Будем повышать в процессе работы)
Если вас интересует что-то еще, пожалуйста задавайте ваши вопросы!

ОК, а теперь займемся планированием ГД. Поскольку это то что нужно сделать в первую очередь, и неизвестно наперед сколько на это востребуется времени, буду разрабатывать по итерациям. То есть сперва фундамент, а потом наращивать по возможности. Но чтобы понять что делать сперва, и куда двигаться потом нужен план, который называется: "спецификация требований". Иными словами - "хотелка"... Вот эту вот "хотелку" я и предлагаю ВАМ дорогие мои составить.:rolleyes: Сперва все что можно придумать крутого, а потом мы придём к тому, с чего можно начать...

Буду очень благодарен за все ваши идеи и вопросы!

SBJoker 16.02.2012 10:52

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Коль уж статья на русском языке, то правило "жи-ши, пиши с буквой И" действует.

HolyDel 16.02.2012 11:49

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
В: Есть ли у тебя мак, чтобы делать версию под мак?

Knightmare 16.02.2012 13:00

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
ТС, спасибо, поржал.

Цитата:

В: Есть ли у тебя мак, чтобы делать версию под мак?
Хакинтош себе разве что ленивый не запилил еще.

ffinder 16.02.2012 13:50

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
топикстартер, ты взял реально тяжкую тему для диплома.
кроссплатформа это тягостно в плане тестирования, потому что везде всякие разные проблемы.

ну и ты не сказал, выложишь ли потом исходники (от этого зависит стоит ли вообще хотеть твой "движок").

ну а хотелки банальнейшие:

- математическая библиотека (вектора, матрицы, кватернионы, углы)
- статик меши/скинед меши/гуи меши, материалы
- формат сцены: геймобжект и его компоненты: трансформ, меш, физическое тело, источник звука/слушатель, камера(ортогональная/перспективная)
- постэффекты

одно это запилить под три платформы съест всё твое время.
еще надо и демку же на движке...

короче круто ты взял тему...

Hurrit 16.02.2012 13:52

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
ну что вы бэтмены, пропускайте текст через microsoft word хотя бы.

shybovycha 16.02.2012 15:07

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Цитата:

Сообщение от Hurrit (Сообщение 219715)
ну что вы бэтмены, пропускайте текст через microsoft word хотя бы.

В FireFox, GoogleChrome и, насколько мне известно, в Opera есть вмонтированный синтексис-чекер ;)

Цитата:

птому что я взял ету тему как тему моего будущего диплома..
Коль до диплома далеко - одумайтесь! Не беритесь за изначально невозможное! В любом среднестатистическом универе России/Украины попросту не оценят по достоинству потуги!

Цитата:

Мой движок будет состоять из:
  1. Графического движка
  2. Физического движка
  3. Звукового движка
  4. AI движка
  5. Сетевого движка

Прошу прощения. Не читайте предыдущий совет. Дерзайте...



Цитата:


-...Афганистан, говорят, в эту пору просто бесподобен
-Сарказм?
- О_О Ни в коем разе - поезжай, конечно!
The Big Bang Theory, season 5 episode 16, озвучка Кураж-Бамбей




Цитата:

- В: Какой мой уровень знаний С++?
- О: Низкий или средне низкий. (Будем повышать в процесе работы)
См. предыдущий пункт ;)


Цитата:

Тоесть сперва фундамент, а потом наращивать по возможности. Но чтобы понять что делать сперва, и куда двигатса потом нужен план, который называетса: "спецыфикацыя требований". Иными словами - "хотелка"...
Пока верно.


Цитата:

Сперва все что можно придумать крутого, а потом мы прийдем до того, с чего можно начать...
Реверс-инженерия? Ибо если нет, то лучше уж сперва показать демо работающего рендерера, который:

а) загружает объекты из файла
б) текстурирует объекты
в) освещает объекты
г) кастит тени от объектов, если иное не задано конфигурацией (кажется, именно так пишут в ТЗ :) )
д) работает с ландшафтами (загрузка + рисование, и, желательно, модификация)
е) умеет рисовать и обрабатывать системмы частиц. Коль прикрутить обработку коллизий не через PhysX / Bullet да еще и коллизий с объектами, а не только друг с дружкой - будет убер-шикарно! Ну а поскольку не-физикс и не-буллет, то это нечто должно давать что-то лучшее, нежели упомянутые - например, большую скорость, большее количество обрабатываемых одновременно системм частиц, точнее коллизии и т.д. Иначе имеем зависимости и тормоза, что не есть красиво.
ж) если все вышеупомянутые пункты работают хуже, нежели OGRE или Irrlicht или же вообще отсутствуют, ТЗ считать не выполненым, а целью проекта - исключительно повышение ЧСВ Self Education

Коль ваше желание все еще сильно - дерзайте!

ІГРОГРАЙКО 16.02.2012 15:25

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Цитата:

Сообщение от SBJoker (Сообщение 219705)
Коль уж статья на русском языке, то правило "жи-ши, пиши с буквой И" действует.

Извиняюсь за свой русский. Я никогда его не учил. Надеюсь я пишу понятно...

Цитата:

Сообщение от HolyDel (Сообщение 219709)
В: Есть ли у тебя мак, чтобы делать версию под мак?

О: Нет у меня мака. Для написания первого екземпляра ГД я думаю будет достаточно обойтись: :winlogo: :luxlogo:

Цитата:

Сообщение от ffinder (Сообщение 219714)
ну и ты не сказал, выложишь ли потом исходники (от этого зависит стоит ли вообще хотеть твой "движок").

Да. Исходники будут выложены. Не вижу смысла мне чтото скрывать веть я и так учусь.

Цитата:

Сообщение от ffinder (Сообщение 219714)
- математическая библиотека (вектора, матрицы, кватернионы, углы)
- статик меши/скинед меши/гуи меши, материалы
- формат сцены: геймобжект и его компоненты: трансформ, меш, физическое тело, источник звука/слушатель, камера(ортогональная/перспективная)
- постэффекты

Спасибо. Я хочу боле подробно рассмотреть графический движок.

Цитата:

Сообщение от ffinder (Сообщение 219714)
одно это запилить под три платформы съест всё твое время.
еще надо и демку же на движке...

Пока что под две платформы. Под Мак буду пробовать запилить позже.

Цитата:

Сообщение от shybovycha (Сообщение 219717)
Реверс-инженерия? Ибо если нет, то лучше уж сперва показать демо работающего рендерера, который:
а) загружает объекты из файла
б) текстурирует объекты
в) освещает объекты
г) кастит тени от объектов, если иное не задано конфигурацией (кажется, именно так пишут в ТЗ :) )
д) работает с ландшафтами (загрузка + рисование, и, желательно, модификация)
е) умеет рисовать и обрабатывать системмы частиц. Коль прикрутить обработку коллизий не через PhysX / Bullet да еще и коллизий с объектами, а не только друг с дружкой - будет убер-шикарно! Ну а поскольку не-физикс и не-буллет, то это нечто должно давать что-то лучшее, нежели упомянутые - например, большую скорость, большее количество обрабатываемых одновременно системм частиц, точнее коллизии и т.д. Иначе имеем зависимости и тормоза, что не есть красиво.
ж) если все вышеупомянутые пункты работают хуже, нежели OGRE или Irrlicht или же вообще отсутствуют, ТЗ считать не выполненым, а целью проекта - исключительно повышение ЧСВ Self Education
Коль ваше желание все еще сильно - дерзайте!

У меня есть литература: М. Ву, Т. Девис, Дж. Нейдер, Д. Шрайнер "OpenGL Руководство по програмированию 4-е издание".
Я начал читать и заметил, что програмируют там с помощю библиотеки GLUT. Скажите подойдет ето для разработки ГД? Посоветуйте мне что можно или не можно нацеплять на сырой API.

ffinder 16.02.2012 15:50

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
вот еще что вспомнилось с тех давних времен, когда я писал диплом:
1. должно быть исследование существующих решений, с этим проблем в приципе нет, берешь гору движков с открытыми исходниками и рисуешь по ним UML-диаграммы.
уже в принципе дофига работы, хотя бы два-три движка описать все классы.
2. должна быть научная новизна, т.е. ты должен будешь показать, что твой движок не просто такой же как у всех, а чем-то принципиально отличается.
вот тут я даже затрудняюсь сказать:
кроссплатформенный? - тысячи их
общего назначения? тоже самое
OpenGL? тоже не ново.
воксели? майнкрафт? 4х мерная геометрия? тоже было.

в общем с новизной тут я вижу какие-то нереальные проблемы.
ну разве что как всегда высосать из пальца какую-то надуманную фичу, которая не особо кому-либо и нужна, реализовать её, и этим давить на уникальность.

а вообще стоит очень серьезно поговорить с дипломным руководителем, потому что факап с дипломом это просто хуже некуда.

PS: только что пришла идея, которая сильно повышает твои шансы доделать диплом в срок:
взять уже готовый движок, и допилить туда эту надуманную фичу.
согласись, что одну фичу сделать проще, чем с нуля сделать и движок и фичу, а потом доказывать как всё круто с ней улучшилось.

shybovycha 16.02.2012 16:00

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Цитата:

Сообщение от ІГРОГРАЙКО (Сообщение 219722)
У меня есть литература: М. Ву, Т. Девис, Дж. Нейдер, Д. Шрайнер "OpenGL Руководство по програмированию 4-е издание".
Я начал читать и заметил, что програмируют там с помощю библиотеки GLUT. Скажите подойдет ето для разработки ГД? Посоветуйте мне что можно или не можно нацеплять на сырой API.

Нет, GLUT не подойдет. Если хотите простоты и некоего количества встроенных возможностей (вроде загрузки изображений, работы со звуком, окнами и событиями, сетью) - используйте SFML. Правда, вам придется его оптимизировать - по ряду неизвестных мне причин он не особо шустрый.

Если же вам нужна убер-кроссплатформенность и скорость - однозначно SDL! Правда, для каждой функциональности придется либо писать кучу кода, либо использовать библиотеки -> что есть зависимости -> что не есть хорошо.

И опять-таки: сперва сделайте каркас, ядро или как вы его там назовете. Сделайте за пару-тройку вечеров поддержку .3ds-файлов, текстур да света, покажите людям. А уж потом смотрите на остальное.

ІГРОГРАЙКО 16.02.2012 16:23

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Цитата:

Сообщение от shybovycha (Сообщение 219726)
Если же вам нужна убер-кроссплатформенность и скорость - однозначно SDL! Правда, для каждой функциональности придется либо писать кучу кода, либо использовать библиотеки -> что есть зависимости -> что не есть хорошо.

И опять-таки: сперва сделайте каркас, ядро или как вы его там назовете. Сделайте за пару-тройку вечеров поддержку .3ds-файлов, текстур да света, покажите людям. А уж потом смотрите на остальное.

Спасибо за совет! Вот и начну с SDL. Поищу какой небудь Getting started wiht, а дале увидим...

Если у кого то еще есть идеи, что можно использовать, а что нет - пожалуйста делитесь!

ARA 16.02.2012 16:36

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
ІГРОГРАЙКО, у тебя ничего не выйдет - инфа 100%

HolyDel 16.02.2012 17:08

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
настоящие мужики создают окно сами. не доверяя SDL-ам.

ІГРОГРАЙКО 16.02.2012 17:26

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Цитата:

Сообщение от HolyDel (Сообщение 219735)
настоящие мужики создают окно сами. не доверяя SDL-ам.

Возможно)) Я смотрел пример на GameDev.ru...
И я смотрел твою тему HolyDel. А ты чем пользовалса если не секрет?
Как на счет GLM - для матриц, векторов и проче математики...?

HolyDel 16.02.2012 18:23

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
ну. мой двиг на opengl, форвард контексте.
я зря использовал фишки C++0x, и даже туже прагму онце. с их поддержкой очень туго на всяких андроидах и прочей отличной от винды фигне.

glm можно использовать, чтобы со своей математикой не париться. , но настоящие мужики сами пишут математику.
я не стал - там шаблон сидит на шаблоне и шаблоном подгоняет. а оно будет много в какие единицы трансляции включаться. поэтому одна сборка моего двига занимает 15 минут (причем тутже собираются всякие буллеты и фритайпы), а не час.

shybovycha 16.02.2012 18:26

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Цитата:

Сообщение от ІГРОГРАЙКО (Сообщение 219738)
Как на счет GLM - для матриц, векторов и проче математики...?

Настоящие мужики сами пишут математику! =3

Ну, как пример - я писал убер-класс вектора, который через кватернионные преобразования умел вращаться - не вижу-таки смысла в отдельном классе кватерниона...

Mr_F_ 16.02.2012 19:32

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Цитата:

Настоящие мужики сами пишут математику! =3
это туповато, по крайней мере лучше SSE2 математики из XNAmath/Sony vectormath вам не написать.

shybovycha 16.02.2012 19:51

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Цитата:

Сообщение от Mr_F_ (Сообщение 219748)
это туповато, по крайней мере лучше SSE2 математики из XNAmath/Sony vectormath вам не написать.

Вопрос не в том, лучше или нет, а в том, нужно ли мне подключать библиотеку (библиотеки) Х для моего проектиика Y ;)

HolyDel 16.02.2012 20:03

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Код:

это туповато, по крайней мере лучше SSE2 математики из XNAmath/Sony vectormath вам не написать.
ну блин. в библиотеке же не только перемножение матриц и матрицы на вектор должно быть...

Samodelkin 17.02.2012 00:48

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Вот например я у себя в матбибле тригонометрические функции делал через ряды Маклорена, и в них можно задавать количество итераций, тем самым выбирая баланс между производительностью и точностью. А так как тригонометрия входит и в расчеты векторов, матриц и кватернионов, то и их можно также балансировать. Расчеты системы частиц например намного быстрей происходить будут, т к точность в них не особо нужна. Еще есть некоторые функции для частных случаев, например если известно что аргумент принадлежит определенно заданному диапазону, можно упростить алгоритмы вычислений.

SIMD можно и самому пилить ассемблерными вставками - там не сложно.

impersonalis 19.02.2012 02:05

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Для комиссии, с немалой вероятностью, подобная разработка будет "на уровне калькулятора или даже выше". Конечно, может крупно повезти с преподами, но, увы, о многих относительно передовых темах люди буду судить по названию проекта.

pax 19.02.2012 11:47

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Так тут просто надо тему взять звучащую типа: "Система визуализации костной анимации в реальном времени" или "Визуализация физического взаимодействия твердых и мягких тел в реальном времени".

Morganolla 19.02.2012 22:58

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Судя по топику, чувак надорвется и к концу года для него настанет конец света... Мой совет - к маю сделай тетрис с эротическими картинками на движке HGE ( хоть немного изучишь С++ ). Преподы будут рады. А к диплому доизучи еще BOX2D и BASS и сделай что-то типа Hammerfight (Hammerfall). Будет хоть какая -то польза и для тебя и для людей.

ІГРОГРАЙКО 20.02.2012 08:12

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Планирование
продолжение

Подведу итоги за етих несколько дней...
В ходе обсуждения етого проекта и все большым погружением в даную предметную область я заметил существенные риски:

Проек в целом:
  • Низкая оценка проекта преподавателями, из за непрегодность для научного использования.
  • Трудоёмкость и сложность реализации Графического движка потребует больше времини.
  • Неизвесно какой объем времини и усилий нужно затратить на реализацыю или адаптацыю Физического, Звукового, АІ и Сетевого движка.

Вывод:
Я могу не успеть и/или перетрудитса, а роботу не оценят должным образом. И потому я решыл сильно уменьшыть объем проекта для диплома обойдясь пока только Графическим движком.
Для написания Графического движка сейчас у меня недостаток знаний, а именно использования OpenGL API. Потому я приступаю к разработке учебного проекта...

Спасибо вам за помощь! Буду рад получить новые советы...;)

ffinder 20.02.2012 15:11

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
я тебе уже посоветовал, но ты не унимаешся.
поговори с дипруком, придумайте фичу, запили фичу в уже существующий движок, профит.

shybovycha 20.02.2012 19:37

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Изменения в Силе я чую....

impersonalis 20.02.2012 21:39

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Цитата:

Сообщение от pax (Сообщение 220000)
Так тут просто надо тему взять звучащую типа: "Система визуализации костной анимации в реальном времени" или "Визуализация физического взаимодействия твердых и мягких тел в реальном времени".

Термин "реальное время", особенно в соответствующей среде, надо произносить с большой осторожностью: вероятнее всего он будет воспринят как - реализация операционной системы реального времени или создание аналогичного патча на систему с вытесняющей многозадачностью.
http://ru.wikipedia.org/wiki/Реальное_время
Лучше поиграть со словом "интерактивный" - этим ты покажешь возможность пользователя влиять на процесс "в реальном времени"(зд.), т.е. on-line

В остальном - прекрасно

pax 21.02.2012 00:05

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Цитата:

Сообщение от impersonalis (Сообщение 220161)
Термин "реальное время" надо произносить с большой осторожностью

Если препод захочет, он придерется к чему угодно) А вообще да, с ОС реального времени лучше вообще не связываться)

ffinder 21.02.2012 00:27

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
импер всё правильно сказал про реальное время. тут дело не в придирках, а в том, что 3д рендер с гарантированным временем выдачи результата тяжело даже вообразить и непонятно где он может быть нужен.
интерактивный это легкое, ни к чему не обязывающее слово, которое можно лепить куда угодно.

Morganolla 25.02.2012 15:39

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Похоже стартер плохо понимает, что такое графический движок.

ffinder 25.02.2012 17:05

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
мы все когда-то были дипломниками, а кто-то еще будет, не нужно строго судить.
я вот пытаюсь помочь, чтобы отвратить факап.

ІГРОГРАЙКО 25.02.2012 17:26

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Цитата:

Сообщение от Morganolla (Сообщение 220501)
Похоже стартер плохо понимает, что такое графический движок.

Я юзаю игравые/графические движки уже вот 7 лет...
Начинал как и наверное большенство здесь с Blitz3D.
Потом я начал учить C# и XNA вместе сним.
Пробовал Ogre3D на Python"е (PyOgre) разочаровался в етой сборке, так как разработчики наверное забыли что она должна работать и на Линуксе.
Пробовал собрать CrystalSpace, не получилось, ждал 1.5 часа, куча ошыбок...
И делал демку на Blender"е.

Ето наверное немного по сравнению с некоторыми здесь присутствующими професионалами.
Но я не взялса бы за ето будь у меня только одно желание...

moka 25.02.2012 17:35

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Работать с дивжками, и их писать - это разные вещи.
Это как сказать: "я спаяю движок ферарри с нуля", лишь имея аргумент: "у меня был жигуль, мазда и ауди, и я заливал масло там под капотом".

ІГРОГРАЙКО 25.02.2012 17:44

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Разве я говорил что мой движок будет "Ферарри"?
Я делаю ето чтобы научитса.

HolyDel 25.02.2012 18:04

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
так все таки - чтобы научиться, или на диплом?

ІГРОГРАЙКО 25.02.2012 18:35

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Учусь и делаю диплом одновременно.

falcon 27.02.2012 09:38

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
издавна советуют за двумя зайцами не бегать :-D
диплом нужно просто сдать
а движки писать - та ещё наука... с наскока не возьмёш, учиться придётся долго.

impersonalis 01.03.2012 17:22

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Цитата:

Сообщение от falcon (Сообщение 220727)
издавна советуют за двумя зайцами не бегать :-D
диплом нужно просто сдать
а движки писать - та ещё наука... с наскока не возьмёш, учиться придётся долго.

Sad but true

ІГРОГРАЙКО 02.03.2012 17:59

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Учебный проект
OpenGL API

Етот етап посвящается повышению знаний и опыта использования API OpenGL.
Здесь я выложу ссылки на полезные статьи:
  1. http://pmg.org.ru/nehe/
  2. http://code.google.com/p/gl33lessons/
Задача:
Создать кроссплатформенное* OpenGL 3.х приложение с демонстрацией возможностей будущего ГД.
Время на выполнение:
2 месяца (до мая)
Ожидаемый результат:
Достаточной уровень знаний API OpenGL для начала проектирования движка.

Если вы знаете еще какие то полезные статьи, прошу вас поделитса ссылочкой;)
Тоже буду рад и благодарен вашым советам стосовно програмирования на API OpenGL.

* :winlogo: :luxlogo:

shybovycha 03.03.2012 01:32

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
http://steps3d.narod.ru/

Единственное, пожалуй, что нужно для написания "OpenGL X-совместимого движка" (X >= 2).

ІГРОГРАЙКО 06.03.2012 00:42

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Скиньте пожалуста ссылку на статью о инициализации окна OpenGL на gcc под Ubuntu!
Я искал но нашел только с использованием GLUT а ето мне не приемлимо...

ffinder 06.03.2012 01:24

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
гугли SFML. там есть для всех платформ.

Morganolla 12.03.2012 14:53

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Эк тебя прет... ) Ты бы хоть для одной платформы что-то толковое попробовал сделать. Да еще и без ГЛУТа... Ты хочешь стать Эйнштейном в графике? Найди себе нормального вменяемого руководителя на кафедре и пусть он тебе даст конкретную тему подкрепленную уже написанным ранее дипломом!!! :)

den 14.03.2012 20:25

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Цитата:

Сообщение от ІГРОГРАЙКО (Сообщение 221749)
Скиньте пожалуста ссылку на статью о инициализации окна OpenGL на gcc под Ubuntu!
Я искал но нашел только с использованием GLUT а ето мне не приемлимо...

мб это?

ІГРОГРАЙКО 22.03.2012 22:29

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Нашел очень хорошие видео уроки по OpenGL 3.2 с использованием SDL...

Часть 1
Часть 2

pozitiffcat 04.04.2012 12:30

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Цитата:

Сообщение от ІГРОГРАЙКО (Сообщение 221276)
Учебный проект
OpenGL API

Етот етап посвящается повышению знаний и опыта использования API OpenGL.
Здесь я выложу ссылки на полезные статьи:
  1. http://pmg.org.ru/nehe/
  2. http://code.google.com/p/gl33lessons/
Задача:
Создать кроссплатформенное* OpenGL 3.х приложение с демонстрацией возможностей будущего ГД.
Время на выполнение:
2 месяца (до мая)
Ожидаемый результат:
Достаточной уровень знаний API OpenGL для начала проектирования движка.

Если вы знаете еще какие то полезные статьи, прошу вас поделитса ссылочкой;)
Тоже буду рад и благодарен вашым советам стосовно програмирования на API OpenGL.

* :winlogo: :luxlogo:

Нахер тебе это надо? Я брался за движок раз 10, и только с 10 раза мой мозг встал на правильный путь, и начал понимать как это все работает, и что-то получилось, это невыносимый и долгий труд. И даже с 10 попытки, мой движок является говном, и там такой страшный быдлокод, потому что нужно еще более четко понимать как это все устроено, потому что ты даже ТЗ более менее не напишешь потомучто и представления не имеешь как работает OpenGL или DirectX без многочисленных попыток что либо делать.
ЗЫ. 2 месяца очень мало, без представления как это все работает. Если ты конечно ночевать за компом не будешь.. но это бред

HolyDel 04.04.2012 12:47

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Цитата:

Нахер тебе это надо? Я брался за движок раз 10, и только с 10 раза мой мозг встал на правильный путь,
чтобы он тоже с 10-го раза смог встать на правильный путь, очевидно же

pozitiffcat 04.04.2012 13:05

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Цитата:

Сообщение от HolyDel (Сообщение 224507)
чтобы он тоже с 10-го раза смог встать на правильный путь, очевидно же

Я имею ввиду нахер для диплома эта тема

ІГРОГРАЙКО 04.04.2012 13:31

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Цитата:

Сообщение от pozitiffcat (Сообщение 224506)
Нахер тебе это надо? Я брался за движок раз 10, и только с 10 раза мой мозг встал на правильный путь, и начал понимать как это все работает, и что-то получилось, это невыносимый и долгий труд. И даже с 10 попытки, мой движок является говном, и там такой страшный быдлокод, потому что нужно еще более четко понимать как это все устроено, потому что ты даже ТЗ более менее не напишешь потомучто и представления не имеешь как работает OpenGL или DirectX без многочисленных попыток что либо делать.
ЗЫ. 2 месяца очень мало, без представления как это все работает. Если ты конечно ночевать за компом не будешь.. но это бред

Я выбрал эту тему не по приколу pozitiffcat. И я осознаю что все может затянуться, а может и ничего толкового и не получится. Для этого у меня есть резервный вариант диплома, который мне делать не больше недели.
Я создал эту тему не для того чтобы сделать что то невероятное, поскольку еще от школы занимаюсь компьютерной 3Д графикой и ГеймДевом (уже где то 7 лет). И хочу попробовать реализовать свой талант и возможности по максимуму пока у меня есть много свободного времени, пока я еще студент.
За Учебным проектом не следует сразу разработка движка, а будет еще повторное Планирование, поскольку у меня появилось несколько хороших идей которые я выложу на обсуждение в ближайшое время...;)

pozitiffcat 04.04.2012 13:45

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Другой разговор, когда есть резервный вариант. Начни с Direct3D 9, OpenGL будет более понятней после изучения DirectX ИМХО, у меня было именно так.

johnk 04.04.2012 15:43

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Цитата:

Сообщение от pozitiffcat (Сообщение 224506)
И даже с 10 попытки, мой движок является говном, и там такой страшный быдлокод [...]

Это ты про C3D признался? :-D

pozitiffcat 04.04.2012 18:34

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Цитата:

Сообщение от johnk (Сообщение 224535)
Это ты про C3D признался? :-D

Да КЭП, и мне не стыдно, я долго шел к тому что я смог сделать

ІГРОГРАЙКО 14.05.2012 16:12

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Всем привет.
Прошло много времени и многое изменилось. Есть две новости:

Хорошая:
Я значительно повысил свой уровень знаний в области программирования компьютерной графики...

Плохая:
Я был вынужден отказаться от идеи сделать игровой (графический) движок на дипломный проект.

Объяснять почему, наверно и не нужно. Слишком много работы для реализации самого движка и еще больше для создания демо, а как потом объяснить комиссии что собственно полезного я сделал очень сложно, воопщем и не надо...

Надеюсь я вернусь к этому проекту позже...

ffinder 14.05.2012 18:15

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
маладца, всё правильно зделал.
диплом нужно защитить. а для себя уже можно и поделать движок.

Nfnehtdbx2 13.12.2013 19:38

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
на данный момент соображаю как сделать очень простой и хороший 3-д игровой движок

с математикой поворотов и масштабирований точек достаточно просто описанно (там идут умножения на косинус)
т.е. для каждого обьекта свой коэфициент поворота

вот с рендерингом недавно были доработанны основные идеи

Итак они состоят в следующем :

1- при проэктировании привязывать точки проэтируемых треугольников к ближайшим целым точкам(пересечениям)
2- для области скажем 30х30 пикселов вычислить все возможные треугольники и занести их в таблицу
(комбинации пересечений) (900 в кубе байт комбинаций)

или можн обойтись более малой таблицей 10х10 (100 в кубе байт комбинаций -> 1мб)
и складывать итоговые фигуры уже из нее
как обеспечить чтобы треугольник оказался не больше чем 10х10 при вписывании его в прямоугольник?

Необходимо чтобы он в натуральную величину не был больше чем 10х10 при вписывании его в оптимальный прямоугольник

есть еще одна возможность которую я увидел несколько позже если одна из точек треугольника скажем нижняя левая
будет находится в центре координат!
вертикальных точек станет 20 а не 10
но так как определяемых по шаблону точек всего 2
то и вариаций будет 20х10 в квадрате а не 10 в квадрате а после в кубе
(10х10 в кубе => 1 мегабайт)

и для треульников оптимально вписанных в квадрат
10х10 пикселов
достаточной будет таблица состоящая
всего из 20х10 в квадрате => 40 000 бит
т.е. всего 40 кбайт

такую таблицу можна поместить в кэш даже старых процессоров

Остался открыт вопрос работы над видимостью или невидимостью обьектов(фильтрации того что необходимо отобразить)
Так же необходима проработка "скелета обьектов"
И все это необходимо сделать еще до начала написания движка

Ессно под него необходимо будет написать и среду разарботки
но оно того стоит

моя страница в контакте
http://vk.com/i8ogdan

moka 13.12.2013 22:07

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
Зачем?

Nfnehtdbx2 14.12.2013 18:13

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
есть смысл
а словом зачем можна прервать что угодно
в том случае если человек который его услышит идиот
в слове зачем нет смысла

зачем говорить зачем?
есть смысл,есть цель, это хорошо сделать
остальное не имеет значения

pozitiffcat 18.12.2013 00:41

Ответ: Пишем свой первый игровой движок (3D Game Engine)
 
ты свой рендер софтверный запилить чтоли хочешь?


Часовой пояс GMT +4, время: 08:06.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot