Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Проекты > Проекты C++

Ответ
 
Опции темы
Старый 16.02.2012, 05:14   #1
ІГРОГРАЙКО
ПроЭктировщик
 
Аватар для ІГРОГРАЙКО
 
Регистрация: 20.06.2009
Адрес: Україна
Сообщений: 152
Написано 10 полезных сообщений
(для 24 пользователей)
Счастье Пишем свой первый игровой движок (3D Game Engine)

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

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

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

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

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

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

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

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

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

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

Буду очень благодарен за все ваши идеи и вопросы!
__________________
Blitz3D, XNA, WebGL, OpenGL, Unity3D
PC: ASUS A55VM Core i3 (2.4Ghz), 6 Gb RAM, Nvidia GF 630M GT 2Gb

Последний раз редактировалось SBJoker, 16.02.2012 в 16:24. Причина: поправил орфографию
(Offline)
 
Ответить с цитированием
Эти 5 пользователя(ей) сказали Спасибо ІГРОГРАЙКО за это полезное сообщение:
4yBa4Ok (16.02.2012), Amatsu (16.02.2012), johnk (03.03.2012), Randomize (16.02.2012), St_AnGer (20.02.2012)
Старый 16.02.2012, 10:52   #2
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Пишем свой первый игровой движок (3D Game Engine)

Коль уж статья на русском языке, то правило "жи-ши, пиши с буквой И" действует.
__________________
(Offline)
 
Ответить с цитированием
Старый 16.02.2012, 11:49   #3
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Пишем свой первый игровой движок (3D Game Engine)

В: Есть ли у тебя мак, чтобы делать версию под мак?
(Offline)
 
Ответить с цитированием
Старый 16.02.2012, 13:00   #4
Knightmare
Дэвелопер
 
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений
(для 2,920 пользователей)
Ответ: Пишем свой первый игровой движок (3D Game Engine)

ТС, спасибо, поржал.

В: Есть ли у тебя мак, чтобы делать версию под мак?
Хакинтош себе разве что ленивый не запилил еще.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо Knightmare за это полезное сообщение:
ARA (16.02.2012), pozitiffcat (17.02.2012), shybovycha (16.02.2012)
Старый 16.02.2012, 13:50   #5
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: Пишем свой первый игровой движок (3D Game Engine)

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

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

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

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

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

короче круто ты взял тему...
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо ffinder за это полезное сообщение:
impersonalis (19.02.2012), Mr_F_ (16.02.2012), shybovycha (16.02.2012), ІГРОГРАЙКО (16.02.2012)
Старый 16.02.2012, 13:52   #6
Hurrit
Мастер
 
Аватар для Hurrit
 
Регистрация: 27.01.2008
Адрес: Россия, СКФО, ЧР, Грозный
Сообщений: 1,144
Написано 578 полезных сообщений
(для 2,207 пользователей)
Ответ: Пишем свой первый игровой движок (3D Game Engine)

ну что вы бэтмены, пропускайте текст через microsoft word хотя бы.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
SBJoker (16.02.2012)
Старый 16.02.2012, 15:07   #7
shybovycha
ПроЭктировщик
 
Аватар для shybovycha
 
Регистрация: 27.05.2007
Сообщений: 110
Написано 40 полезных сообщений
(для 33 пользователей)
Ответ: Пишем свой первый игровой движок (3D Game Engine)

Сообщение от Hurrit Посмотреть сообщение
ну что вы бэтмены, пропускайте текст через 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

Коль ваше желание все еще сильно - дерзайте!
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо shybovycha за это полезное сообщение:
DjeeZ (21.02.2012), Hurrit (16.02.2012), Reks888 (03.03.2012), ІГРОГРАЙКО (16.02.2012)
Старый 16.02.2012, 15:25   #8
ІГРОГРАЙКО
ПроЭктировщик
 
Аватар для ІГРОГРАЙКО
 
Регистрация: 20.06.2009
Адрес: Україна
Сообщений: 152
Написано 10 полезных сообщений
(для 24 пользователей)
Ответ: Пишем свой первый игровой движок (3D Game Engine)

Сообщение от SBJoker Посмотреть сообщение
Коль уж статья на русском языке, то правило "жи-ши, пиши с буквой И" действует.
Извиняюсь за свой русский. Я никогда его не учил. Надеюсь я пишу понятно...

Сообщение от HolyDel Посмотреть сообщение
В: Есть ли у тебя мак, чтобы делать версию под мак?
О: Нет у меня мака. Для написания первого екземпляра ГД я думаю будет достаточно обойтись:

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

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

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

Сообщение от shybovycha Посмотреть сообщение
Реверс-инженерия? Ибо если нет, то лучше уж сперва показать демо работающего рендерера, который:
а) загружает объекты из файла
б) текстурирует объекты
в) освещает объекты
г) кастит тени от объектов, если иное не задано конфигурацией (кажется, именно так пишут в ТЗ )
д) работает с ландшафтами (загрузка + рисование, и, желательно, модификация)
е) умеет рисовать и обрабатывать системмы частиц. Коль прикрутить обработку коллизий не через PhysX / Bullet да еще и коллизий с объектами, а не только друг с дружкой - будет убер-шикарно! Ну а поскольку не-физикс и не-буллет, то это нечто должно давать что-то лучшее, нежели упомянутые - например, большую скорость, большее количество обрабатываемых одновременно системм частиц, точнее коллизии и т.д. Иначе имеем зависимости и тормоза, что не есть красиво.
ж) если все вышеупомянутые пункты работают хуже, нежели OGRE или Irrlicht или же вообще отсутствуют, ТЗ считать не выполненым, а целью проекта - исключительно повышение ЧСВ Self Education
Коль ваше желание все еще сильно - дерзайте!
У меня есть литература: М. Ву, Т. Девис, Дж. Нейдер, Д. Шрайнер "OpenGL Руководство по програмированию 4-е издание".
Я начал читать и заметил, что програмируют там с помощю библиотеки GLUT. Скажите подойдет ето для разработки ГД? Посоветуйте мне что можно или не можно нацеплять на сырой API.
__________________
Blitz3D, XNA, WebGL, OpenGL, Unity3D
PC: ASUS A55VM Core i3 (2.4Ghz), 6 Gb RAM, Nvidia GF 630M GT 2Gb
(Offline)
 
