Другие языки программирования и технологии

На чем пишут графические движки для игр?

Zafar Yunusov
Zafar Yunusov
24 328
На том же, на чем и простенькие игры без движков.
Графические библиотеки - OpenGL или DirectX.

Чтобы написать движок, надо начать писать игру, для которой этот движок.
Просто писать ее под графическую библиотеку, без всяких движков и даже без мыслей о движках.
На первых порах все будет получаться. Но постепенно вы будете замечать, что если использовать графбиблиотеку напрямую, то многие простые вещи становятся сложными и занимают десятки, если не сотни строк кода. И эти строки кода приходится копипастить туда, где они нужны, и переделывать их местами. Код загромождается, повышается вероятность ошибки по невнимательности.
Конечно, вам захочется шаблонные куски кода вынести в функции, чтобы каждый кусок из множества строк кода можно было заменить 1 строкой кода - вызовом функции. Потом вы увидите, что неплохо бы еще и внедрить модули, а затем и объекты, чтобы как-то разделить различные функции и не путаться в них - тогда вы внедрите ООП.
Таким образом можно (и нужно) написать мощный, объектно-ориентированный движок, на котором реально удобно делать игры.

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

Таким же способом пишутся и любые другие фреймворки, скажем, для GUI.
И чем круче и шире те задачи, которые вы решаете в процессе написания фреймворка, тем круче и фреймворк получится.

А вот что при создании движка/игры важно, пожалуй, меньше всего - так это ЯП.
Ну по соображениям производительности лучше брать Си/С++, чем C# или тем более Java. Но уж лучше хороший (реально облегчающий создание игры) движок на C#, чем плохой на чистом
НШ
Нусратулло Шарипов
26 662
Лучший ответ
Максим Лапко Почему столько людей не отмечают лучшие вопросы??? -_-
Ернар Абдилденов "Чтобы написать движок, надо начать писать игру, для которой этот движок. " - это имеется в виду, что примерно надо себе представлять, что будет? или Вы имеете в виду сначала игровой движок запилить, а под него графический? если последнее, то мне кажется, лучше пилить графический, сразу же подпиливая игровой

"Потом вы увидите, что неплохо бы еще и внедрить модули, а затем и объекты, чтобы как-то разделить различные функции и не путаться в них - тогда вы внедрите ООП" - зачем, если есть структуры и вложенные структуры?
На чём угодно. Чаще всего c++.
Юрий Бреляков
Юрий Бреляков
64 122
Представьте себя архитектором игрового движка. Какие требования к движку главные для вас? Максимальная скорость работы на крутом железе? Максимальная переносимость, чтобы в любом утюге работало? Чтобы работало в любой системе, где есть веб-браузер? Отсюда -- и выбор языка для реализации.
На языках программирования. Чаще всего и оптимально - С++.
VB
Vova B@l@n
8 276
На языках программирования, не?
,tnvty
,tnvty
661
Zafar Yunusov на каких, или у тебя нет дольки мозга