Solar 2033 — моя первая игра и она про исследование планет

Небольшой рассказ про мой путь инди-разработчика, о том как я совмещал программирование и арт, как я разработал всё с нуля и практически в одиночку за 6 месяцев.

Solar 2033 Дмитрий Зайцев
Solar 2033 Дмитрий Зайцев

А про что игра?

Чтобы не томить вас, это мобильная игра, в которой вам предстоит исследовать различные планеты с помощью планетоходов (марсоходов и луноходов).

Аркада-гонка (но это не точно), в которой небольшая скорость движения ровера дает вам время на обдумывание каждого шага, что создает залипательный и необычный геймплей, который я не встречал в других мобильных играх. Однако, нравится это не всем.

Кто я?

Я программист с 2007 года, начинал с delphi, а на текущий момент я Java разработчик (backend), разрабатываю сервисы и сайты. Я никогда не был художником, никогда не пытался им стать. За последние 10 лет у меня было около 5 попыток сделать свою игру и только сейчас у меня получилось выпустить первую. Всегда мечтал делать игры.

Изучение Unity (мой подход)

Я решил взять самый популярный игровой движок и не выпендриваться. Я не пытался написать игру на Java, например, на движке libgdx, т.к. считал, что знание языка не дает мне никаких преимуществ и это оказалось правильным решением.

Первые мои попытки изучения Unity и создания игр потерпели крах. Моей ошибкой было то, что я, получив базовые знания, начинал делать игру мечты или чуть поменьше, не мог оценить всю сложность реализации. Всё заканчивалось тем, что я бросал разработку своей игры вместе с изучением Unity.

В 2020 году я решил попробовать кардинально другой подход. Я подумал, так — простые игры, нужно делать очень простые игры, вроде тетриса, арканоида и 3 в ряд. Чем больше я сделаю очень простых игр, тем будет лучше. Однако замечу, что базовые знания по Unity и C# у меня уже имелись.

И это сработало…

Игра мертва, да здравствует новая игра!

Идея игры Solar 2033 пришла мне не сразу, прошло несколько итераций, прежде чем я определился.

Solar 2033 — моя первая игра и она про исследование планет

Чтобы я смог всё осилить в одиночку, я решил не использовать в игре персонажей и сложную анимацию. А почему всё сам? Не спрашивайте, это мои тараканы.

В начале я решил сделать top-down гонки видом сверху, где нужно было в роли дальнобойщика доставлять грузы. Моей жене эта идея показалась унылой настолько, что я задумался и решил выкинуть идею в помойку, но не геймплей.

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

Идея игры очень мне понравилась, в том числе и жене.

Создание прототипа

Мой горький опыт показывает, что при создании прототипа игры ничто не должно отвлекать от создания геймплея, особенно отсутствие и поиск спрайтов. Подход «слепил из того что было» очень хорош. Я взял спрайты машинок, спрайты дорог, каких-то камней — все это не напоминало игру про космос.

Когда я сделал первый корявый прототип, где машинка просто ехала по дороге и объезжала препятствия, оставляя за собой следы, мои друзья и знакомые сказали, что это унылое гуано.

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

Я начал экспериментировать с управлением…

Управление в игре одним пальцем

Первое управление в игре было через свайпы влево и вправо, но без привязки к «рельсам», как в некоторых раннерах. Я частично заменил спрайты на более подходящие (камни, фоны) и добавил атмосферной музыки и звуков, все взял из интернетов. Также я добавил, чтобы планетоход ехал в ночи и светил фонарями. И дал поиграть жене и друзьям…

После всех этих махинаций игра увлекла мою жену, некоторых знакомых и меня. Было интересно позалипать на досуге.

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

И тут я понял, что игроку проще указывать, в какие точки ехать роверу, а не свайпать в лево и в право.

Когда я сделал такое управление и дал поиграть людям, я увидел насколько игра преобразилась и стала интереснее. Что-то в этом было и я не встречал такое управление в других мобильных играх.

Арт, UX и т.д.

Конечно, этот вопрос стоял остро. Моя жена немного увлекается рисованием и мы решили, что ей стоит попробовать рисовать спрайты для игры. Я дал ей задание — нарисуй мне камни, простые лунные камни, серые такие... Она сказала «ок», я попробую.

Мы решили использовать векторную графика немного в казуальном стиле. Пиксель-арт никто из нас освоить не смог, а рисовать примитивный пиксель-арт не хотелось, хотя я пытался.

