Что нужно знать для написания собственного игрового движка?
| |
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) --------------------------------------------- хм..Всем спасибо.Понял, что одному нормальных движок не сделаешь.
|
|
| |
|