Как стать автором
Обновить

Комментарии 8

А про то, что игры не пишутся на Java, я пошутил :)

А я бы вот не сказал, что это шутка. Я пишу сервер sandbox mmo на Java (а точнее на Kotline). И я могу официально заявить, что, к сожалению, для Java нет практически ничего для геймдева, или оно (около-)мертвое.

Физические движки - из живого только dyn4j. Тот же официальный сайт jBullet указывает последний релиз в 2010 году (14 лет назад! Это было еще во времена Java 6). JBox2D - последний релиз в 2014 году.

Рендер - по сути только libgdx. Есть еще несколько прям "движков", но в основной массе они ориентированы на андроид.

Вообще забавно, что C# стал мейнстрим языком для геймдева, а Java забыта, несмотря на "расцвет" во времена появления андроида. Видимо надо сказать спасибо пушу от Микрософта (XNA, Silverlight) и успеху Unity.

Спасибо комментарий!

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

Есть крутые питерские ребята (компания EXBO), которые вдохновившись идеями движка Minecraft смогли написать свою игру неплохого уровня. Года два назад они вышли в Steam.

А сам моддинг Minecraft, а именно RU-комьюнити разработчиков последнее время подают очень неплохие надежды.

Этого, конечно, мало, мне даёт уверенность что это возможно, просто никто не берётся из-за отсутствия хорошего движка с качественным SDK и кейсов AAA уровня.

P.S. про dyn4j я не знал, спасибо за интересную наводку, поизучаю

Да, про lwjgl я забыл упомянуть.

В целом игры на Java конечно есть, но, как правило, все приходится писать самому или брать что есть. Там, где под C# есть десяток альтернатив, под Java у нас хорошо, если вообще есть что-то.

Надеюсь, что финализация Foreign Function & Memory API позволит сделать нормальные врапперы над свежими версиями нативных библиотек без JNI-костылей.

Я всё жду value classes, но видимо на десктопе они появятся нескоро, а на мобильных устройствах - вообще спустя кучу лет.

Из-за их отсутствия либо получается медленный код, либо люди начинают его переписывать на примитивных типах. Например `setPosition(float x, float y)` и ещё хуже `getPositionX(), getPositionY()`. Простое копировани позиции превращается в кучу бойлерплейта.

В идеале в таких случаях должен быть класс Point(x, y) и создание и передача в функцию должны работать так же эффективно, как передача пары чисел.

Если говорить про игры написанные на Java, есть еще отличная игра Starsector, которая лет 10 активно развивается и под которую есть множество модов, тоже соответственно на Java. В стиме ее нет, якобы потому-что релиза еще нет (хотя уже много лет она стабильнее большинства релизов других игр, да и контента прилично). https://fractalsoftworks.com

Вроде libgdx не только рендер, а вполне себе движок. Нет?

Да, я немного перепутал libgdx и lwjgl

Начнём утро с недостижимого return. Представляю вам фрагмент:

Вообще, если бы не порт с C я бы предположил, что это последствие неудачного мерджа, когда были взяты обе стороны конфликта

Зарегистрируйтесь на Хабре, чтобы оставить комментарий