Pull to refresh

Первая игра на LibGDX. С какими проблемами сталкивается новичок и как их решить

Первая игра на LibGDX. С какими проблемами сталкивается новичок и как их решить


Привет, хотел бы поделиться своим скромным опытом разработки первой (первая, которую выпустил в Google Play) игры на фреймворке LibGDX, отметить, что в нем понравилось, что нет.

Немного предыстории


В геймдеве, как вы уже поняли, я не давно, если еще можно назвать геймдевом то, чем я занимаюсь. Большого опыта в программировании, как такового тоже нет. Учусь на программиста, выбрал для себя Java. Выучил синтаксис, захотелось учить android. Поучил по книге, которая, я думаю, знакома многим, кто учил аndroid — Head First Android Development. Выучил книгу — вроде, ничего сложного, но мне показалось, что большинство приложений менее востребованы в Google Play чем игры, и тут мне пришло в голову написать хоть какую-то игру. Мне казалось, что это чрезвычайно сложно и что бы написать тот же Flappy Bird нужно много знаний и опыта. Все оказалось не так.

Именно из-за того, что мне казалось все сложным в геймдеве, я выбрал LibGDX, ибо он на Java, который я учи. Конечно выбор был еще и между Unity, и тот же C# я учил в универе семестр, но почему-то, на тот момент, я подумал, что ели ты программист — ты должен понять сам принцип работы игры (game loop), ну, не суть, кто выбирал между Unity и LibGDX — наверняка все это уже читал, поэтому не буду об этом.

В итоге, я выбрал для себя LibGDX. Как и все новички начал искать туториалы, и первая же ссылка — Хабр, "[LibGDX] Создаем клон Flappy Bird — Zombie Bird". Хотелось бы отметить, что это очень хорошый туториал, для многих хорош именно тем, что на русском. Имея уже некоторый опыт в LibGDX, становится ясно, что такую игру можно написать еще проще, используя Stage и Actors, но в этом и плюс этого туториала, что он учит новичков, деляет понятными самые базовые принципы, после написания игры по этому тутиралу появляются фундаментальные понятия, что и как, тебя направляют в нужном направлении, а дальше совершенствуйся и пиши, что то сложнее и красивее. В общем, несколько туториалов и мир 2D геймдева для меня стал яснее.

Теперь перейду непосредственно к своей игре, что да как


image

Начал писать игру имея только некий образ в голове, мне просто захотелось сделать игру — «Бег с препятствиями». Теперь могу сказать, что это конечно же не правильно. Нужно точно знать, что ты хочешь сделать, составить ТЗ, и только потом начинать работу, иначе в дальнейшем процессе написания придется много раз переписывать те же участки кода и вообще будет много путаницы. Ну что ж, мой косяк, не дочитал книг и туториалов значит. Так же могу сказать, что написания кода занимает очень мало времени, у меня заняло 6 дней из 3-х недель разработки. В основном вам будет нужно рисовать и делать анимации. Как я для себя понял, в игре на 99% важна картинка, не физика, не фреймворк, на котором это написано, а именно картинка. В этом моменте еще пару слов на тему «unity или LibGDX для 2д игр»- абсолютно не важно, написать код не составит труда ни там, ни там. Для меня есть по одному преимуществу у каждого. Unity — drag and drop, это реально ускорит разработку UI. LibGDX- размер apk файла. Так что, если хотите, что бы вашей игрой кто-то интересовался — делайте её визуально привлекательной, это главное.

Теперь, где именно я рисовал


image

Я выбрал для себя flat дизайн. Да, потому что это, как мне показалось, просто. Сами спрайты я рисовал в Photoshop, но для векторной графики лучше выбрать Ilustrator. Меня лично устроил и photoshop, и я был знаком с его интерфейсом, а для моих целей целиком хватало его возможностей. Для создания анимации я выбрал программу Sprinter.

image

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

Теперь еще про создание UI в игре


image

В моей игре очень простой UI, поэтому настроить его в LibGDX заняло не много времени, но если бы все это делалось не чисто через код, как в Unity, то, я думаю, было бы быстрее. Для LibGDX есть графические редакторы для создания UI, но я не стал их использовать по причине: «В моей игре очень простой UI». Радует, что в LibGDX есть библиотека с эффектами для элементов UI, можно все это дело как-то украсить.

Склеив все это во едино получилась игра, посмотреть, что вышло можно по ссылке. Буду очень благодарен за скачивание и отзыв.
Спасибо, что прочли статью, до встреч.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.