Задать вопрос
InzhirXD
@InzhirXD

Что нужно знать для создания собственного движка?

Меня посетила несколько недель назад мысль о создании собственного игрового движка
Он планируется быть двумерным и работать на С++ и OpenGL.
Я делаю его чисто для себя, потому что мне интересно.
И не надо мне говорить, что лучше сначала сделать что-то проще и набраться опыта, и что свой движок это слишком сложно - я уже решил.

Ну, и теперь к сути вопроса. Что мне нужно знать, чтобы я смог это сделать? Типа, какая нибудь линейная алгебра, алгоритмы на С++ и т.д.
Что мне может пригодится как из знаний по С++ так и из математики?
Хочу знать, чтобы изучить эту тему и чтобы было проще в моем деле без постоянного рысканья в интернете или недельных изобретений велосипедов
  • Вопрос задан
  • 234 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 2
GavriKos
@GavriKos Куратор тега Разработка игр
Нужно очень хорошо знать и понимать принципы рендера изображений, работу с опенГЛ и вот это все. Т.е. как рисуется картинка, как на нее натягивается текстура, как все это масштабируется и поворачивается, что тут в этом всем делают шейдера и прочее прочее. Чем глубже эту тему знаете - тем круче графика у движка.

Из математики обязательно: матрицы, тригонометрия, плани/стереометрия (декартовы координаты). Без этого вообще никак - это основа основ.

Из ЯП стандартно: алгоритмы поиска, сортировки, структуры данных (особенно деревья), ну и навык проектирования и архитектуры больших систем
Ответ написан
Знать нужно много чего...
Само собой программирование: C++, C#, Java или другие.
Математика: необходимо знание основ алгебры, геометрии, тригонометрии и математического анализа.
Физика: нужно знать основы, чтобы моделировать физические взаимодействия в игре.
Графика: нужно знать, как создавать 2D и 3D графику, а также как обрабатывать изображения.
Звуковое сопровождение: принципы работы со звуком, чтобы создать качественное звуковое сопровождение для игры.
Геймдизайн: нужно иметь представление о том, как создать интересный и увлекательный геймплей.
Сетевой код: если хотите создать многопользовательскую игру, то необходимо знать, как реализовать сетевой код.
Оптимизация: нужно уметь оптимизировать код, чтобы игра работала быстро и без сбоев на различных устройствах.

Ну и, естественно, уметь пользоваться поисковиком, так как искать придется много разной информации.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
AshBlade
@AshBlade
Просто хочу быть счастливым
Дополняя ответ Геннадий на ютубе есть канал The Cherno.
Это бывший разраб из одной игровой компании (забыл какой). У него есть целый плейлист по созданию движка.
Также он там обясняет базу (алгоритмы, математика), делает свою игру на Java без движка. Лично мне помогло разобраться со многими базовыми вещами, когда делал свою игру на WinForms
Ответ написан
Комментировать
@CBET_TbMbI
Дополняя другие ответы.
Для начала определись для каких игр делаешь движок. 2д - это слишком абстрактно.

Если это платформеры бродилки с видом сбоку, то нужна полноценная физика (хоть и плоская) - гравитация, законы Ньютона и т.п.

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

Если ты хочешь делать головоломки типа тетриса, 3-в-ряд, шашек, то для них движок вообще не очень-то и нужен - их и с нуля не сложно создать.

Ещё подумай, где будет граница движка. Какие-то элементы можно создать в виде заготовок в движке, а другие можно в движке не закладывать, а приделывать уже при разработке конкретных игр.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы