Почти целый год я вынашивала идею этой статьи, думала нужна они или нет, будет ли это кому-то интересно, но решила, что раз эта мысль всплывает у меня в голове с регулярной периодичностью, то все-таки ее нужно воплотить.
В посте я не буду давать каких-то советов, пока у меня у самой слишком мало опыта, чтобы это делать. Скорее, мне просто хочется поделиться историей создания своей первой игры, выслушать советы и всякое такое.
1. Идея
В далеком 2017 году... Ладно, не таком уж и далеком, всего 2 года прошло. В 2017 году после изучения HTML и CSS для рабочих целей, я поняла, что мне было бы интересно изучить какой-нибудь язык программирования. Конечно, первой мыслью было начать читать документацию по JavaScript или PHP, чтобы продолжить иметь дело с веб-разработкой, но понимание того, что сайты я делать не хочу, а учить язык без необходимости его применения как-то глупо и бессмысленно, заставило откинуть этот вариант.
Тогда я вспомнила, что уже несколько лет у меня в голове есть концепция произведения, которая мне очень нравится и до сих пор, но которую я так и не придумала, в каком виде воплотить. И о книге думала, и об анимации, и даже о комиксе, но все эти варианты мне не подходили. Так почему бы ей не стать игрой, подумала я (спойлер: эту идею я, конечно, пока не реализовала, я только учусь, а для нее все-таки хочется много чего уметь).
И так появилось новое хобби.
2. Первые шаги
И хоть цель была уже ясна, мне все еще необходимо было выбрать средства для ее достижения. Думать долго не пришлось - самым очевидным вариантом был движок Unity и язык C#.
И началось изучение. По этому случаю даже был куплен огромный справочник по языку, который, на самом-то деле, мне почти не пригодился. Но выглядел он, конечно, внушительно.
Да простят меня настоящие программисты за следующие слова, но с теорией у меня не заладилось. Да, я узнала про переменные, типы данных, операторы и про другие базовые вещи, но без практики дальше читать теорию не было смысла, потому что совсем ничего не откладывалось в голове.
И следующие пару-тройку месяцев я провела за решением небольших задач вроде поиска минимального члена массива или написания скрипта для пузырьковой сортировки, что оказалось гораздо интереснее и полезнее сухой теории.
Но пора бы уже переходить к играм. Попробовав поизучать Unity по видеоурокам вроде "Пишем первую игру за 2 часа", я поняла, что так ничего не выйдет. Если я не решаю какую-то задачу самостоятельно, а просто слежу за тем, что делает другой человек, в какой-то момент мой мозг полностью отключается, и я начинаю просто бессмысленно копировать текст. Надо ли говорить, что при таком "изучение" в голове ничего не остается?
Ну что же, выходит, есть только один вариант - начать делать что-то свое.
3. Первый проект
Вот и настало время сесть и подумать, что я имею и что я могу с этим сделать.
Минимальные знания языка программирования
Да, снова можете закидать меня тапками за то, что досконально не изучила все особенности языка C# и всю документацию Unity, но без привязки к практике сделать это для меня оказалось практически невозможно. Поэтому игра с технической точки зрения должна быть максимально простой.
Отсутствие художественный талантов
Я могу что-то изобразить на бумаге или на мониторе, но совершенно точно это "что-то" никогда не станет шедевром. Поэтому графика тоже должна быть простой и минималистичной.
Никаких готовых ассетов
Сами знаете, как выглядят игры, разработчики который используют готовые бесплатные ассеты. Как минимум, они выглядят все одинаково, как максимум, они выглядят ужасно. Платные недорогие ассеты, кстати, не многим лучше, а платить много у меня не было ни желания, ни возможности.
Игра должна быть непродолжительной
Пока я умею очень немногое, а значит любую мелочь буду делать очень долго, чтобы не потерять интерес и не оказаться в заложниках огромного проекта, остановимся на чем-то коротком.
Игра должна быть приятной
Знаете эти первые игры разработчиков, где половина всего не работает, а то, что работает, работает криво? Вот мне очень не хотелось оказаться в такой же ситуации, а значит нужно было создать что-то пусть простое, но работающее должным образом.
Никакого экшна
Любой экшн в играх сильно завязан на управлении и физике. Смогла бы я в своей первой игре, не имея достаточных знаний и опыта, нормально реализовать плавные, комфортные и приятные, скажем, прыжки? Или были бы, например, выстрелы достаточно удобными? Не приходилось бы игроку каждый раз страдать, когда он хочет попасть во врага? А еще для каждого движения нужна была бы своя анимация... Нет, такое в качестве первого проекта я точно не осилила бы.
Игра должна выйти в Steam
Да, можете говорить, что в стиме и без меня полно всякого трэша от новичков, но я не знаю, как можно развиваться без какой-либо обратной связи, делая все тупо "в стол".
Все должно быть сделано мной
Найти энтузиаста, который полностью будет бесплатно выкладываться на чужом проекте, невозможно, а вкладывать средства в игру я не планировала. В конце концов, я все это делала ради пробы пера, а не ради заработка, поэтому и тратиться не было необходимости.
Не очень впечатляющие данные, правда? И с этим нужно было как-то работать.
4. Создание игры
Идея игры пришла довольно быстро. Я решила делать небольшой детектив, в котором игроку предстояло бы взять на себя роль следователя и раскрывать преступления.
Помним же из предыдущего пункта, что все должно быть максимально просто? Так, например, я решила, что основным местом действия будет стол следователя.
Нарисовать его не составило большого труда, а смотрится, как по мне, весьма неплохо.
Чтобы помочь игроку разобраться было решено добавить наставника, который ему все расскажет. Но так как рисовать полноценного человека с анимацией - сложное и долгое занятие, в игре он ни разу не появляется, присутствует только его закадровый голос между уровнями. Ну... Не голос, конечно, а "закадровые" титры.
И пусть, по сути, в игре-то его и нет, но в голове он мне всегда представлялся как пухлый, лысоватый добряк лет 50-55.
Все, на чем строится игра, — это поиск зацепок в уликах
И сопоставление этих зацепок с досье подозреваемых
Жаль, конечно, что пришлось от многих идей отказаться в силу возможностей. Например, я решила, что за случайную генерацию досье мне лучше не браться. Пусть уж все будет статично, но будет нормально работать.
Зато чтобы удержать любопытство игрока, я добавила небольшую загадочность, которая проходит нитью через всю игру.
Я могу до бесконечности описывать вещи, которые мне хотелось добавить изначально, а потом пришлось или изменить, или полностью убрать. А еще рассказать о множестве ухищрений, на которые мне пришлось идти, чтобы все работало, когда не получалось реализовать что-то нормальными человеческими способами, описанными в документации. Но не буду, потому что пост и так выходит огромным, а еще я не хочу доводить до нервного тика настоящих программистов.
Вообще, я сейчас пишу "упростила то", "упростила это", но было все равно ничуть не просто. По сути, на этой игре я училась создавать игры, и практически каждый шаг гуглился. Нужно как-то переключать сцены между собой? Гуглю. Нужно реализовать сохранения? Гуглю. Нужно заменить стандартный курсор на свой? Гуглю. Да, наверно, подход не самый правильный с точки зрения создания чего-то, но я до сих пор считаю, что точно самый эффективный для обучения.
5. Релиз и ожидания
Игра вышла под конец 2018 года. Загрузка своей игры в Steam это, конечно, тоже тот еще квест, хорошо хоть ИП у меня до этого было открыто и мучаться с финансовой информацией не пришлось.
Вообще, я ничего не ожидала от выпуска (спойлер: ничего и не произошло), ну разве что вернуть себе $100, которые нужно было заплатить для размещения своей игры в Steam (спойлер: вернула).
6. Результаты
Конечно, особой популярности игра не сыскала, но она и не должна была. Все, что мне хотелось сделать с ее помощью, — это пройти весь путь разработки игры от зарождения идеи до релиза.
И я горжусь тем, что ни на одном этапе не бросила это дело, а довела до конца. Да и результатом, честно говоря, тоже горжусь. Да, игра звезд с неба не хватает, но на момент ее релиза — это мой максимум.
А еще большая часть немногочисленных отзывов оказалась и вовсе положительной, что не могло не радовать.
Кстати, первый отрицательный отзыв стал самым полезным, потому что игрок в нем рассказал про существующий баг, но мне потребовалось собрать всю волю в кулак, чтобы с достоинством спросить, что и когда работает не так, а не залезть под одеяло и больше никогда никуда оттуда не вылезать.
Что дальше?
Сейчас прошел почти год с релиза, я бы многое поменяла в этой игре, но делать этого я, конечно, не буду. Зачем? Игра вышла полноценная, у нее есть начало, есть конец, ее можно пройти, она не забагована, а чтобы сделать из нее что-то лучшее, ее нужно переделывать практически с нуля.
Но мне понравилось. Мне действительно понравилось создавать что-то своими руками, и пусть пока это "что-то" очень простое и небольшое, но я учусь и двигаюсь дальше.
Так у меня уже готова большая часть моей второй игры, релиз которой я планирую в начале 2020 года. А там, например, уже даже будет полноценная анимация и персонаж. Может быть, и о ней когда-нибудь напишу.