Параллельно я купил ей недорогой курс по digital рисованию, который она прошла. Она изучила его где-то за 2 месяца, это конечно помогло, но не сильно. Все решения с артом принимал я, я даже умудрялся зарисовывать какие-то вещи — как будут выглядеть уровни, ровер и т.п.

Камни, камни, камни…

Через некоторое время она нарисовала несколько лунных камней. Этот процесс ей давался с трудом. Однако получилось то, что я хотел. Проблема была в другом — мотивация её иссякла и процесс для неё был долгим и мучительным.

Посмотрев на эти камни, я решил, что смогу повторить это в векторе, просто изменив форму (она рисовала в фотошопе). Так я наплодил за несколько часов кучу камней…

Solar 2033 — моя первая игра и она про исследование планет

Затем пришла жена, увидела эти камни и сказала — «*****, ты рисуешь быстрее меня в 10 раз и даже лучше, зачем я тебе?»

… мы решили, что все простое смогу нарисовать я, а она будет рисовать то что посложнее. К слову, я использовал Affinity Designer и до сих пор его использую, отличный редактор.

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

Программист + Художник в одно лицо?

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

И тут проблема не в том, что рисование для программиста сложно освоить. Если ты освоил и то и другое, в тебе начинают бороться 2 личности, мозгу сложно переключаться между такими разными родами занятий. Ты начинаешь рисовать, забрасываешь программирование. Начинаешь программировать, забрасываешь арт. Сложно соблюдать баланс.

Как я стал рисовать…

Solar 2033 — моя первая игра и она про исследование планет

Я до мозга костей программист, программирую со школы. Первое что я сделал, поборол в себе страх и неуверенность… Кто-то в интернете: «ведь программисты не рисуют и не могут этого делать.»

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

В итоге я пришел к вектору и Affinity Designer, только рисую теперь еще и на iPad.

Жена покинула проект…

… но мы всё еще вместе. По итогам, оказалось, что и сложные вещи я рисую быстрее и лучше неё, хотя у неё больше базовых знаний по рисованию, светотеням и всему такому. Я начал рисовать всю графику сам.

Я нарисовал все камни для Марса и Венеры, нарисовал кучу всяких марсоходов и луноходов, множество других вещей. Мне очень понравилось рисовать UI и иконки.

В игре Solar 2033 нет никакой графики купленной на ассет сторах, все нарисовано с нуля и мной, не без помощи жены.

Разработка законченной игры

Изначально, я много чего хотел реализовать в игре, многое из этого я просто выкинул, решив, что лучше законченная игра, чем бесконечная игра мечты.

К тому же, а вдруг игра не будет работать?

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

Огромный буст в разработке произошел во время моего отпуска. Я занимался игрой с утра до ночи, рисовал, программировал, делал уровни. В том числе изучал материалы по маркетингу и как продвигаются игры, что творится в индустрии мобильных игр.

Мне было непонятно, сколько еще времени займет разработка, долго ли я буду делать уровни для игры, т.к. по прошествии 4 месяцев в игре было 2-3 тестовых уровня, а всё время уходило на разработку различных систем.

Покупка unity ассетов

Ок, Дима, разработка кажется идет медленно, что я могу сделать для её ускорения — подумал я. Ответ пришел сразу. Покупка ассетов, которые ускоряют процесс разработки. Я купил кучу ассетов, которые упростили мне жизнь, среди них — Odin Inspector, DOTween для анимаций, L2 для локализации, 2D Light для освещения в 2д играх.

Все это стоит своих денег, за какие-то 5-10-20-30$ вы экономите кучу своего времени. Многие разработчики почему-то не считают своё время как ресурс, который тоже стоит денег. Если у вас есть возможность, не экономьте на этом, не экономьте на своем времени. Хотя не мне вас учить… сам-то делаю всё сам.

Геймдизайн игры

Конечно, я делал дизайн документ, но только для себя. Я использовал excel и это было очень удобно. В нем удобно и просчитать какой-то баланс и все разбить по табличкам.

К разработке уровней я подошел со всей ответственностью. Как сделать уровни интересней? Как сделать хорошую кривую сложности? И т.д.

Я почему-то вспомнил Кодзиму и его последнюю игру. В Death Stranding используется интересный подход в прогрессии — в игру постоянно добавляются геймплейные механики по мере прохождения игры. Как только тебе надоедает одна геймплейная механика, в игре появляется другая, а старая устаревает. Хотя так делают и в некоторых других играх, но у Кодзимы это заметно.

