Всем привет. Давно видел споры на эту тему. Есть lwjgl (light weight java game library), она дает выход к OpenGL, на ней есть пара движков и игр. Но многие говорят, что для написания движка лучший выбор — С++. Почему?

Java вообще для этих целей не подходит? Или как 🙂

  • Вопрос задан более трёх лет назад
  • 5135 просмотров

6 комментариев

Оценить 6 комментариев

быстродействие же. java одна из самых медленных.
если сравнивать не тупо for 100500, а именно создание объектов классов, вызовы функций, да и конкретные обертки того же opengl, то думаю даже медленнее шарпа будет.
поэтому даже под андроид игры на java пишут редко

Impeeeery: современная джава не медленнее С++. AoT, JIT, компиляция под конкретную платформу и с runtime-оптимизациями.

Денис Загаевский: Правда что ли? Не знал. Сам вижу все время обратные подтверждения. А сборка мусора просто бесит временами.

Денис Загаевский: ну значит библиотеки кри. не успевают за всей этой красой джавы

Я сделал МАЙНКРАФТ за 24 часа


и да — обращаться к нативной либе через обертку всегда насколько-то медленнее, чем обращаться к нативной либе.
а значит, иногда и критично

res2001: сам видишь обратное, но вот же говорит человек, надо верить.

res2001: сборка мусора минус. С ней можно бороться определёнными приёмами — пулы объектов, например, использовать. Я не говорю, что джава супер подходит для движков, но утверждения, что она медленная и тормозная не соответсвует истине.

Решения вопроса 4
Senior Junior Roo

Язык программирования — это инструмент решения задач.
Java, C, Js, Python. это все инструменты.
И так же, как молоток подходит для заколачивания гвоздей, а отвертка — для закручивания шурупов, Java подходит для написания приложений с мощной логикой, а Js, например, для веселых страничек в интернете.
Можно и молотком шурупы «закручивать» и отверткой гвозди забивать, но гораздо эффективней использовать инструменты по прямому назначению.
Холивары тут бессмысленны и бесполезны — не стоит сравнивать Java и C++. Никто же не спорит о молотках против отверток (всем же понятно, что молотком — быстрее)). В каких то задачах уместнее использовать Java, в каких-то — плюсы.

Ответ написан более трёх лет назад
Комментировать
Нравится 6 Комментировать
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻

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

Ответ написан более трёх лет назад
Нравится 3 4 комментария

Alex_Wells

Спрашиваю для себя: А как же Unity на C#? Как он себя ведет в сравнении с C++/Java?

KolesnichenkoDS

Alex Wells: Unity не на C# написан

Alex Wells: юнити на C++, на нём написан движок и все критичные к произволительньсти части(физика, рендер и т.д.) а C# там для скриптов, где как раз производительность не так важна.

Alex_Wells

Понял, извиняюсь за незнание)

> Но многие говорят, что для написания движка лучший выбор — С++. Почему? Java вообще для этих целей не подходит? Или как 🙂

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

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

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

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

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

Ответ написан более трёх лет назад
Нравится 1 1 комментарий

Java к сожалению в списке нет.

А добавь к списку LibGDX и тогда Java сразу появится. 🙂

k12th

console.log(`You’re pulling my leg, right?`);

Если вы не пишете свой Unreal Engine, Java хватит на очень многое. Но если надо выжать все соки из железа, то берут C++.
libgdx (который юзает ljwgl как бэкенд на десктопах, если я правильно понял) довольно-таки на слуху, то есть народ делает на нем игры и не очень разочаровывается.

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

А учить ЯП, чтобы с нуля написать движок в 2017 году — контрпродуктивно.

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ответы на вопрос 1
https://sitecoder.blogspot.com

Java-код исполняется внутри виртуальной Java-машины.
C++-код компилируется в байт-код для прямого исполнения процессором.

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

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

Ответ написан более трёх лет назад

C++ компилируется не в байт-код, а в машинный код, это Java-код как раз таки компилируется в байт-код для последующего использования в JVM.

Ваш ответ на вопрос

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

cpp

  • C++

Как упростить код?

  • 1 подписчик
  • 4 минуты назад
  • 4 просмотра

java

  • Java
  • +1 ещё

Хочу подключиться к веб серваку и принять оттуда джейсон, вписав пароль и логин но подключения нет?

  • 1 подписчик
  • 6 часов назад
  • 70 просмотров

Источник: qna.habr.com

Интервью Джеба журналу TIME

Главный разработчик Minecraft рассказывает о новом Изыскательском обновлении, продолжении игры и «Проклятии Майнкрафта».time-jeb-01 Они гораздо больше чем можно предположить… Мистические лесные особняки Майнкрафта — это огромные строения из булыжника и дерева, хорошо заметные даже на расстоянии больше сотни блоков.

Огромные прямоугольные мавзолеи, они словно прорываются среди сказочных лесных массивов и гигантских грибов. Внутри лежат сокровища, охраняемые бурчащими серыми созданиями, которые могут вызывать крылатых бесов и клыки, хватающие вас за ноги, или могут гоняться за вами с топорами в руках по длинным украшенным коврами залам. Одного из них, кстати, зовут Джонни.

Все они являются частью Исследовательского обновления (Exploration update), следующей итерации песочницы от Mojang. Оно доступно для Java-издания и включает в себя и другие забавные новинки, такие как ламы (которые переносят ваши предметы и могут плеваться по команде), шалкеровые ящики (они сохраняют предметы даже если их разбить) и деревенские картографы, которые продают карты исследователей, на которых указан путь к лесным особнякам или к древним океанским монументам.

Читайте также:  Сделать маринованный паучий глаз в Майнкрафте

TIME удалось побеседовать с креативным руководителем Minecraft Йенсом Бергенстеном о том, чем было вдохновлено Исследовательское обновление, об обеспечении равенства версий на различных платформах, о выборе языка программирования и о том почему сиквел — это вероятно плохая идея. И вот что он нам рассказал.

TIME: Что вдохновило на создание зловредов (Illagers, враждебных деревенщин), которые живут в лесных особняках? Йенс Бергенстен: Процесс разработки Майнкрафт порой довольно случайны. Иногда мы просто сидим и играем или обсуждаем идеи, которые у нас есть. Потом мы экспериментируем с этими идеями и иногда они просто взрываются. Дело было так.

Я построил дом в лесу и тестировал в нём разные вещи. А потом подумал, что я могу бы генерировать дом используя блок-конструктор, который по сути копирует части мира. После того как немного над ним повозился, я понял, что он мне нравится и я решил сделать его частью игры. По сути — это были просто мысли.

Также я понимал, что если я буду добавлять его в игру, то это будет что-то вроде сокровищницы, и надо будет населить его каким-то новым видом мобов. А ещё мы говорили с коллегами о том, что в Майнкрафте нет ни одного моба, который мог бы быть расширен так, чтобы у него была какая-то определённая тематика или цель.

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

И ещё я знал, что я хочу создать что-то вроде цепной атаки. Эти две возможности были потом добавлены Заклинателю (один из двух новых зловредов, второй — это вооружённый топором Поборник). time-jeb-02 Зловреды могут вызывать летающих прислужников, называемых Врединами.

Была ли это попытка поощрить использованию оружия дальнего боя? Идея состояла не в том, чтобы игроки активно пользовались оружием дальнего боя, а наоборот чтобы им пришлось больше перемещаться. Нужно было убедиться, что им не удастся долго находиться на одном месте.

Ведь обычно можно стоять на месте и ждать пока монстры окажутся в пределах досягаемости, я же хотел попробовать что-то другое. Вообще, не так-то просто сделать что-то сложное в Майнкрафте, без банального увеличения урона и здоровья. Я думал, что будет гораздо интереснее, чтобы появились ситуации, когда вас могут атаковать всё время с разных сторон.

