Войти
ФлеймФорумПрограммирование

На каком языке делают игры и почему(С++, Java,...)

Страницы: 1 2 Следующая »
#0
15:28, 2 ноя. 2009

Я не про в С++, но люблю этот язык за его мощность.

Буду банален.

Есть игра GTA 4. Насколько мне известно она сделана на С++/DX.

Я знаю, что игры пишут не только на С++.

Есть друг, который утверждает что у С++ нет преимуществ перед Java. Спор зашел с ним о создании игрушек. Ведь DX можно использовать в связке с Java? Я не про и не смог ответить почему игры такого размаха как GTA 4 делают на С++ а не на Java.

Помогите разобраться.


#1
16:32, 2 ноя. 2009

Moby
Как ты думаешь, что главное в игре уровня GTA4, если не брать в расчет сюжет и геймплей?

#2
16:59, 2 ноя. 2009

Помеха
> Как ты думаешь, что главное в игре уровня GTA4, если не брать в расчет сюжет и
> геймплей?
главное чтоб продажи были как можно выше =)

#3
17:02, 2 ноя. 2009

Логическая цепочка.
С++ vs C#
C# vs Java
Ну и вот теперь долгожданная Java vs C++.

#3
17:02, 2 ноя. 2009

Moby
> Есть друг, который утверждает что у С++ нет преимуществ перед Java.
тебя нагло и жестоко обманули : )

#5
17:05, 2 ноя. 2009

> Есть друг, который утверждает что у С++ нет преимуществ перед Java.

Дык...пусть устраивается в рокстаргейм ) покажет как надо делать GTA и на чем

#6
17:54, 2 ноя. 2009

ответ кроется в понимании того что представляют из себя эти языки, c++ является не управляемым языком(в .net есть его управляемая версия), java и языки в ходящие в .net такие как C# наоборот генерируют управляемый код, просто вызвать неуправляемый код из управляемого нельзя(для этого есть специальные алгоритмы взаимодействия).
Следовательно чтобы вы могли работать с вашими графическими api такими как opengl и d3d вам необходимо реализовать этот процесс взаимодействия чем и являются такие продукты как managed directx(MDX(каторые больше не развивается)), XNA, SlimDX, TAO opengl binding это все что касается C# и тут несколько все лучше обстоит чем в java

к сожалению в java на данный момент нету поддерживаемых биндингов к библиотеке dx или d3d, однако есть таковые к opengl(jogl, lwjgl), которые однако также поддерживаться небольшой группой энтузиастов и для использования в коммерческий проектах несколько не подходят да и это всего лишь голое api(конечно на основе их есть реализации graphic engine(http://www.jmonkeyengine.com/screenshots.php)), также нельзя забывать и про работу с вводом, звуком для библиотек работы с которыми должны быть реализованы соответствующие привязки.

я думаю теперь становиться понятно почему разработчик коммерческих игр предпочитают использовать c/c++, не потому что на языках подобных java/С# нельзя написать игру уровня gta4 а потому что некто не будет переделывать существующую инфраструктуру и средства разработки в которые были вложены огромные деньги да и дополнительный уровень абстракции такой как net или java накладывает дополнительные ограничения(не только в техническом плане).

что касается c++ vs java ваш друг в чемто прав(если не считать написание игр), да и зависит все от задачи, есть такие где java просто нету альтернатив.

#7
18:18, 2 ноя. 2009
Короче, на хрена козе бойан, если у нее уже есть аккордеон? ;)
#8
19:52, 2 ноя. 2009

>Как ты думаешь, что главное в игре уровня GTA4, если не брать в расчет сюжет и геймплей?

Графика? :)

>что касается c++ vs java ваш друг в чемто прав(если не считать написание игр), да и зависит все от задачи, есть такие где java просто нету альтернатив.

Не спорю и наверно даже примерно представляю о каких задачах идет речь.

Просто пытаясь хоть что то грамотное и обоснованное сказать про С++ я привел в пример GTA 4, на что получил ответ.

Так все таки есть такое, что Javе не под силу? Вот тот уровень абстракции, что приводит к некоторым ограничениям, может же привести к тупиковой задаче.

