| 
	
		
		
			| Что нужно знать для написания собственного игрового движка? |  |  |  | 
| Dooniil | Дата: Четверг, 26 Марта 2015, 13:20 | Сообщение # 1 |  |   частый гость Сейчас нет на сайте | Вопрос таков: что лучше использовать и с чего начинать писать свой игровой движок? DirectX 9 выдает нормальную картинку? Прошу ответить на вопросы. |  |  |  |  |  | 
| WTALKER | Дата: Четверг, 26 Марта 2015, 13:37 | Сообщение # 2 |  |   постоянный участник Сейчас нет на сайте | Об этом думали в начале 2000-х. Сейчас делают свои конструкторы игр.
 |  |  |  |  |  | 
| Dooniil | Дата: Четверг, 26 Марта 2015, 13:50 | Сообщение # 3 |  |   частый гость Сейчас нет на сайте | Ну смотри, свой движок удобен тем, что ты его знаешь досконально.Да и опыта много наберешься в процессе создания. С чего начинать то? На чем писать? Знаю C++ на среднем уровне, дальше изучаю. |  |  |  |  |  | 
| AlexRabbit | Дата: Четверг, 26 Марта 2015, 13:51 | Сообщение # 4 |  |   старожил Сейчас нет на сайте | Игровой движек для какой игры? |  |  |  |  |  | 
| Dooniil | Дата: Четверг, 26 Марта 2015, 14:12 | Сообщение # 5 |  |   частый гость Сейчас нет на сайте | в большей части для TPS, помоему как-то так(Third Person Shooter), тоесть игры от третьего лица, с более менее большим миром |  |  |  |  |  | 
| OpenGOO | Дата: Четверг, 26 Марта 2015, 14:20 | Сообщение # 6 |  |   почти ветеран Сейчас нет на сайте | Так бери движок с открытим кодом и изучи его досконально, а когда изучишь его, то тогда и вопрос сам собой отпадёт. 
 Мои проекты:
 - Свободный и открытый клон World Of Goo
 - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
 
 [GameMaker: Studio v1.4.9999]
 |  |  |  |  |  | 
| Dooniil | Дата: Четверг, 26 Марта 2015, 14:26 | Сообщение # 7 |  |   частый гость Сейчас нет на сайте | можешь порекомендовать какие-нибудь? |  |  |  |  |  | 
| vanvanich | Дата: Четверг, 26 Марта 2015, 15:36 | Сообщение # 8 |  |   почетный гость Сейчас нет на сайте | Цитата можешь порекомендовать какие-нибудь? Unreal Engine 4 . Открытые исходники + Бесплатный + Один из самых мощных на рынке .
 |  |  |  |  |  | 
| Noterstone | Дата: Четверг, 26 Марта 2015, 15:40 | Сообщение # 9 |  |   участник Сейчас нет на сайте | Dooniil, 
 Цитата DirectX 9 выдает нормальную картинку?А ты в сталкер, крайзис не играл? Картинка от тебя зависит, в большей части, от того, что реализуешь сам и что уже реализовано.
 |  |  |  |  |  | 
| Saitei | Дата: Четверг, 26 Марта 2015, 16:06 | Сообщение # 10 |  | старожил Сейчас нет на сайте | Любой язык программирования (без экзотических, разумеется. Хотя бывает всякое) + GAPI (DirectX\OpenGL\etc + прямые руки = супер движок, ага) Ну и, конечно же, нужен талант архитектора ПО. Лично у меня (да-да, я тоже пилю движок) часто возникают проблемы со внутренним устройством движка и некоторыми названиями... Начинаешь думать и понимаешь, что кое-где что-то нелогично. Рефакторишь, рефакоришь... И в итоге ничего нового не делаешь..
 Добавлено (26 марта 2015, 16:06)---------------------------------------------
 P.S. Я юзаю OpenGL 3.3 (думаю переходить на 4.0) и С++11.
 Так же не стесняюсь юзать готовые библиотеки по типу GLEW, GLFW, SOIL, GLM, etc.
 |  |  |  |  |  | 
| Dooniil | Дата: Четверг, 26 Марта 2015, 16:19 | Сообщение # 11 |  |   частый гость Сейчас нет на сайте | Цитата vanvanich (  ) Unreal Engine 4 . Открытые исходники + Бесплатный + Один из самых мощных на рынке .мой комп слабый, можно смотреть исходники, не открывая саму программу(или я что-то не догоняю).
 Моя видеокарта первобытных времен, не поддерживает DirectX 11 и OpenGL 3,4.
 
 Цитата Saitei (  ) P.S. Я юзаю OpenGL 3.3 (думаю переходить на 4.0) и С++11. Так же не стесняюсь юзать готовые библиотеки по типу GLEW, GLFW, SOIL, GLM, etc.