Тем не менее, я знаю, что некоторым игрокам (которые играли в пробные версии) кажется что Лесные особняки и зловреды слишком лёгкие. Что ж… Мне как разработчику не так-то просто угодить всем. Есть ещё что рассказать об этих зловещих особняках, которые словно созданы для тёмных лесных биомов и куда они отлично вписались?

Говоря об особняках, надо остановиться на проблеме, которая была ещё со времён когда мы добавили Океанские монументы. Люди знали, что они где-то в океане, но очень раздражало если вам не удавалось найти хотя бы один. Как я говорил раньше: это классно находить вещи, но очень скучно когда поиски растягиваются. Хотя иногда лучше, когда ты неожиданно находишь что-то в Майнкрафте.

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

Давайте поговорим о единообразии версий, с точки зрения распространения игры на разные платформы. Майкрософт уже заявляло о том что главная цель — это равнозначность версий. Но на игровых консолях нет бесконечных миров. И в оригинальную версию для Java добавляются вещи, которые другим версиям приходится долго ждать.

Думаю, что некоторые консоли старого поколения никогда не смогут получить все возможности Java-версии. Компания 4J Studios делает хорошую работу и не запаздывает с обновлениям. Тем не менее, когда-то в будущем нам придётся провести черту и сказать: «Игра должна быть такой». И тогда мы будем нацелены исключительно на современные устройства.

Нынешние консоли, такие как Xbox One или PlayStation 4 вполне способны подхватить все возможности. Можно сказать, что я всегда об этом помню, когда добавляю что-то новое в Java-версию. Я не могу сказать, что мы игнорируем другие издания, но очевидно, что мы делаем всё сначала для Java-издания. И когда переносим новинки на другие платформы, то иногда приходится их переосмыслить или переделать.

Вот два примера. Когда мы добавляли крепости в карманное издание у нас ещё не было Незера, так что вы не могли создать око Эндера, необходимое для их поиска. Поэтому мы сделали чтобы они всегда генерировались неподалёку от деревни. Так что если вы видите деревню, то есть вероятность что где-то рядом может быть и крепость. Ну или ещё.

На консолях, где размеры мира ограничены, 4J сделали так что вы гарантированно найдёт все важные элементы игры, которые были в Java версии, в которой миры бесконечные. Версии для Windows 10 и Pocket Edition написаны на C++, а с добавлением Энда, элитр и высоты мира в 256 блоков, они уже почти сравнялись с Java-версией.

Будут ли эти версии развиваться параллельно или когда-то C++ версия окончательно победит? Это непростой вопрос, поскольку по нашим ощущениям С++ версия более перспективная, потому что мы контролировали её создание с самого начала. В эту версию значительно легче добавлять новые возможности. Например, мы легко создали версию для Gear VR или версию для проекта HoloLens.

Она боле гибкая, с нашей точки зрения. А ещё она позволяет играть вместе используя мобильные телефоны и компьютеры, — то что мы давно хотели. С этой точки зрения, всё выглядит так, что в итоге версия C++ однажды станет основной версией игры. В тоже время у Java-издания очень много приверженцев. Большинство создателей модов, ютуберов, лидеров мнений — все они опираются на Java-версию.

При этом, мы знаем что, что число проданных копий Pocket Edition больше, Java-версия распространена пиратским способом благодаря активному сообществу, до которого мы хотим достучаться. И конечно, Java-версию гораздо проще модифицировать. Поэтому сейчас мы стремимся работать над каждой из этих версий и, по большому счёту, я рассматриваю их как разные игры. Очевидно, что это очень схожие игры.

Читайте также:  Майнкрафт больше чем земля

Сообщество Java-издания очень сильно, а сообщество Pocket Edition ему не уступает. Думаю, люди понимают это две разные вещи, даже если вы и играете и в ту и другую версию. time-jeb-04 В C++ версию недавно добавлена поддержка изменения игры при помощи текстовых JSON-файлов. Это позволяет вносить изменения в игру.

