Привет! Имея за плечами довольно серьезный опыт разработки игр и приложений, я долгое время боялся браться за RPG. Я имею ввиду полноценную ролевую игру, а не казуальный кликер или айдлер (idle). Итак, я поделюсь с вами историей о том, как по-быстрому за 1 месяц сделать свою RPG, с блэкджеком и всем остальным.
![](https://habrastorage.org/r/w1560/webt/ql/ch/np/qlchnpasxgfjl4epfquude9avhc.png)
Начну с того, что в копилке мертвых проектов у меня уже есть целых две RPG. Нужно прекрасно осознавать, сколько времени и ресурсов потребуется для полноценной разработки. А поскольку объективного понимания этого не было, проекты вставали. Первой здравой идеей было переиспользовать накопившиеся наработки. Чтобы хоть как-то отбить потраченное время, мы решили опубликовать редактор персонажей со спрайтами из наших игр в Unity Asset Store.
![](https://habrastorage.org/r/w1560/webt/fw/ka/-0/fwka-0stknga-buodp_amdm3qmm.png)
Зашло неплохо, сделали несколько вариаций в разных сеттингах. А потом решили целиком переключиться на разработку ассетов, поскольку цикл разработки короткий, а деньги платят сразу) Прошло 2 года, и прошлым летом мы начали замечать игры, сделанные из наших ассетов. Причем, некоторые вполне успешные (по меркам инди). И мы подумали, не сделать ли нам свою RPG из своих же ассетов? Еще раз, по-быстрому, за месяц. Составили план и начали работать.
Чтобы игра не превратилась в типичный кликер, мы решили реализовать механики с таймингами из таких взрослых игр, как Dark Souls или Monster Hunter. Уклонение, мувсеты, чардж двуручников и все такое. Получилось довольно необычно. Из-за этого сильно выросла сложность, героя могут побить за пару ударов, если не уворачиваться и не ставить щит. Сразу решили упростить игру за счет отказа от открытого мира. Пришлось, надеемся временно, реализовать классическую казуальную дорожку с уровнями. В каждом уровне нужно победить с десяток врагов и сразиться с боссом.
Про систему инвентаря рассказывать особо нечего, она классическая, как в Diablo. Вся одетая экипировка отображается на персонажах. К сожалению, это редко встречается в современных казуальных «RPG».
![](https://habrastorage.org/r/w1560/webt/z1/nj/as/z1njassc9t0l6cfl1s1osycccj0.png)
… и так незаметно идет 10 месяц разработки. Оказывается, даже имея 7-летний опыт работы в геймдеве очень трудно оценить свои силы. Конечно, параллельно приходилось заниматься ассетами и другими проектами, например Pixel Studio или 0xWarriors.
Начну с самого сложного в RPG. И нет, это не графика, экипировка или сюжет. Это игровой баланс и тестирование. Совершенно невозможно просчитать или смоделировать бесконечное количество параметров — монстры, экипировка, локации, навыки, прогрессия игрока и так далее.
Визуализация данных сильно упрощает работу с ними. Например, мы используем Google Таблицы с иконками экипировки.
![](https://habrastorage.org/r/w1560/webt/gz/3n/bz/gz3nbzfmln1vfb4t-ulpk9nlta0.png)
Первое решение — сводить все к небольшому набору ключевых параметров, таким образом делая все остальные параметры их производными. Например, будем считать, что абстрактное оружие 1 уровня имеет урон 100. Далее для каждого типа оружия прописываем коэффициенты урона, например 100% для мечей, 120% для топоров, 80% для кинжалов и так далее. То же самое можно сделать с монстрами. Именно поэтому в таблице выше нет конкретных параметров оружия — только тип и уровень. Игра сама просчитает все остальное.
Второе решение — моделирование. Нужно писать бота, который будет имитировать действия игрока. Он будет сам покупать экипировку, изучать навыки, а потом отправляться в сражения и собирать статистику. Таким образом можно грубо подобрать кривые основных параметров и настроить сложность игры.
Следующий этап — игровые тесты. Нужно интегрировать аналитику и отслеживать поведение игроков. Кто что покупает, где застревает, а где наоборот — слишком просто.
В общем, не буду сильно заморачивать вам голову) Если кого-то интересуют детали, задавайте вопросы в комментариях.
В данный момент мы уже во всю готовимся к Early Access в игровых магазинах Google Play, Steam, App Store, создаем всякие промо-материалы, пиаримся и общаемся с издателями. Не забываем и про сообщество, так что проявляем активность в Reddit, Discord, VK и других социальных сетях.
Мы используем игровой движок Unity и свой собственный ассет Fantasy Heroes: 4-Directional Character Editor из Unity Asset Store. Для монетизации используем сервисы «из коробки» — Unity Ads и Unity IAP. Для аналитики — Unity Analytics и Yandex App Metrica. Чтобы иметь возможность гибко настраивать баланс и сложность без обновления игры, мы используем Unity Remote Config (очень удобная вещь). Отдельно поработали над оптимизацией — удалось сократить размер APK (только x64) до 37 мегабайт (в основном, благодаря атласам и максимальному сжатию графики и аудио-файлов). Для сравнения, размер самой первой сборки был около 1 гигабайта. Для анализа размера файлов очень помогают текстовые логи Unity о сборке.
Про запуск постараюсь написать отдельную статью, поскольку все еще только начинается. Провалится ли наша RPG или ее ждет успех? Найдем ли мы издателя или будем публиковаться сами? Самим интересно) Всем спасибо, удачи!
![](https://habrastorage.org/webt/ql/ch/np/qlchnpasxgfjl4epfquude9avhc.png)
Про неудачные попытки
Начну с того, что в копилке мертвых проектов у меня уже есть целых две RPG. Нужно прекрасно осознавать, сколько времени и ресурсов потребуется для полноценной разработки. А поскольку объективного понимания этого не было, проекты вставали. Первой здравой идеей было переиспользовать накопившиеся наработки. Чтобы хоть как-то отбить потраченное время, мы решили опубликовать редактор персонажей со спрайтами из наших игр в Unity Asset Store.
![](https://habrastorage.org/webt/fw/ka/-0/fwka-0stknga-buodp_amdm3qmm.png)
Зашло неплохо, сделали несколько вариаций в разных сеттингах. А потом решили целиком переключиться на разработку ассетов, поскольку цикл разработки короткий, а деньги платят сразу) Прошло 2 года, и прошлым летом мы начали замечать игры, сделанные из наших ассетов. Причем, некоторые вполне успешные (по меркам инди). И мы подумали, не сделать ли нам свою RPG из своих же ассетов? Еще раз, по-быстрому, за месяц. Составили план и начали работать.
Чем удивить игрока?
Чтобы игра не превратилась в типичный кликер, мы решили реализовать механики с таймингами из таких взрослых игр, как Dark Souls или Monster Hunter. Уклонение, мувсеты, чардж двуручников и все такое. Получилось довольно необычно. Из-за этого сильно выросла сложность, героя могут побить за пару ударов, если не уворачиваться и не ставить щит. Сразу решили упростить игру за счет отказа от открытого мира. Пришлось, надеемся временно, реализовать классическую казуальную дорожку с уровнями. В каждом уровне нужно победить с десяток врагов и сразиться с боссом.
Про инвентарь
Про систему инвентаря рассказывать особо нечего, она классическая, как в Diablo. Вся одетая экипировка отображается на персонажах. К сожалению, это редко встречается в современных казуальных «RPG».
![](https://habrastorage.org/webt/z1/nj/as/z1njassc9t0l6cfl1s1osycccj0.png)
Где застряли?
… и так незаметно идет 10 месяц разработки. Оказывается, даже имея 7-летний опыт работы в геймдеве очень трудно оценить свои силы. Конечно, параллельно приходилось заниматься ассетами и другими проектами, например Pixel Studio или 0xWarriors.
Начну с самого сложного в RPG. И нет, это не графика, экипировка или сюжет. Это игровой баланс и тестирование. Совершенно невозможно просчитать или смоделировать бесконечное количество параметров — монстры, экипировка, локации, навыки, прогрессия игрока и так далее.
Визуализация данных сильно упрощает работу с ними. Например, мы используем Google Таблицы с иконками экипировки.
![](https://habrastorage.org/webt/gz/3n/bz/gz3nbzfmln1vfb4t-ulpk9nlta0.png)
Первое решение — сводить все к небольшому набору ключевых параметров, таким образом делая все остальные параметры их производными. Например, будем считать, что абстрактное оружие 1 уровня имеет урон 100. Далее для каждого типа оружия прописываем коэффициенты урона, например 100% для мечей, 120% для топоров, 80% для кинжалов и так далее. То же самое можно сделать с монстрами. Именно поэтому в таблице выше нет конкретных параметров оружия — только тип и уровень. Игра сама просчитает все остальное.
Второе решение — моделирование. Нужно писать бота, который будет имитировать действия игрока. Он будет сам покупать экипировку, изучать навыки, а потом отправляться в сражения и собирать статистику. Таким образом можно грубо подобрать кривые основных параметров и настроить сложность игры.
Следующий этап — игровые тесты. Нужно интегрировать аналитику и отслеживать поведение игроков. Кто что покупает, где застревает, а где наоборот — слишком просто.
В общем, не буду сильно заморачивать вам голову) Если кого-то интересуют детали, задавайте вопросы в комментариях.
В данный момент мы уже во всю готовимся к Early Access в игровых магазинах Google Play, Steam, App Store, создаем всякие промо-материалы, пиаримся и общаемся с издателями. Не забываем и про сообщество, так что проявляем активность в Reddit, Discord, VK и других социальных сетях.
Коротко о технической части
Мы используем игровой движок Unity и свой собственный ассет Fantasy Heroes: 4-Directional Character Editor из Unity Asset Store. Для монетизации используем сервисы «из коробки» — Unity Ads и Unity IAP. Для аналитики — Unity Analytics и Yandex App Metrica. Чтобы иметь возможность гибко настраивать баланс и сложность без обновления игры, мы используем Unity Remote Config (очень удобная вещь). Отдельно поработали над оптимизацией — удалось сократить размер APK (только x64) до 37 мегабайт (в основном, благодаря атласам и максимальному сжатию графики и аудио-файлов). Для сравнения, размер самой первой сборки был около 1 гигабайта. Для анализа размера файлов очень помогают текстовые логи Unity о сборке.
Про запуск
Про запуск постараюсь написать отдельную статью, поскольку все еще только начинается. Провалится ли наша RPG или ее ждет успех? Найдем ли мы издателя или будем публиковаться сами? Самим интересно) Всем спасибо, удачи!