Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / От Java к С++ (3 стр)

От Java к С++ (3 стр)

Поделиться
Страницы: 1 2 3 4 5 Следующая »
TiLexПостоялецwww27 июня 201012:07#30
xDimka
> Java уже давно объективно показала свою несостоятельность для Mobile решений.
> Мнимая кроссплатформенность
Разве это проблема языка? Это проблема разработчиков конкретных мобильных платформ, которые норовят в каждом телефоне сделать какую-то уникальную jvm.
progmachineПостоялецwww27 июня 201012:23#31
Java не годится там, где требуется максимальная скорость выполнения, и стабильность этой скорости выполнения - привет сборщику мусора.
C# в данном плане ни чем не лучше Java. Эти языки/платформы отлично подходят для обычных оконных приложений и инструментария, но ни как не подходят для задач где идёт работа с реальным временем - в контексте игр это моделирование физических процессов и рендеринг в реальном времени.
EvilSpiritПостоялецwww27 июня 201021:10#32
Мое скромное мнение состоит в том, что только будучи неадекватным человеком, можно так категорически строго судить о состоятельности/несостоятельности языка программирования...

А также следует отметить, что java гораздо более внимательный к ошибкам язык программирования, который не даст вам сделать множество ошибок, которые вы могли бы допустить, используя с++. Следовательно, бОльшая скорость разработки приложений и их бОльшая надежность java противопоставляется многообразию, гибкости  и скорости c++. На любом из этих языков программирования можно создать полноценную игру, вопрос лишь в том - важно ли для вас сделать это быстрее или чтобы это быстрее работало? Если это игра высокотехнологичная и крутая - то, выбора нет... Вам просто придется купить один из готовых движков, написанных на с++ и играть по установленным правилам. Если это игра в жанре кэзуал - то тут java может показать себя с хорошей стороны... Ну а если вы маньяк-одиночка, способный конкурировать с ведущими производителями игровых движков... То движок и делайте))))))

_Marchello_Постоялецwww27 июня 201022:15#33
Как уже упомянули - в управляемых языках камнем предкновения является сборка мусора. Именно она мешает real time работе. Не так давно я где-то натыкался на статейку в msdn blog (ага, вот вроде и она) где чувак объяснял почему MS не спешит выпускать managed враперы для real time API (в т.ч. тот же новый Media Foundation API). Вывод там один: "We don’t support multimedia APIs from managed code... GC все тормозит". Это все касается и Java.
И кстати, в Джаве нет разделения на Value & Reference типы (я не говорю про примитивные типы), это значит что создание например простого 2D/3D вектора будет задействовать GC и не дай бог еще и в куче выделятся (где-то читал что мол джава ложит маленькие объекты в стек по своему усмотрению - если это не так, то совсем печально..).
ZefickПостоялецwww27 июня 201022:38#34
  Еще раз о городских легендах о производительности - must read всем, кто думает, что GC слишком медленно даже для казуалок. От себя могу сказать, что я делал софтварный рендерен на Java и он показал себя не намного медленнее аналогичных на С++. Но это был софтварный и мало кто станет на таком делать казуалку. Если делать рендер аппаратно на OpenGL, то тогда вообще не вижу повода для тормозов.
zyganПользовательwww28 июня 20100:00#35
да при чем ваще софт рендер, я же говору у явы есть своя прога для преобразования java в натив

кстави _Marchello_, жожет я и не слишком силен Цпп я ни как не пойму почему в Цпп столько заморочек с ссылками, указателями и какая польца от их разделения :-\

EvilSpiritПостоялецwww28 июня 20101:20#36
zygan
ну типа разницы между ними нет, просто придумали ссылку, которая и есть указатель, только выглядит она как обычная переменная, то бишь как бы псевдоним)
но есть очень интересная особенность - ссылка всегда должна быть инициализирована адресом настоящего объекта. как бы. но на самом деле в с++ никто не запрещает застрелить себя в ногу)))
int &a = *((int *)NULL); //ахахахаа! не играйте, дети, со ссылками
a = 10; // можете застрелить себя в ногу!

а вообще, язык C++ наделен конструкциями с практически философским смыслом )))

class Human  {

public:

  void suicide() {
    delete this;
  }

};