Будет ли возможность создавать новое, например абсолютно новых мобов или это те задачи, которые нельзя будет решить посредством JSON? Это, вероятно, одна из решаемых задач. После того как JSON-файлы стали использоваться для описания поведения мобов, то несложно представить, как к ним можно добавлять собственную графику и анимацию.

Я не хочу обещать, что это будет возможно прямо сейчас, но мы хотим чтобы в C++ версии можно было изменять всё по максимуму. [В этот момент Обри Норрис из Microsoft упомянула, что они продолжают работать над скриптовым API, поддерживающим JSON-файлы. Йенс, пока не может говорить об это подробно, поскольку «ещё слишком рано», но Норрис говорит, что это то к чему стремятся обе команды, в Редмонде и Стокгольме] Вы говорили, что были какие-то проблемы с физикой у больших созданий.

Это исправимо? Я бы сказал, что это определённо исправимо. Это вопрос того, что нужно кого-то поставить заниматься этой задачей. Просто сейчас движок Майнкрафта работает таким образом и тут есть определённые сложности. В версиях для игровых консолей музыка композитора C418 играет постоянно.

В версиях Java и C++ одна и таже мелодия играет не часто. В мобильной версии вообще нет музыки. Рассматривали ли Вы возможность сделать данные настройки доступными игроками? Да, думаю в этом есть смысл. То как музыка играет в Java-версии определено ещё Нотчем (Маркусом Пёрссоном, создателем игры) и группой разработчиков.

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

Недавно мы наняли сотрудника в Стокгольме, который будет заниматься звуковыми эффектами в Майнкрафте, потому что раньше мы сначала добавляли новую вещь, а потом задумывались о звуковом сопровождении. Теперь, когда появился ответственный за все звуковые эффекты в игре, я сказал ему: «Ты главный по звуковым эффектам. Всё что что относится к звуку — это твоя область, твоя орбита».

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

Но мне это не очень нравится. Мы уже привыкли к обновлениям, которые относятся к режиму выживания. Но что насчёт творческого? Если ли планы улучшить это режим, добавить новые инструменты? Не совсем, хотя есть несколько моментов, которые я хотел бы улучшить в самом пользовательском интерфейсе.

Инвентарь творческого режима уже переполнен и должны более удобные способы находить нужные блоки. Но что касается строительства, я не планирую никаких кардинальных изменений. Одна из причин, это что что хочу донести людям, я не хочу превращать Minecraft в редактор. Я встречался с примерами того, как люди превращали Майнкрафт в редактор карт для своих игр.

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

И главная причина состоит в том, что я хочу поощрять кооперацию и совместную игру. Если ты строишь что-то вместе с кем-то, то получается гораздо быстрее. Ну и пока ты ставишь блоки, то другим гораздо проще понять, чего ты хочешь получить в итоге. Если заглянуть в будущее, может на годы вперёд, видите ли вы Minecraft, а не «Minecraft 2»? Думаю да, и это одна из моих проблем.

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

Ведь кто-то любит творческий режим, кто-то предпочитает путешествия, кому-то нравится сражаться, и кто-то любит возиться с редстоуном. Приведу в качестве примера мод Mo’Creatures, который добавляет сотни разных животных. Мы могли бы сделать это сами и добавить не меньше.

Но мы не хотели бы перегибать палку в каком-то направлении, чтобы никто не мог сказать: «Майнкрафт — игра про животных». Поэтому мы и пытаемся расти постепенно и во всех направлениях. Если начинать думать о продолжении, то я рассматриваю Майнкрафт в качестве онлайновой ролевой игры, даже если вы играете локально.

Я помню людей, которые играли в Everquest, которые просто жили там, но при этом они не перешли в Everquest 2, когда она вышла. Просто, когда им пришлось покинуть Everquest, они смогли выбирать из массы других ролевых игр.

