HeavenlyWaltz
@HeavenlyWaltz
не определился в жизни.

C++ или Java для игр и различных приложений?

Здравствуйте. я понимаю что таких вопросов много. и вероятно вы устали на них отвечать. но вот уже пару недель мучая google, яндекс, и даже bin... не могу найти конкретики и решения помогите пожалуйста....

Суть. делать Игры (game dev) и периодически приложения для различных мобильных устройств ( телефоны планшеты ).
дело в том что игры планируются как для ПК ( серьезные проекты *да да знаю большая команда много денег и т.д* то есть явно не мобильные) но также и мобильные игры которые хотелось бы и на Андройд и на ПК чтобы работали ( понятное дело это не большие игры в условиях инди разработок например, *с чего-то же надо начать :)* ).

так как в планах и что то серьезное и не очень . я понимаю что Java не очень годится, ( да и честно признаюсь не люблю я java для меня он не логичен, ужасен это точки... аж бесит вот правда...).
да и потом не было бы C++, не было бы и свойственно андройда так как я понял центральное ядро системы С++, да и в играх ( на моб устройствах) часто используют так сказать "заплатки" из кодов С++ для оптимизации и т.д..
как я понял: понятное дело что тетрис можно написать и там и там. но на С++ он будет быстрее, зато на Java проще. это я понимаю.

Да знаю про QT но там есть много платного кнтента.... из за чего про какое-то 3д можно забыть не имея суммы в кармане ( у меня её нет )

а хотелось бы вот что. подскажите как ?
ну написал я какой-то код грубо говоря в нотпаде++, ну или в любой среде по С++. Тот же тетрис например.
подключил OpenGL сделал игру запустил работает. естественно получается нечего особого у меня там не будет, в отличии если делать это через QT или туже Android studio которые напихают файлов, и в файлы кучу ненужного мусора.
то есть хотелось бы в чистую (без всяких лишних вещей что обычно используют IDE вроде ) написать тот же "привет мир", чтобы это заработало на андройде и виндовс хотябы.

или все это сложно и муторно и мне проще перебороть себя ( а это ужасно сложно для меня ). и выучить java ну или ковыряться с QT. в общем мне это для само развития больше хочется чтобы понимать как все работает и устроено ( ну очень как хочется).

Учить 2 языка, да я все понимаю НАДО ( даже спорить бессмысленно *программист должен уметь все :)* )
но хочется на С++ сразу делать и туда и туда. без лишних IDE что подскажете как лечить мне мою болезнь ? )

Прошу тех кто считает, что: Надо уметь а язык это всего лишь инструмент отвечу.

Кратко: инструменты бывают разные!!!!!, молот и наковальня( долго мучится), и например станок с ЧПУ ( нажал на кнопку все готово),

Развернуто: я уже так и вижу как по вашим рассуждениям игра уровня кризис или старкрафт 2, тера, дуум, что там еще современного есть.. и т.д пишется на Java вам самим не смешно ? , сидит примерно 50 прогеров и делают Java 3д полноценный шутер который еще и на OpenGL ( так как Java в основном на нем ) ох им весело то будет... а уж какой ПК понадобится чтобы все это запустить пентагон отдыхает...

я не идиот и понимаю что серьезные игры делаются не 1 год и далеко не 1м человеком, но сути вопроса это не меняет!

разумно читайте мой вопрос плз, и отвечайте по существу.
  • Вопрос задан
  • 7651 просмотр
Решения вопроса 1
MrNexeon
@MrNexeon
Попробуй использовать кросс-платформенные библиотеки на C++, например Cocos2d-x
Статья на хабре: https://habrahabr.ru/post/217387/

UPD:
Есть еще SFML - это очень грамотно-спроектированная библиотека, в ней имеется класс Touch для работы с сенсорным экраном, а также класс Sensor для работы с гироскопом и т.д.

Пример сборки приложения под Android: здесь
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
orcDamnar
@orcDamnar
Java, C/C++, Android SDK
Имхо. Учить нужно принципы. А писать на чем угодно. Язык - это инструмент отображения абстракций на холст, по сути.
Ответ написан
Rou1997
@Rou1997
да и потом не было бы C++, не было бы и свойственно андройда так как я понял центральное ядро системы С++