Ответить с цитированием
Старый 16.02.2012, 15:50   #9
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: Пишем свой первый игровой движок (3D Game Engine)

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

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

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

PS: только что пришла идея, которая сильно повышает твои шансы доделать диплом в срок:
взять уже готовый движок, и допилить туда эту надуманную фичу.
согласись, что одну фичу сделать проще, чем с нуля сделать и движок и фичу, а потом доказывать как всё круто с ней улучшилось.
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо ffinder за это полезное сообщение:
Mr_F_ (16.02.2012), shybovycha (16.02.2012), Taugeshtu (20.02.2012), ІГРОГРАЙКО (16.02.2012)
Старый 16.02.2012, 16:00   #10
shybovycha
ПроЭктировщик
 
Аватар для shybovycha
 
Регистрация: 27.05.2007
Сообщений: 110
Написано 40 полезных сообщений
(для 33 пользователей)
Ответ: Пишем свой первый игровой движок (3D Game Engine)

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

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

И опять-таки: сперва сделайте каркас, ядро или как вы его там назовете. Сделайте за пару-тройку вечеров поддержку .3ds-файлов, текстур да света, покажите людям. А уж потом смотрите на остальное.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ІГРОГРАЙКО (16.02.2012)
Старый 16.02.2012, 16:23   #11
ІГРОГРАЙКО
ПроЭктировщик
 
Аватар для ІГРОГРАЙКО
 
Регистрация: 20.06.2009
Адрес: Україна
Сообщений: 152
Написано 10 полезных сообщений
(для 24 пользователей)
Ответ: Пишем свой первый игровой движок (3D Game Engine)

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

И опять-таки: сперва сделайте каркас, ядро или как вы его там назовете. Сделайте за пару-тройку вечеров поддержку .3ds-файлов, текстур да света, покажите людям. А уж потом смотрите на остальное.
Спасибо за совет! Вот и начну с SDL. Поищу какой небудь Getting started wiht, а дале увидим...

Если у кого то еще есть идеи, что можно использовать, а что нет - пожалуйста делитесь!
__________________
Blitz3D, XNA, WebGL, OpenGL, Unity3D
PC: ASUS A55VM Core i3 (2.4Ghz), 6 Gb RAM, Nvidia GF 630M GT 2Gb
(Offline)
 
Ответить с цитированием
Старый 16.02.2012, 16:36   #12
ARA
ТЫ ЧООО?
 
Аватар для ARA
 
Регистрация: 26.02.2007
Сообщений: 3,369
Написано 2,020 полезных сообщений
(для 7,192 пользователей)
Ответ: Пишем свой первый игровой движок (3D Game Engine)

ІГРОГРАЙКО, у тебя ничего не выйдет - инфа 100%
__________________
Вертекс в глаз или в пиксель раз?
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо ARA за это полезное сообщение:
falcon (22.02.2012), Mr_F_ (16.02.2012), Nikich (17.02.2012), Taugeshtu (20.02.2012)
Старый 16.02.2012, 17:08   #13
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Пишем свой первый игровой движок (3D Game Engine)

настоящие мужики создают окно сами. не доверяя SDL-ам.
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо HolyDel за это полезное сообщение:
falcon (22.02.2012), pax (16.02.2012), Randomize (17.02.2012), ІГРОГРАЙКО (16.02.2012)
Старый 16.02.2012, 17:26   #14
ІГРОГРАЙКО
ПроЭктировщик
 
Аватар для ІГРОГРАЙКО
 
Регистрация: 20.06.2009
Адрес: Україна
Сообщений: 152
Написано 10 полезных сообщений
(для 24 пользователей)
Ответ: Пишем свой первый игровой движок (3D Game Engine)

Сообщение от HolyDel Посмотреть сообщение
настоящие мужики создают окно сами. не доверяя SDL-ам.
Возможно)) Я смотрел пример на GameDev.ru...
И я смотрел твою тему HolyDel. А ты чем пользовалса если не секрет?
Как на счет GLM - для матриц, векторов и проче математики...?
__________________
Blitz3D, XNA, WebGL, OpenGL, Unity3D
PC: ASUS A55VM Core i3 (2.4Ghz), 6 Gb RAM, Nvidia GF 630M GT 2Gb
(Offline)
 
Ответить с цитированием
Старый 16.02.2012, 18:23   #15
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Пишем свой первый игровой движок (3D Game Engine)

ну. мой двиг на opengl, форвард контексте.
я зря использовал фишки C++0x, и даже туже прагму онце. с их поддержкой очень туго на всяких андроидах и прочей отличной от винды фигне.

glm можно использовать, чтобы со своей математикой не париться. , но настоящие мужики сами пишут математику.
я не стал - там шаблон сидит на шаблоне и шаблоном подгоняет. а оно будет много в какие единицы трансляции включаться. поэтому одна сборка моего двига занимает 15 минут (причем тутже собираются всякие буллеты и фритайпы), а не час.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо HolyDel за это полезное сообщение:
pax (16.02.2012), ІГРОГРАЙКО (18.02.2012)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com