В некотором смысле, я чувствую, что если нам придётся создавать Minecraft 2, то мы себе сами подложим свинью и предоставим возможность другим играм, где есть блоки и можно строить, забрать часть наших игроков. time-jeb-06 Вы управляете и направляете процесс создания Майнкрафта уже несколько лет.

Есть ли точка, куда вы стремитесь? Чтобы спокойно передать факел первенства, как когда-то сделал Нотч? Или вы хотели бы находиться на этом месте бесконечно? [Смеётся] Не то чтобы бесконечно. Мне пока это всё нравится. Хотя иногда я жалуюсь, что на мне лежит «проклятие Майнкрафта», потому что мне нравится работать над разными играми.

Но это своего рода самоограничение, потому что я люблю сосредотачиваться на какой-то одной вещи за раз. И сейчас — это Майнкрафт. Я всё также люблю эту игру и она меня вдохновляет. Я не хочу сказать, что я собираюсь работать над Майнкрафтом всю свою жизнь, но в тоже время я хочу сказать. что с ним я ещё не закончил.

Читайте также:  Как в Майнкрафте дать флай другу

Источник: minecraftmain.ru

Обзор игрового движка LibGDX

Иконка LibGDX

Сегодня мы рассмотрим движок LibGDX. Движок кроссплатформенный, быстрый, и достаточно популярный. Исходные коды движка открыты, сам движок доступен на github. Это очень хорошо. Когда движок раньше был сырой, автор статьи копался в исходниках, и фиксил баги под Андроид-версию.

Официальное видео

Сам движок написан на Java. Ну и писать игры на нем предлагается на Java. Хотя подходит любой язык, который можно запустить на Java-машине. Умельцы пишут на Groovy, Scala и Python. В сети можно найти примеры, как это сделать.

На официальном сайте есть галерея приложений, разработанных на этом движке. Если вы сделаете свою игру или приложение, вы можете добавить ее в этот каталог. Получится эдакая бесплатная реклама. На данный момент в галерее доступны сотни приложений. Это говорит о популярности движка и о его определенной зрелости.

LibGDX — не для программирования мышкой. Если вы хотите быстро склепать игру за вечер, и до этого не работали с этим движком — не получится. Но если у вас есть опыт программирования, особенно на Java, то LibGDX даст вам необходимую свободу для творчества. Если хотите узнать чуть больше — читайте дальше, расскажем о интересных особенностях движка.

Некоторые особенности движка

  • Движок кросплатформенный. Работает на Windows, Linux, Mac OS X, Android. С некоторыми ограничениями заводится на iOS и HTML5.
  • Поддержка как 2D так и 3D.
  • Встроенная библиотека быстрой математики. Быстро посчитать синус-косинус по таблицам не проблема для этого движка.
  • Для 2D — поддержка графа сцены из трансформациями (повороты, масштабирование и т.д.). Очень удобная штука для всяких эффектов.
  • Поддержка большого количества сторонних инструментов. Движок работает с редактором карт Tiled, поддерживает физический движок box2d, умеет рисовать .ttf шрифты и не только.
  • Встроенная библиотека UI

Архитектура проекта на LibGDX

LibGDX — кросплатформенный движок. Но все же есть определенные различия, когда вы пишете под Андроид, и когда вы пишете под Linux. Какой-то код будет общим, а какой-то специфическим для того же Android. Например, работа с сенсором, акселерометром и т.д. Поэтому у вас есть один главный проект (core). В нем расположен основной код игры.

А для каждой платформы создается отдельный проект. Например, вы делаете игру, которая называется coolgame. Ваша игра будет под ПК и для Андроид. Тогда у вас будут три проекта — coolgame-core, coolgame-desktop, coolgame-android. Если ваша игра не использует чего-то особенного на конкретной платформе (акселерометр, камера и т.д.), то вы не будете дописывать код в android и desktop частях.

А если же вам нужна работа с специфичной аппаратной начинкой, то вы напишете этот код в проекте для нужной платформы.

В официальной вики, например, таким образом подключается AdMob реклама. А по факту вы можете таким образом доступиться до любой аппаратно-зависимой части нужной платформы.

