Комментарии 8
libGDX - тру разработка игрушек, имхо)
бонусом ко всей трушности еще и суперспособность портировать игрушку на все платформы разом
Интересно, давай еще пиши про libgdx, желательно с примерами. А скелетную анимацию туда можно подключить?
Все таки, не понятно почему был задействован GWT вместо TeaVM? В gdx-liftoff это одна галочка, вместо другой, по сути. Скелет автоматически генерируется для обоих случаев, а поддержка HTML5 у TeaVM выше. Например, поддержка рефлексии, работа с jar-напрямую, то есть меньше проблем с библиотеками, как минимум. Мало того, проект жив и развивается, автор проекта на Хабре есть.
Да, здесь согласен, если начинать новый проект с нуля и ориентироваться именно на HTML5, то сегодня я бы скорее смотрел в сторону TeaVM. Поддержка Java-библиотек и рефлексии там действительно удобнее, и сам проект активно развивается.
В моём случае выбор GWT был скорее обусловлен тем, что я уже работал с ним раньше и хотел использовать проверенный для себя стек. Плюс статья в первую очередь про мой практический опыт с LibGDX, а не про сравнение GWT и TeaVM.
Но замечание справедливое - думаю, стоит отдельно попробовать TeaVM и написать о впечатлениях и отличиях на практике. Спасибо за дополнение.
Это можно было одной фразой написать - Привык к Java, поэтому и тут решил её использовать. Собственно никаких других плюсов и нет. Если есть желание заняться играми, то лучше использовать тот же C# и Unity (даже если графики не очень много). Ну и в такой статье я ожидал увидеть ссылку на какие-то свои наработки и идеи. Почему бы не рассказать, какую игру ты делаешь (какой жанр, какие фичи там будут), привести какие-то какой-то специфичный код, а не тот, который в каждой обучающей статье, может быть вставить какие-то картинки (ну не может же быть игра совсем без графики)? Я вот тоже год назад решил написать игру на LibGDX и почти сразу забросил, так как LibGDX практически не упрощает жизнь разработчику.
Спасибо за развёрнутый комментарий. Тут, наверное, стоит немного пояснить, зачем вообще я написал эту статью.
Во-первых, мне было интересно проверить, есть ли у аудитории Хабра вообще интерес к LibGDX. Поэтому я сознательно начал с довольно общего материала, а не сразу с разбора конкретной игры.
Во-вторых, я уже сделал на LibGDX несколько игр. Некоторые получились не очень, другие получше, но пока я не сделал игру, которой действительно могу похвастаться перед аудиторией Хабра 🙂
Поэтому я не стал превращать статью в пиар своих игр. Тем более что показывать пока особо нечего - игры есть, но той самой, которую не стыдно поставить на первое место и сказать «вот, смотрите, что я сделал», пока нет.
А вот технический опыт у меня уже накопился. И именно им я хотел поделиться: что в LibGDX работает хорошо, что работает не очень, что можно сделать, с чем возникают проблемы, какие решения оказались удачными, а какие пришлось переделывать.
То есть приведённый в статье код действительно простой и учебный. Но остальные вещи, о которых я рассказываю, это не примеры из книжки по программированию, а то, с чем я столкнулся в реальной разработке.
Возможно, кому-то этот опыт пригодится хотя бы для того, чтобы не повторять мои ошибки.
Если бы пять лет назад ко мне пришёл человек и сказал: «Вот так на LibGDX лучше делать, а вот так лучше не делай - я уже попробовал», я был бы ему очень благодарен. Такие советы иногда экономят гораздо больше времени, чем очередной tutorial.
Так что я воспринимаю ваш комментарий скорее как подсказку, куда двигаться дальше. Если интерес к теме действительно есть, следующие статьи уже можно делать более практическими: конкретные проблемы, архитектура, код, решения, которые я попробовал, и то, что из этого получилось.
Unity - это не только движок, а еще и среда, причем не факт что подходящая будущей игре. Другими словами, всё зависит от требований. LibGDX поддерживает тот же Box2D, скелетную анимацию, партиклы и прочее. Посмотрите выбор плагинов хотя бы в liftoff или сборник libgdx-awesome.
Да, вам придется писать больше кода в итоге, придется написать свой туллинг или адаптировать тот же Tiled под нужды. Но, результат будет не хуже :) Посмотрите те же Mindustry или Delver. Или вон, чувак упоролся и сделал клон Diablo 2: https://github.com/collinsmith/riiablo. LibGDX - вполне нормальный такой фреймворк.

Почему я выбрал LibGDX для разработки игр на Java в 2026 году