По моему скудному опыту я знаю, что С++ являясь низкоуровневым языком,  дает больше свободы в прямой работе с железом. Как мне кажется, Java не справится с некоторыми задачами. И если брать GTA 4, то на Jave такую производительность\качество не получится реализовать. Поправьте меня.


Кстати, извините за тупой вопрос, но ведь сам Dx написан на  С++, правильно?

#9
20:29, 2 ноя. 2009

Moby
> Вот тот уровень абстракции, что приводит к некоторым ограничениям, может же привести к тупиковой задаче.
К тупиковой точно не приведёт, возможно в некоторых случаях придётся писать больше кода.

Судя по статье в вики java особенно сильно С++ не проигрывает (но и не выигрывает). Наиболее заметный проигрыш, имхо, у неё в управлении памятью (для топовых игр наверняка критично) и шаблонах (generics в java). Плюс что бы поиграть в игру на java многим пользователям надо будет дополнительно скачать JRE из сети - это мало кому понравится. JRE весит около 16М, что может оказаться даже в несколько раз больше некоторых игр.

Правка: исправил ссылку на статью

#10
20:56, 2 ноя. 2009

Что бы там не говорили про то, что java сейчас шустрая, и по производительности догнала C++, это всё не так. Для десктоп-приложений она слишком тормозная (правильнее сказать, она не позволяет писать такой же быстрый код как С++). С++ позволяет писать быстрый код.(Конечно, если писать одинаковый код,  то может и java и не проигрывает особо плюсам) Java позволяет быстро писать легко поддерживаемый код. Для игр гораздо критичнее производительность, нежели легкоподдерживаемость. А допустим в ынтырпрайзе наоборот, дешевле писать на Java и купить более мощный сервак для приложения, чем писать на C++.

#11
21:23, 2 ноя. 2009

Moby в общем подытожив что написал max333 ( я с ним всецело согласен ) можно сказать что требуется большая низкоуровневость - как в С++ - что позволяет через один уровень абстракции ( DirectX - например ) иметь доступ к железу. В java это делается хитровымудренно и как следствие - неудобно.
P.S.: между прочим С++ задумывался не только как "улучшенный С", но и как высокоуровневая замена Asm'у - а это говорит само за себя=)

#12
22:33, 2 ноя. 2009

Да, когда пишешь на С++, самопроизвольно в уме переводишь все на асм. С джавой и шарпом это раз в 20 сложнее и становится как-то неуютно.

#13
2:45, 3 ноя. 2009

Iskander
> Логическая цепочка.
> С++ vs C#
> C# vs Java
> Ну и вот теперь долгожданная Java vs C++.


осталось тока C#vs C# )))))))))))))) ЭТО СПАРТА!!!!)))))))))1111

#14
5:29, 3 ноя. 2009

Moby
> Есть друг, который утверждает что у С++ нет преимуществ перед Java. Спор зашел
> с ним о создании игрушек.
  Я с некоторых пор прогаю на C++ и Java. У каждого есть свои недостатки и преимущества. И как раз в игрушках Java уступает сильнее всего. Как уже было сказано, в ней пока нет стандартных средств работы с 3D графикой.

max333
> к сожалению в java на данный момент нету поддерживаемых биндингов к библиотеке
> dx или d3d, однако есть таковые к opengl(jogl, lwjgl), которые однако также
> поддерживаться небольшой группой энтузиастов
  Ходят слухи, что JOGL войдёт в JDK 1.7. В любом случае, рано или поздно он или другой биндинг должен войти в базовую платформу Java. Я как-то использовал JOGL. Неудобно именно тем, что приходится поставлять всю библиотеку вместе с проектом, хоть она и не большая.

Tiendil
> многим пользователям надо будет дополнительно скачать JRE из сети - это мало
> кому понравится. JRE весит около 16М
  Что в десять раз меньше нескольких одновременно установленных версий .NET Framework, так что тут никакой проблемы я не вижу.

Страницы: 1 2 Следующая »
ФлеймФорумПрограммирование

Тема в архиве.