Первая игра на 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 геймдева для меня стал яснее.
Теперь перейду непосредственно к своей игре, что да как
Начал писать игру имея только некий образ в голове, мне просто захотелось сделать игру — «Бег с препятствиями». Теперь могу сказать, что это конечно же не правильно. Нужно точно знать, что ты хочешь сделать, составить ТЗ, и только потом начинать работу, иначе в дальнейшем процессе написания придется много раз переписывать те же участки кода и вообще будет много путаницы. Ну что ж, мой косяк, не дочитал книг и туториалов значит. Так же могу сказать, что написания кода занимает очень мало времени, у меня заняло 6 дней из 3-х недель разработки. В основном вам будет нужно рисовать и делать анимации. Как я для себя понял, в игре на 99% важна картинка, не физика, не фреймворк, на котором это написано, а именно картинка. В этом моменте еще пару слов на тему «unity или LibGDX для 2д игр»- абсолютно не важно, написать код не составит труда ни там, ни там. Для меня есть по одному преимуществу у каждого. Unity — drag and drop, это реально ускорит разработку UI. LibGDX- размер apk файла. Так что, если хотите, что бы вашей игрой кто-то интересовался — делайте её визуально привлекательной, это главное.
Теперь, где именно я рисовал
Я выбрал для себя flat дизайн. Да, потому что это, как мне показалось, просто. Сами спрайты я рисовал в Photoshop, но для векторной графики лучше выбрать Ilustrator. Меня лично устроил и photoshop, и я был знаком с его интерфейсом, а для моих целей целиком хватало его возможностей. Для создания анимации я выбрал программу Sprinter.
В плане работы с программой все легко, ну, а для создания реально качественной анимации нужен опыт, мало просто правильно выставить кости в кейфреймах по картинке. Свое рисование и анимацию я буду совершенствовать, так как это реально интересно для меня, ну и как я для себя выяснил — самое важное в играх.
Теперь еще про создание UI в игре
В моей игре очень простой UI, поэтому настроить его в LibGDX заняло не много времени, но если бы все это делалось не чисто через код, как в Unity, то, я думаю, было бы быстрее. Для LibGDX есть графические редакторы для создания UI, но я не стал их использовать по причине: «В моей игре очень простой UI». Радует, что в LibGDX есть библиотека с эффектами для элементов UI, можно все это дело как-то украсить.
Склеив все это во едино получилась игра, посмотреть, что вышло можно по ссылке. Буду очень благодарен за скачивание и отзыв.
Спасибо, что прочли статью, до встреч.
Автор: тащит всю команду