Ты пишешь свой API для скриптинга внутри движка?
 С чего вообще начать? Я просто не имею понимания, как организовывается весь движок, какая у него структура. Как ты это понял?
 |  |  |  |  |  | 
| Эргалон | Дата: Четверг, 26 Марта 2015, 17:07 | Сообщение # 12 |  |   Вездесущий Сейчас нет на сайте | Dooniil, Не поймешь структуру пока не начнешь. У всех она может быть организована по разному. Делай пока так, чтобы что-то получилось, со временем будешь упрощать код и менять структуру. Чтобы это объяснить, потребуется очень много времени. 
 Кубариум
 Rise of the dark lords
 |  |  |  |  |  | 
| Dooniil | Дата: Четверг, 26 Марта 2015, 17:31 | Сообщение # 13 |  |   частый гость Сейчас нет на сайте | Ну у меня такое представление, что на каждую функцию делать свой файл с кодом, а потом подключать его к main файлу, а в нем делать проверки, нужно ли выполнять эту функцию или не надо. Но вот как сами эти функции писать, в какой структуре? Вообще, с чего начинать. На чем писать Gui движка. Вот вопросы, которые меня волнуют. |  |  |  |  |  | 
| Эргалон | Дата: Четверг, 26 Марта 2015, 17:36 | Сообщение # 14 |  |   Вездесущий Сейчас нет на сайте | Dooniil, То что ты называешь "файлом" зовется классом и в нем может быть несколько функций. Как писать? Сначала определись с языком на котором будешь программировать и читай манулы. Примеров написании функции до едрени фени. Но чтобы начать писать с 0, надо просто понять простейшие термины, вроде переменных, их типов, массивы, функции, методы и т.п. 
 Кубариум
 Rise of the dark lords
 |  |  |  |  |  | 
| Dooniil | Дата: Четверг, 26 Марта 2015, 17:49 | Сообщение # 15 |  |   частый гость Сейчас нет на сайте | я учил C++, знаю на среднем уровне, надо почитать про ООП и классы. Но помоему, я смотрел некоторые мастер классы(или что-то типо того), так там функции писали в разных .cpp файлах, а потом подключали к одному с помощью #include и использовали функции, переменные из того файла, которого подключили |  |  |  |  |  | 
| Эргалон | Дата: Четверг, 26 Марта 2015, 18:02 | Сообщение # 16 |  |   Вездесущий Сейчас нет на сайте | Dooniil, Чувак, если бы ты знал с++ на среднем уровне, то не задавал бы глупых вопросов. Если ты называешь файл с одной функцией и мастер-классы, о которых я лично слышу впервые, то тут явно проблема в твоем знании ООП и программировании в целом. 
 Цитата  надо почитать про ООП и классыС этого и начни пожалуй, чтобы отбросить тонну левых вопросов.
 
 Кубариум
 Rise of the dark lords
 |  |  |  |  |  | 
| Dooniil | Дата: Четверг, 26 Марта 2015, 18:05 | Сообщение # 17 |  |   частый гость Сейчас нет на сайте | ок, спасибо, пошел читать)) Цитата Эргалон (  )  Чувак, если бы ты знал с++ на среднем уровне, то не задавал бы глупых вопросов. Если ты называешь файл с одной функцией и мастер-классы, о которых я лично слышу впервые, то тут явно проблема в твоем знании ООП и программировании в целом. Могу оправдать себя тем, что уже как 3 года особо не сталкивался с программированием.
 |  |  |  |  |  | 
| HPlusDiese | Дата: Четверг, 26 Марта 2015, 18:08 | Сообщение # 18 |  | участник Сейчас нет на сайте | Dooniil, Есть книги по архитектуре движков. Куча статей и презентаций. Гугли "game engine architecture". На русском на эту тему ничего нет вроде.
 
 Цитата Dooniil (  ) DirectX 9 выдает нормальную картинку?Нормальную. Но лучше забудь про него.
 Жди Vulkan и DX12. DX9 почти умер, DX10 тормознутый и устаревшый, DX11 тоже скоро кончится. DX12 придёт надолго, как и девятый в своё время.
 
 Цитата Dooniil (  ) я учил C++, знаю на среднем уровне, надо почитать про ООП и классы. Но помоему, я смотрел некоторые мастер классы(или что-то типо того), так там функции писали в разных .cpp файлах, а потом подключали к одному с помощью #include и использовали функции, переменные из того файла, которого подключилиПоучи ещё. Особенно управление памятью. Изучи паттерны. Научись писать свои аллокаторы, напиши свой GC. Вкури многопоточность.
 Через годик задайся снова вопросом о движке. Если хватит знаний и будет лет 5-6 свободного времени для написания, то дерзай.
 
 
 Сообщение отредактировал HPlusDiese - Четверг, 26 Марта 2015, 18:09 |  |  |  |  |  | 
