RomanAnchugov

На Пикабу
поставил 1 плюс и 0 минусов
Награды:
5 лет на Пикабу
27 рейтинг 0 подписчиков 0 подписок 2 поста 0 в горячем

Как стать разработчиком игр за пару недель

ПРЕДИСЛОВИЕ

Как стать разработчиком игр за пару недель Gamedev, История, Мнение, Мобильные игры, Разработка, Длиннопост

Опыт программирования у меня уже имелся и довольно приличный: android, web. Но всегда тянуло попробовать себя в более творческом it направлении. Поэтому я решил для себя, что за лето выберу какой-нибудь движок или фреймворк и напишу простенькую игру за несколько недель(ну как пойдёт), так и началось моё знакомство с дефолдом. Стоит отметить, что разработку игры я рассматривал, как досуг, а не основной вид деятельности, поэтому в неделю на игру я тратил не больше 20 часов. Просто чтобы вы понимали, что такого результата можно добиться и за меньшие сроки при более длительной ежедневной работе.

ПОЧЕМУ DEFOLD

Моё техническое(поверхностное) сравнение с другими

Как стать разработчиком игр за пару недель Gamedev, История, Мнение, Мобильные игры, Разработка, Длиннопост

Честно скажу, что, конечно, изначально хотел взять всем хорошо известный unity и особо не парясь за несколько недель сделать на ассетах игру. Но перед тем, как начать что-либо делать я всё же решил взглянуть, что вообще сейчас есть на рынке игровых движков. Выбор меня очень приятно удивил: помимо движков-гигантов на букву U, имеется выбор и бесплатных очень хороших движков(godot, defold), а также для тех, кто любит всё хардкодить, имеется и семейство различных фреймворков(corona, libgdx). Всё делать только кодом мне не очень хотелось, поэтому фреймворки отпали сразу. Движки на букву U тоже решил не брать, так как тот огромный функционал(и легаси код с багами), который они предлагают, будет излишним для проекта на несколько летних недель. Поэтому я более пристально решил взглянуть на defold и godot. И тот и другой движок поддерживают как 2d, так и 3d. Но defold специализируется именно на 2d играх, поэтому это очко я отдал в его копилку. Решающим же для меня фактором было то, что сам по себе defold очень похож на движок, который я изначально хотел: вся игровая логика написана на простом языке, то есть можно без труда весь геймплей разбить на отдельные блоки и обслуживать эти блоки небольшими скриптиками. Defold - lua, godot - их собственный скриптовой язык. Для меня это ещё один плюс в пользу defold. И несмотря на всю свою простоту и легковесность дефолд достаточно комплексный движок, я не нашёл ничего, что я бы не смог на нём реализовать, у него есть даже некоторые вкусности: шейдеры, возможность использовать собственный рендер-скрипт. Отдельно обращу внимание на скорость билда, после сбрки проектов в android studio, которые порой занимают по времени несколько минут, сборка на дефолд - это глоток свежего воздуха, пара секунд и игра уже у вас на экране(ещё есть ход релоады, но я ими как-то не приучил себя пользоваться)

Сообщество

Как стать разработчиком игр за пару недель Gamedev, История, Мнение, Мобильные игры, Разработка, Длиннопост

Ну и конечно же комьюнити, которое меня поразило своей приветливостью и отзывчивостью: есть русскоязычный телеграм-канал и это не просто флудилка на несколько сотен человек, а действительно полезный чатик для общения и вопросов по теме движка, потому что в нём есть большое количество профессионалов индустрии, которые быстро приходят на помощь и даже есть евангелист дефолда, который находится прямо в офисе с разработчиками движка. В общем взаимодействие с сообществом оставляет только приятные ощущения - такое небольшое ламповое сообщество, где разработчики движка тесно общаются с разработчиками игр. Форум кстати тоже очень полезен, потому что зачастую на мои вопросы отвечали непосредственно разработчики движка и в кратчайшие сроки разрешали все мои проблемы. Возможно, у дефолда лучшее комьюнити в этом плане, но это лишь моё субъективное ощущение, потому что сравнивать мне особо и не с чем.

Материалы для изучение

Как стать разработчиком игр за пару недель Gamedev, История, Мнение, Мобильные игры, Разработка, Длиннопост

Так как у меня была цель за несколько недель реализовать несложную игру на полностью незнакомом для меня движке, то я обращал внимание на учебный материал и документацию, которая имеется по этому движку. На ютубе по дефолду мало материала(обычно я ищу уроки или доклады именно там), поэтому я решил заглянуть на сайт, где смог найти отдельную вкладку с огромным количеством материала для изучение. Не подумайте, что я на эмоциях, но у дефолда одна из лучших документаций, что я видел(тут мне есть с чем сравнивать). Для изучение вы можете в принципе воспользоваться и ей, но с неё трудновато начинать, если не имеешь представлений об общих концепциях движка. Поэтому имеются мануалы и туториалы разных уровней, которые помогают постепенно вникнуть в основные особенности и приёмы работы с движком.

НЕПОСРЕДСТВЕННО ПРОЦЕСС РАЗРАБОТКИ

Как стать разработчиком игр за пару недель Gamedev, История, Мнение, Мобильные игры, Разработка, Длиннопост

