@durnevdanya

Почему C++ лучше для игрового движка, а не Java?

Всем привет. Давно видел споры на эту тему. Есть lwjgl (light weight java game library), она дает выход к OpenGL, на ней есть пара движков и игр. Но многие говорят, что для написания движка лучший выбор - С++. Почему? Java вообще для этих целей не подходит? Или как :)
  • Вопрос задан
  • 5341 просмотр
Решения вопроса 4
xez
@xez Куратор тега Java
TL Junior Roo
Язык программирования - это инструмент решения задач.
Java, C, Js, Python.... это все инструменты.
И так же, как молоток подходит для заколачивания гвоздей, а отвертка - для закручивания шурупов, Java подходит для написания приложений с мощной логикой, а Js, например, для веселых страничек в интернете.
Можно и молотком шурупы "закручивать" и отверткой гвозди забивать, но гораздо эффективней использовать инструменты по прямому назначению.
Холивары тут бессмысленны и бесполезны - не стоит сравнивать Java и C++. Никто же не спорит о молотках против отверток (всем же понятно, что молотком - быстрее)). В каких то задачах уместнее использовать Java, в каких-то - плюсы.
Ответ написан
Комментировать
devalone
@devalone
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
Из-за производительности, именно для движка лучше подходит C++, т.к. позволяет писать максимально эффективно и без тормозного сборщика мусора. А Java подходит для игровой логики, где не нужна производительность, но будет очень кстати язык, в котором сложнее выстрелить себе в ногу.
Ответ написан
@apro
> Но многие говорят, что для написания движка лучший выбор - С++. Почему? Java вообще для этих целей не подходит? Или как :)

Просто статистика - 99% AAA написано на C/C++.

Из очень популярных игр на Java был только minecraft,
но недавно MS объявил что все перепишет на C++, вернее уже использует
написанный вариант на C++ под все платформы.

Но если не собираетесь заниматься разработкой ААА игр,
то просто изучите один из движков - Unity/C# или unreal engine/C++ и вперед.

Java к сожалению в списке нет.
Все это конечно в контексте коммерческой разработки игр.

Для себя или свой собственный инди проект пишите на любимом языке
и от этого возможно и игра будет лучше.
Ответ написан
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Если вы не пишете свой Unreal Engine, Java хватит на очень многое. Но если надо выжать все соки из железа, то берут C++.
libgdx (который юзает ljwgl как бэкенд на десктопах, если я правильно понял) довольно-таки на слуху, то есть народ делает на нем игры и не очень разочаровывается.

Если у вас цель сделать игру — берите Unity3d или Unreal Engine или 100500 других движков и делайте игру.
Если цель «изучить Java путем написания игры», то берите учебник по джаве и libgdx.

А учить ЯП, чтобы с нуля написать движок в 2017 году — контрпродуктивно.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Java-код исполняется внутри виртуальной Java-машины.
C++-код компилируется в байт-код для прямого исполнения процессором.

Спецификации байт-кода и исполняющих его виртуальных машин могут сильно различаться для разных языков: часто байт-код состоит из инструкций для стековой виртуальной машины, однако могут использоваться и регистровые машины. Тем не менее, большинство инструкций байт-кода обычно эквивалентны одной или нескольким командам ассемблера.
----------
Источник: Википедия

Итог: лишняя прослойка замедляет исполнение логики в Java-приложении по сравнению с C++, но готовое Java-приложение возможно запустить на большинстве устройств и операционных систем без дополнительной перекомпиляции и оптимизации под конкретную платформу.

О Java (оф. сайт)
Ответ написан
Ваш ответ на вопрос

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

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