int main() {
  Human *human0 = new Human();
  human0->suicide(); // это не самоубийство!
  
  Human human1;
  human1.suicide(); // вот как должно выглядеть настоящее самоубийство!
  return 0; // все бесполезно. возврата нет!
}
__SaM__Постоялецwww28 июня 20101:55#37
EvilSpirit
А при чем здесь язык? Если вы хотите "застрелить себя в ногу", то это ваше право. Язык дает только инструменты. Никто же не виноват в том, что программисты порой пишут код, и совершенно не представляются как он будет работать, а порой даже не представляют как работает то, что они используют. А потом жалуются, что в с++ полно граблей. Думать головой просто надо. Ну и не буду говорить, в чем различия ссылок и указателей. За этим лучше в учебники обратиться, там и примеры и разжевано все будет не на одну страницу.

> а вообще, язык C++ наделен конструкциями с практически философским смыслом )))
Это скорее головы некоторых программистов наделены безумными идеями, которые они не знают как реализовать. Поэтому городят черти что, а потом бьются головой об клавиатуру в поисках ошибки. Хотя ошибкой является весь кусок ихнего кода. Встречал я таких. Очень забавно наблюдать за их ходом мысли.

GLoomПостоялецwww28 июня 20102:07#38
Информация к размышлению - на Java лучше всего писать для Android OS.
AglaranirПостоялецwww28 июня 20107:24#39
Вообще странная проблема у автора.

1)В универе научили С++
2)Но на работе писать пришлось на джава
3)-> бесценные знания, полученные в универе улетучились (ай-яяй!)
4)Решил сделать любительский проЭект на С++
5)чОрт, но я ведь не знаю С++ (я его забыл). Не потсупать же снова в универ чтоб меня опять научили?!!!
6)->Придеться писать на Java (я его знаю, еще не забыл)
7)Но в умных книжках написано что Java не годиться для разработки игр. Как быть?!!
8)А есть такие книжки где написано как сделать большую игру типа Crysis, на Java?!!!

Вообще то такие книги есть. Жарков-пресс печатает. Но боже вас упаси по ним разработку игр изучать.

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

1)рассказы о пользе высшего образования - пустые байки
2)автор в свое время плохо учился


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

EvilSpiritПостоялецwww28 июня 20109:07#40
__SaM__
Более гибкий и мощный язык программирования обладает бОльшим арсеналом оружия, которое иногда стеляет даже в самых склилованных и опытных программистов. Но зачастую, они всегда носят бронежилет)))
zyganПользовательwww28 июня 20109:40#41
Я в универе не учился к сожалению, я самоучка, купил как то две книжки (автор Коваль, Глушаков, Смирнов)
"Язык программирования С++"  так вот где писал Коваль (т. е. как раз ети ссылки и указатели)  там наступает полный мрак,
и мне пришлоси розов 5 перечитывать эти главы чтоб понять из работу и где собственно они нужны,
честно говоря все равно ни х** не понял...

кстати GLoom - для явы есть свои машины и процы с java-нативом, и ОС, вот там ява работает на ура, и в полную силу...

GLoomПостоялецwww28 июня 201010:38#42
zygan
> кстати GLoom - для явы есть свои машины и процы с java-нативом, и ОС, вот там
> ява работает на ура, и в полную силу...
Я имел в виду что сейчас ява в играх лучше всего себя чувствует на мобилках J2ME и на Андроиде. В остальных местах почему-то не приживается.
0iStalkerМодераторwww28 июня 201011:01#43
zygan
> Я в универе не учился к сожалению, я самоучка, купил как то две книжки (автор
> Коваль, Глушаков, Смирнов)
> "Язык программирования С++" так вот где писал Коваль (т. е. как раз ети ссылки
> и указатели) там наступает полный мрак,
> и мне пришлоси розов 5 перечитывать эти главы чтоб понять из работу и где
> собственно они нужны,
> честно говоря все равно ни х** не понял...

Тут нужно немного понимать, что происходит внутри железного ящика, - так что лучший способ, - почитать что-нибудь  (Питера Нортона, например) по ассемблеру.

master_of_keyПостоялецwww28 июня 201011:12#44
Aglaranir
> Вообще почему-то считается что в университетах как это там..."учат учиться". Вы
> должны уметь самостоятельно искать нужную информацию, и работать с несколькими
> источниками...

вот это пожалуй самая здравая мысль.

У меня есть по С++ есть настольная книжка Т.А. Павловская С++, Программирование на ЯВУ. Там вот как раз разжевывают. Ну и отдельно по DirectX, их десятки.

Страницы: 1 2 3 4 5 Следующая »

/ Форум / Программирование игр / Общее

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

2001—2017 © GameDev.ru — Разработка игр