Я программист 2D игр. Некоторые языки программирования, в которых я хорошо разбираюсь, это C, Java, C #. Я также знаю Actionscript 2.0,3.0 и немного JavaScript. Я заинтересован в изучении программирования 3D игр. Так далеко от исследований, которые я накопил, гуглил и читал различные форумы и статьи по разработке игр. Я заметил, что большинство программистов, как правило, предпочитают C ++. Также в курсе обучения программированию онлайн-игр я заметил, что они предпочитают преподавать C ++ и Visual C ++ в качестве начального курса. Причина, по которой я задаю этот вопрос, так как я хотел бы знать разницу в силе C ++, C # и Java для программирования трехмерных игр.
Также включите ссылки на хорошие статьи по программированию 3D-игр для уже 2-го программиста игр.
PS: ИМХО, я также считаю C ++ загадочным.
источник
Ответы:
Да, C ++ - это язык, который используется чаще всего (хотя некоторые люди до сих пор используют C).
Есть множество причин для этого. Один импульс - это просто язык, который использовался годами, многие технологии уже существуют, и людям это удобно, поэтому изменения не произойдут в одночасье.
Тогда есть проблема контроля. Разработчики игр - фанаты управления, и нам нравится знать все, что происходит в нашем коде. C ++ дает нам тот контроль, C # и Java (чтобы выбрать две альтернативы, которые вы упомянули) отнять контроль. Во многих отношениях это может быть хорошо, но разработчикам игр это не нравится :)
Наконец, есть простая практическая проблема, заключающаяся в том, что SDK для различных платформ очень ориентированы на C ++. Использование другого языка неизбежно включает в себя написание оболочек, кросс-компиляцию до виртуальных машин и, возможно, (в случае некоторой разработки консоли) это не разрешается держателем платформы (им действительно не нравятся люди, выполняющие JIT-компиляцию, для начала).
источник
C ++ по-прежнему является предпочтительным, как вы можете видеть практически во всех публикациях на тему разработки игр. Лично я в настоящее время использую C для того, чтобы погрузиться в разработку игр по той простой причине, что код C ++, который я пишу, злоупотребляет шаблонными функциями, широко использует RAII, динамическое распределение памяти и другие вещи, которые вы просто не должны делать в игровом коде из того, что я видел слишком далеко.
Придерживаться С заставляет меня быть минималистичным и думать о том, что я делаю. Иногда бывает сложнее, когда вам нужно переопределить то, что STL дает вам бесплатно, но, с другой стороны, я чувствую, что пишу более чистый код и лучше отлаживаю эту вещь.
источник
Я лично не фанат C ++, и я предпочитаю Java. Тем не менее, большинство людей в отрасли используют его, и это самый простой язык для преобразования на другие платформы без упаковщиков и виртуальных машин.
Тем не менее, иногда другие языки работают довольно хорошо для разработки игр. Я использую Java с LWJGL, и это удивительно. Так что если вы хотите начать с 3D-программирования и OpenGL без изучения C ++, попробуйте LWJGL с Java, потому что он очень легкий и, на мой взгляд, на самом деле код C ++ работает через JNI.
Возможно, в конечном итоге вы захотите переключиться на C ++, но вы можете начать и попрактиковаться с C # или Java. Потому что большая часть игрового кода основана на опыте с языком, но вы должны попробовать OpenGL на языке, который вам удобен. Кроме того, в то время как вы практикуете графику, вы должны также попробовать GLSL с OpenGL, он имеет очень C-подобный синтаксис
источник