Граф сцены в LibGDX

Граф сцены — не новое понятие для игровых движков. Вкратце — игровой экран представляется как определенная сцена (Scene), где располагаются и взаимодействуют актеры (Actor). Актерами можно управлять, меняя их положение, масштаб и т.д. Причем некоторые актеры могут содержать в себе других актеров — так называемые актеры-группы или родительськие актеры. И когда мы меняем положение группы-родителя, меняются и положения всех актеров-детей.

Это очень удобная штука. Например, вы делаете диалоговое окошко. Там есть заголовок, несколько кнопок, текст, какие-то картинки и т.д. Вы делаете одну родительськую группу, и туда уже помещаете все эти заголовки, кнопки и прочие элементы. Причем, помещаете относительно этой родительськой группы.

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

LibGDX имеет полноценную поддержку такого дела. Простой актер называется Actor. Группа называется Group. Вы можете комбинировать актеров как угодно, вкладывать их друг в друга. Поскольку движок хорошо оптимизирован, он будет пересчитывать координаты и делать прочие ресурсоемкие операции лишь тогда, когда нужно, а не каждый кадр.

Это тоже приятно.

Встроенная библиотека UI

UI — это боль для игр. Часто в движках или нет UI библиотеки вообще, или же она убогая. Вспомним хотя бы Unity3D. Первые версии, до 4.6, имели убогий UI, которым никто не пользовался для серьезных проектов. Использовали сторонние библиотеки, такие как NGui.

В LibGDX в этом плане все хорошо. Есть довольно богатый набор встроенных UI-компонентов. Это кнопки, текстовые метки, просто картинки, диалоговые окошки, панели прокрутки, деревья, чекбоксы, списки и прочее. Все элементы можно настроить как из кода (например, выбрать шрифт, фоновые изображения, и т.д.), так и стилизировать с помощью json-файлов.

Для тех, кто знаком с веб-разработкой, это напомнит ситуацию с CSS. Для тех, кто не в теме — в CSS-файлах настраивается внешний вид веб-страницы.

Так вот, в LibGDX вы создаете json-стили для элементов, где описываете внешний вид каждого элемента. Потом, в коде, вы применяете этот json-стиль к элементу. Опять-таки, это удобно для больших проектов. Отделение данных от кода, как-никак.

Поддержка расширений

Какой бы движок не был хороший, всегда есть моменты, когда не хватает базовой функциональности. Нужны расширения. LibGDX предлагает несколько расширений «из коробки». Это работа с физикой (Box2D), работа из .ttf шрифтами, поддержка компонентной системы (ECS) Ashley.

Сторонние же разработчики сделали расширения для удобной работы из соцсетями (Facebook, Twitter), ненапряжной работы из системами внутриигровых покупок. Есть редактор UI — Overlap2D. Если поискать по GitHub, можно найти много чего интересного.

Что нужно для начала работы из движком?

Самое первое — вам нужна установленная JDK (Java-машина и Java-компилятор) не ниже версии 1.7. Углубляться в детали, как ее ставить, я не буду. Лишь скажу, что проще всего ее найти и скачать бесплатно на сайте Oracle.

Дальше из официального сайта вам нужно скачать генератор проектов. Это java-приложение в .jar-формате. Запустите его. Вам зададут несколько вопросов. Куда генерировать проект, какие расширения использовать.

Заполнив эти поля, нажмите кнопку «Сгенерировать проект», и вы получите в указанной вами папке набор Gradle-проектов. Дальше вы можете открыть любимую вами среду разработки (Eclipse, Android Studio или что-то другое, что поддерживает Gradle), импортировать проект, и работать дальше с ним как с обычным Java-проектом.

Если возникнут какие-либо трудности или вопросы, посмотрите официальную вики и примеры кода из нее. Там все довольно доступно описано. Если у вас все же остались вопросы — отписывайте нам в комментариях

Источник: gamedevmania.ru