8

Как я сделал свою супер игру без знаний программирования!

Сложно стартануть когда не знаешь чё и как. Это касается всего и, я думаю, всем это известно :) Мне никогда не приходилось рассказывать таких making-of story, поэтому как думаю так и буду писать :).


Для начала расскажу пару слов о себе. Зовут Андрей, люблю рисовать в цифре и этим занимаюсь примерно с 2010 года. Сейчас это и есть моя работа которая привела меня в gamedev три года назад. Начинал с фриланса, ну а сейчас я full-time 2D художник в одной из крупнейших компаний на рынке мобильных игр. Не могу с уверенностью сказать, почему я захотел сделать свою игру, (возможно одна мечта на реализацию которой мне нужно пару миллионов ^.^ Наверняка именно это дает мне волшебный подсрачник чтобы я не стоял на месте, а развивался) одно знаю точно, что я всегда хотел сделать что-то сам, хотел пройти все этапы реализации такого продукта от идеи и до релиза.


Примерно в 2015 году я начал подробно интересоваться информацией через какие этапы проходит разработка игры и понял что это реально, единственное что меня сдерживало это отсутствие знаний в программировании. Знакомый подсказал мне использовать Unity (а помню что когда я впервые взглянул на Unity то меня немного испугал интерфейс)

Как я сделал свою супер игру без знаний программирования! Gamedev, Unity3D, Разработка, Длиннопост, Моё

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


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

Как я сделал свою супер игру без знаний программирования! Gamedev, Unity3D, Разработка, Длиннопост, Моё

И это меня очень радовало, я таки смог что-то сделать :) Где-то тогда я окончательно поверил в свои силы, а именно, что руководствуясь информацией которая есть в сети можно самому делать игру, нужно просто подкачать рукава и набраться терпения.. Тогда я начал работать над концепцией какой-то более-менее нормальной игры..

Предыдущая идея с шутером была неплохая но скучна, я решил добавить больше стрельбы, врагов и все это превратилось в мой первый нормальный пробный проект и какой же и превратился на грабли :) (единственный недостаток который далее был со мной - я не знал ни одного языка программирования, что и становилось очень часто мне поперек горла, а найти какой-то урок по полному циклу разработки игры (которая удовлетворяла все мои условия и не была бы примитивной) - оказалось не реально). Основная проблема была в том, что нужно брать с разных уроков части и самому их слепливать. Выглядело это примерно так: с одной урока я беру функционал меню, с другой управление персонажем, с третьего - врагов, а разбавить это все разными настройками в Unity, различными переменными, функциями и другими непонятными для меня до сих пор названиями.. Короче, мой space shooter залег в криогенный сон на пару световых лет :).

Возможно в будущем можно будет воспользоваться готовым артом, потому что времени я на него потратил немало:

Как я сделал свою супер игру без знаний программирования! Gamedev, Unity3D, Разработка, Длиннопост, Моё

После Space Shooter пришли в мои руки серии уроков по раннеру и платформеру, которые и стали основными моими учителями. На этот раз я решил подойти к делу более серьезно, я составил поэтапный план работы собрал достаточное количество видео уроков на все случаи:

Как я сделал свою супер игру без знаний программирования! Gamedev, Unity3D, Разработка, Длиннопост, Моё

(На фото 6 списков воспроизведения с более чем 40 :))

Также я составил поэтапный план работы:

Как я сделал свою супер игру без знаний программирования! Gamedev, Unity3D, Разработка, Длиннопост, Моё

и каждый раз как он заполнялся линиями как в штрихкоде

Как я сделал свою супер игру без знаний программирования! Gamedev, Unity3D, Разработка, Длиннопост, Моё

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

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

Как я сделал свою супер игру без знаний программирования! Gamedev, Unity3D, Разработка, Длиннопост, Моё

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

Как я сделал свою супер игру без знаний программирования! Gamedev, Unity3D, Разработка, Длиннопост, Моё