Верно, только это ничего не доказывает, а еще андроида бы не было если бы не было ассемблера, значит все писать на ассемблере?

да и в играх ( на моб устройствах) часто используют так сказать "заплатки" из кодов С++ для оптимизации и т.д..

"Заплатки" там наоборот из Java, на C++ же 99.9% кода написано.

но на С++ он будет быстрее, зато на Java проще

Нет, он будет проще на С++, потому что для C++ есть игровые "движки", вернее он будет проще, если вы будете их использовать.

Да знаю про QT но там есть много платного кнтента.... из за чего про какое-то 3д можно забыть не имея суммы в кармане ( у меня её нет )

Бред и шизофазия!

естественно получается нечего особого у меня там не будет

А чтобы было "что-то особое", для этого и нужен игровой "движок", а язык дело десятое.

и различных приложений?

А с приложениями все совершенно иначе, чем с играми.
Ответ написан
Комментировать
jamakasi666
@jamakasi666 Куратор тега Java
Просто IT'шник.
На С++ писать сложнее чем на джаве. Наговнокодить можно на любом языке и будет очень медленно и прожорливо, по потреблению ресурсов впринципе потеряете не так много если сравнивать java vs c++, если конечно не будете в рекурсивном цикле создавать миллиарды строк текста.
В любом случае, как писали выше, язык это дело вкуса и серебрянной пули несуществует вообще. Игры можно писать на готовых движках. Скажем если выбор падет на юнити то тут балом правит C# и JS. Если выберете Unreal то С++ или скриптовый блюпринт. Если же выберете путь писать двиг самому особенно для мобилок то тут будет адская смесь явы и с++. Если возьмете некий "полудвижек" или фреймворк то там вас привяжут к конкретному языку или скриптовому языку. Кроме того на каждой платформу правят свои языки и кроме того их может быть много. На андроиде это java и намного реже с++(в основном гемор из за невероятного числа костылей) или примеси html5. На IOS это objective-c и swift и так же иногда с костылями html5. На Windows С++\С\С# и реже все остальное, на маках objective-c в основном, на линуксах С++\С\Mono\Java\Python\Perl\Lua\NodeJS\Go и еще туча другого добра. Если же пишут многопользовательскую игру то сервера очень часто пишут на питоне\го\джаве\ноде.
В общем если желаете нацелиться на максимально возможное с минимальными затратами то начинайте учить джаву или с#(эти языки очень похожи и выучить другой будет легко) а дальше берите фреймворк или готовый двиг и творите. Задумывать о том что тот язык медленный\прожорливый\etc Вам не имеет смысла вообще никакого т.к. абсолютно все языки примерно одинаковы по скорости если их "хорошо готовить" и основная разница только в следующем:
1) Сложность синтаксиса языка.
2) Скорость изучения языка.
3) Сложность изучения языка и его принципов.
4) Скорость написать программы.
Обобщенный пример: Java или C# очень простые языки и можно уже через пару недель писать довольно серьезные программы но они будут медлительны по одной простой причине, для того чтобы понимать что вот это медленно и надо писать по другому пройдет очень много времени и стажа т.к. многие моменты коварно абстрагированы в недрах VM. Ситуация с С\С++ другая, языки в 10ки раз сложнее особенно новичку, для написать сколь нибудь сложной софтинки придется усиленно изучать язык пол года и больше но за счет необходимости читать и понимать и большего времени изучения у вас изначально код будет быстрее просто потому что уже будет хоть небольшое но понимание почему так медленнее а так быстрее и почему так ресурсов кушается больше а так меньше. То же самое относится и к переносимости языка на другие платформы, джава сильно абстрагирует api от железа и OS и программист просто пишет 1 код и он просто работает везде где есть джава. На С++ огромное число граблей при переносе софтины с win на линуксы и наоборот, почти весь код который как то работает с OS или железом придется переписывать заново. Ну и про скорость написания софта, java\c# сильно впереди, чужой код в сотни раз проще понять чем чужой код на с\с++, программист думает именно над алгоритмом исключая думы над тонкостями работы с памятью и т.д.
Выбор полностью за вами =D.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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