| CaptainHunt | Дата: Четверг, 26 Марта 2015, 18:15 | Сообщение # 19 |  |   был не раз Сейчас нет на сайте | Цитата что лучше использоватьЭто зависит от твоих требований к движку. Нет универсального движка, который подходит для всего. Нужно внимательно изучить варианты (смотри в моих пояснениях к вопросам) и выбрать то, что тебе нужно. Например у физических движков есть у каждого свои минусы и плюсы - ODE делает акцент на скорости в ущерб точности, а Newton делает акцент на точности.
 
 
 Цитата с чего начинать писать свой игровой движок?С понимания архитектуры игрового движка. Прежде чем начать писать, нужно хорошо понять из чего состоит игровой движок.
 Ответь себе на следующие вопросы:
 1) Движок для 2D или 3D игр? (2D сделать намного проще)
 2) Если 3D - есть ли у меня хорошее понимание 3d графики? (без этого невозможно работать с АПИ DirectX и OpenGL)
 3) для каких ОС ? (если только для Windows, то можно использовать для графики и DirectX и OpenGL. Если для др. платформ - DirectX не поддерживается.
 4) знаю ли я что-нибудь о звуковых библиотеках? Знаю ли чем они отличаются? (кроссплатформенность, поддерживаемые форматы, документация, примеры, проработанная/сырая, набор фич и т.д.)
 5) знаю ли я что-нибудь о физических библиотеках? Чем отличаются друг от друга PhysX, ODE, Newton, Bullet и др.
 6) насколько я силён в математике (тупо копировать чьи-то алгоритмы не даст результат) - косинусы, синусы, векторы, радианы и др. понятия?
 7) есть ли у меня понятие об оптимизации?
 8) есть ли у меня понимание того, что такое ООП?
 Вообще, движок только для меня или для других? (если для других, нужно будет учитывать их требования, пожелания, капризы, в общем будет дополнительная работа).
 9) что обязательно должно быть в движке? что желательно?
 10) ... ? ... ? много других вопросов.
 В общем, и по времени и по объёму и глубине знания и понимания и по терпению и настрою идти до конца написание игрового движка сравнимо с постройкой частного дома (может быть только деньги не нужны, как при строительстве дома).
 
 Начать, может быть сможешь, а закончить..., готов ли ты терпеливо искать проблемы. Например столкнёшься с тем, что при вращении объекта он будет оказваться не в том положении (ориентации), которая должна быть. Будешь пробовать и так и сяк и бросишь (или будешь часами искать решение в сети, пока не наткнёшься на т.н. 'gimbal lock'). Или при попытке загружать на сцену 3d модели, увидишь, что какие-то грузятся, а какие-то нет. И опять искать, гуглить и не только.
 
 
 Цитата DirectX 9 выдает нормальную картинку?Нормальную. Только капризный он. По сравнению с Directx 11 нет некоторых суперсовременных эффектов.
 
 WorldSim3D: сделай 3D игру на С++/FreeBasic/D для PC Windows/Linux. Программируй в удовольствие, а не "в тягость"! Make your project with pleasure, not with strain! Ознакомиться
 |  |  |  |  |  | 
| Dooniil | Дата: Четверг, 26 Марта 2015, 18:35 | Сообщение # 20 |  |   частый гость Сейчас нет на сайте | ок, спасибо, пошел читать)) Цитата Эргалон (  )  Чувак, если бы ты знал с++ на среднем уровне, то не задавал бы глупых вопросов. Если ты называешь файл с одной функцией и мастер-классы, о которых я лично слышу впервые, то тут явно проблема в твоем знании ООП и программировании в целом. Могу оправдать себя тем, что уже как 3 года особо не сталкивался с программированием.
 Добавлено (26 марта 2015, 18:35)---------------------------------------------
 хм..Всем спасибо.Понял, что одному нормальных движок не сделаешь.
 |  |  |  |  |  
 |