Процесс пошел и каждый вечер после работы в течение трех с лишним месяцев я отдавал свои последние силы Джампи Джо :) (Jump - прыгать; Jo - у всех нас есть какой-то игровой никнейм;)) Каждый вечер я смотрел видеоуроки где умные люди писали коды строку за строкой, а я переписывал и скажу вам это помогало, постепенно я начал улавливать суть и где-то на втором месяце работы я уже понимал логику функций. Сейчас для меня уже не составляет проблемы на основе существующего кода, с которым я уже работал, сделать такой какой нужен мне В) (очень помогает официальный форум Unity, на котором есть много решений различных задач).

Интересный период был когда я разрабатывал уровни .. особенно первые 5 .. А с каждым последующим уровнем генерировать идеи становилось намного труднее. Для простоты конструирования уровней я делал пиксельные схемки:

Как я сделал свою супер игру без знаний программирования! Gamedev, Unity3D, Разработка, Длиннопост, Моё

на границах экрана палитра цветов каждый из которых означает какой-то игровой элемент, красный это простой враг, белый - колючки, оранжевый - монетки, и т.д. Главное чтобы было понятно самому :) Каждые три уровня в игру вступает что то новое, новый враг, пилы с разным функционированием, платформы которые движутся и многое другое. Также я хотел включить в игру некий загадочный элемент, которым стали глаза, что подглядывают за Джампи Джо на каждом уровне кроме последнего (не буду спойлерить, кто дойдет до конца узнает :Р). А еще после прохождения 32 уровня я сделал анимационную сцену, которая дает начало будущей новой части :).

Несколько слов о режиме Джампер - это раннер, в котором со временем увеличивается скорость движения Джо. В нем ты собирая монетки зарабатываешь дополнительные жизни и тренируешь умение вовремя прыгать с платформы на платформу. Верхний этаж - безопасный, а на нижнем есть колючки. Максимально заработанные очки (highscore) конвертируются в жизни и при переходе в игровые уровни - добавляются к основному количеству жизней. В игровых уровнях также работает система конвертации очки в жизни (для понимания код для этой системы я придумывал сам, и это заняло у меня где-то неделю, потому что останавливала отсутствие знать грамматики С#, например, я не знал, как правильно перевести float в int и т.д.), чем больше монеток соберешь тем больше получишь жизней, а еще каждые 10 уровней монеты дорожают, а убитый враг тоже добавляет очки :).


Таким образом потратив достаточно времени и терпения в новогоднюю ночь в Google Play появилась моя игра :)

Как я сделал свою супер игру без знаний программирования! Gamedev, Unity3D, Разработка, Длиннопост, Моё

Конечно я не останавливаюсь и работаю над ее улучшением, но я таки это сделал:) После релиза я доработал режим Джампер, улучшил контроль над Джо, реализовал систему конвертации очки в жизни, добавил несколько визуальных эффектов, и продолжаю улучшать игру, в чем мне очень помогают ваши комментарии

Как я сделал свою супер игру без знаний программирования! Gamedev, Unity3D, Разработка, Длиннопост, Моё

и поддержка близких, друзей и особенно жены. А еще вы вдохновляете. Вдохновляете с новыми силами садиться за компьютер и творить :)


Спасибо Вам, а тем кто еще не пробовал себя в роли Джампи Джо, попробуйте и если не будет трудно напишите о впечатлениях от игры:


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


п.с. Несколько советов, которые сэкономили мне время:


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


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


- сервисы типа dropbox чрезвычайно удобны для доступа к рабочим файлов с телефона.


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



П.П.С. Для итога: первый раз я открыл Unity конце 2015 года (тогда же переписал с урока первую строчку кода), а 31 декабря 2016 моя игра была готова без всякой посторонней помощи.


Спасибо всем кто дочитал до конца, надеюсь было интересно :)


Линк на игру в Google Play: https://play.google.com/store/apps/details?id=com.nechyporuk...