Я уже говорил, что хотел сделать что-то очень простое, для пробы пера. Поэтому создал проект из готового шаблона для мобильных и тут же возникла идея сделать таппер в космосе. Не знаю почему, возможно, потому что тапер(кликер) не так уж и сложно делать. За пару дней я реализовал какую-то базовую механику: при нажатии ракета подлетает вверх, но при этом каждое нажатие уменьшает КПД последующего, так что без бонусов игрок рано или поздно всё равно проигрывает. Далее я ударился в графику и стал начинять игру различными визуальными вкусностями, благо в дефолде есть и редактор частиц, поэтому звёздный задний фон с планетами и движущейся бесконечно космической пылью был реализован ещё за пару дней. Местами возникали проблемы и непонятки с передачей сообщений между объектами(это к слову основная концепция при помощи которой обеспечивается взаимодействие всех объектов в игре), но все вопросы и проблемы, как я уже говорил быстро разрешались на форуме или в чате. Далее я решил добавить разнообразного контента в игру, но для этого мне были нужны:

1)Несколько экранов

2)Нормальная обработка нажатий на элементы интерфейса и их соответствующая анимация(из коробки у дефолда такого функционала нет)

3)Удобный инструмент работы с камерой


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

ЧУТЬ-ЧУТЬ ОБ ИГРЕ

Как стать разработчиком игр за пару недель Gamedev, История, Мнение, Мобильные игры, Разработка, Длиннопост

Название у игры “PLoR” - каждый пусть сам придумает что эта аббревиатура может означать. Как уже было написано выше, механика игры - это кликер, но не простой(а золотой), в нём можно проиграть, то есть бесконечно кликать хочешь, не хочешь не получится. Основная цель - больше очков и денег, для того чтобы открыть все имеющиеся ракеты(лутбоксы). Но опять же из-за того что кликать получится не всегда, придётся покупать различные бонусы, которые будут так или иначе увеличивать зарабатываемые вами очки. Проверьте себя на прочность: на сколько кликов хватит вас и ваших пальцев :)

ВЫВОДЫ(МОИ)

Дефолд отличный 2д движок(3д я пока не пробовал), который не смотря на свою простоту, небольшой порог вхождения и лёгкость, является очень мощным и комплексным инструментов, который становится только лучше с каждой версии благодаря тесному сотрудничеству разработчиков движка и пользователями.

Показать полностью 5

Первая игра на Android

Прошу любить и жаловать мою первую игру на Android. Создавал её долго и с душой. Первый опыт в создании игр. Делалось сие творение при помощи java фреймворка libgdx. Прошу строго не судить.


Сегодня игры – это одно из основных направлений в разработке ПО. Почти каждый человек на Земле, хоть раз играл в какую-нибудь игру. А дети нынешнего поколения знакомы с компьютерными играми практически с самого начала сознательных лет. Но за последние несколько лет на первый план вышли игры на мобильные платформы, так как у пользователей не всегда есть под рукой компьютер, для того чтобы поиграть, а вот телефон или же смартфон сейчас есть практически у всех, и в любое время, при желании, человек может поиграть на своём смартфоне. Поэтому игры на мобильные платформы становятся популярнее и иногда не уступают по качеству и даже превосходят игры на персональных компьютерах и приставках.

Именно поэтому мой выбор пал на java фреймворк libgdx. Он позволяет разрабатывать кроссплатформенные игры под все наиболее популярные платформы сегодня: html5, ios, desktop и конечно же android.


Название игры – «Mine evade craft». В игре присутствует один ключевой объект – это «голова», которой управляется игрок. Этот игровой объект - «голова», управляется при помощи нажатия на экран смартфона в любое место. При осуществлении нажатия на экран, управляемый игроком объект получает импульс и подпрыгивает на определённую высоту. Так же на «голову» действует гравитация, которая тянет её вниз. Основной задачей игрока является как можно дольше выжить. В игре есть два фактора из-за которых игрок может проиграть – это шипы снизу и сверху, а также стрелы, которые вылетают с разных сторон, пытаясь попасть в «голову», которой управляет игрок. Каждая стрела, от которой смог уклониться игрок считается за одно очко. Так же в игре, помимо набора очков, есть побочная цель, которая заключается в сборе монеток, которые появляются на случайной высоте игрового окна, через случайные промежутки времени. Каждый игровой сеанс не зависит от других, каждый раз после проигрыша, всё начинается сначала и продолжается до следующего проигрыша. На заработанные монеты можно покупать различные вещи, которые будут менять игровое полотно. То-есть можно купить другие виды «голов», заднего фона, стрел.


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


Во время разработки было множество проблем, в основном с оптимизацией. Андройд это хитрая штука - ты вроде бы всё просчитал, по минимуму использовал текстуры, а всё равно в консоли видишь пресловутое "out of memory". На нахождение причины переполнения порой уходили дни тестирования и дебага.


Но не смотря на все трудности я сумел завершить свой первый, полноценный проект под платформу android. Скачивайте, пиши своё мнение. Спасибо.



https://play.google.com/store/apps/details?id=ru.roman

Первая игра на Android Android, Java, Libgdx, Gamedev, Сердце, Текст
Показать полностью 1
Отличная работа, все прочитано!