Уровни в Solar 2033 разбиты на группы, каждая группа уровней добавляет новые игровые механики, иногда существенные, иногда нет. Группы уровней находятся внутри большой формации под названием планета — Марс, Венера и т.д. Каждая планета кроме геймплейных механик привносит и графическое разнообразие. Так я пытался удержать интерес игрока на протяжении всего прохождения.

Игра Solar 2033 вознаграждает вас за прохождение разнообразием и новыми геймплейными механиками.

Solar 2033 — моя первая игра и она про исследование планет

Создание интересных уровней

Есть множество материалов на эту тему. Я возможно не расскажу что-то кардинально новое, но покажу, как это строилось в моей игре.

Ценность объектов на уровне.

Каждый объект на уровне имеет свою ценность, она выражается целым числом. Один камень стоит 5, другой побольше 10. Одна штука наносит много урона или может уничтожить ровер, поэтому она стоит 100. Идея в том, чтобы создать уровень, расставив все препятствия, а потом посчитать общую ценность уровня, сложив всё что есть на уровне.

Solar 2033 — моя первая игра и она про исследование планет

Таким образом, я понимал примерную сложность уровня. В добавок, я учитывал и длину уровня, а некоторые штуки имели отрицательную стоимость, т.к. упрощали прохождение.

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

Американские гонки и кривая сложности.

Чтобы уровень был интересным, я решил, что его кривая сложности должна напоминать американские горки. Я разбил уровень на сектора и использовал генерацию, чтобы не расставлять все вручную.

Генерация секторов происходила с параметром сложности, всего сложностей было 5 — очень легко, легко, норма, сложно и очень сложно. У меня был глобальный генератор секторов, в котором я выбирал сложность каждого сектора.

Solar 2033 — моя первая игра и она про исследование планет

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

Такое разнообразие в сложностях, я думаю, должно также увлекать. Кроме того, сложность уровней и в глобальном виде имеет форму американских горок. Я упоминал, что уровни делятся на группы, так вот, каждая группа начинается с уровней проще, чем были в конце предыдущей группы, я даю игроку немного передохнуть и освоиться с новыми игровыми механиками.

Завершение и публикация игры

Как оказалось, делать уровни не очень сложно. Я делал примерно по 10 уровней в день в полуавтоматическом режиме. Камни генерировались, а ключевые препятствия я расставлял сам, создавая интересные геймплейные ситуации на уровнях.

В итоге, игра полностью завершена, в ней есть 3 планеты, более 100 уровней и я планирую добавить как минимум одну, ледяную. Есть в планах добавить бесконечные уровни и ежедневные уровни-задания, чтобы игроки возвращались. Есть некоторые мысли по PvP режиму игры. Есть идеи, как сделать из этой игры другую, в другом геймплее, это план Б.

В целом, пока игра опубликована только в Google Play, но у меня есть возможность опубликовать ее и в App Store, однако хочу сделать это чуть позже, в начале 2021 года.

Попробуйте игру!

Solar 2033
Solar 2033

Я поделился с вами своим опытом, мыслями. Далеко не всё я смог рассказать, единственное что я хочу, это обратной связи от вас. Это мой первый пост на DTF и первая игра:

P.S.

Если у вас есть идеи, если вы хотите сотрудничать со мной, пишите обязательно, я открыт для предложений. Я готов делать новые игры, в том числе и для ПК.

188188
55 комментариев

Комментарий недоступен

9
Ответить

Ещё скажи Земля круглая 

10
Ответить

Да я знаю.

4
Ответить

Плутон рыдает

Ответить

Комментарий недоступен

1
Ответить

Что за угабуга)
* пошёл читать историю мемов дтф.

8
Ответить

Похоже на мою разработку. За пол года сделал все геймплейные механики. Начал делать 3D-модели и столкнулся с творческим кризисом. Особенно текстурирование, несколько недель пытался наладить пайплайн изготовления бесшовных стен разной формы. Про переключение между работами - 100% правда. Я делал и программирование, UI, анимации персонажей и объектов, звуки, модели, скульптинг и ретопология, развертки и текстурирование, система сохранения и ИИ. И все это морально тяжело, приходится чуть ли не с нуля все вспоминать.

2
Ответить