Всем привет!
Ну вот и я закончил работу над своей игрой, теперь я тоже инди:) Хочу поделиться с сообществом своим тернистым путём к релизу. Все началось в январе 2016 года в процессе обсуждения кто такие инди. У меня не было цели сделать коммерчески успешный проект, цель была сделать во первых все в одиночку, а главное проверить насколько качественный продукт может сделать одиночка. Нет, все коммерческие плюшки в игре присутствуют, хотябы по причине, что их тоже надо уметь делать любому инди, но это не самоцель проекта.
До января 2016 года, я геймер с 20 летним стажем, накопленный за эти годы опыт выбрал за меня жанр - головоломка. С движком тоже вопросов не возникло - unity. Ну во первых бесплатно, во вторых я уже владел Паскалем и переучится на C# оказалось очень легко! Встречается мнение, что для простых 2D игрушек, юнити как из пушки по воробьям. Я с этим не согласен, если игра получается 30-50 МБ, то все ненужные фишки юнити остаются за бортом проекта. Кроме того полно примеров простых головоломок сделанных в юнити и получивших признание.
Примерно месяц ушло на изучение unity, чтение мануалов, уроков и т.п. На этом этапе у меня уже готова концепция игры. Игровое поле состоящее из клеток, на поле разбросаны статические элементы, стены, барьеры, порталы, детонатор и база. База чужих. Задача, уничтожить базу при помощи имеющихся боеприпасов. Боеприпасы это элементы игры, которые можно двигать по полю, всевозможные виды взрывчатки имеющие разные свойства. На каждом уровне имеется свой, ограниченный набор взрывчатки, используя которую нужно провести взрывную волну до базы, уничтожив её. Взрывная волна активируется детонатором. Насколько такой геймплей уникален судить не берусь.
Приступим к реализации задуманного. Не знаю как правильно, я начал с дизайна. Быстренько слепил игровое поле и прототипы двух видов будущих бомб. На этом этапе возникла первая загвоздка, мало того, что сами бомбы выглядели ужасно, так ещё и кончилась фантазия, как должны выглядеть остальные бомбы. Должен признаться, что рисую я как курица лапой, но не бросать же все в начале пути. Пока был художественный ступор занялся программированием бомб. Тут вообще никаких проблем. Одна бомба - один скрипт! Анимацию взрывов делал спрайтовую, использовал конструкторы спрайтшитов, которых в инете достаточно. Периодически возвращался к прорисовке бомб, вот эволюция основной мины:
Когда были готовы уже 4 вида взрывчатки, пришло время поэкспериментировать с созданием уровней, заодно и проверить как в это играется. По задумке каждый уровень должен хранится в отдельном txt файле. Но моделировать каждый уровень в блокноте оказалось очень неудобно, появилась необходимость в редакторе уровней. Сказано - сделано! Создаём отдельную сцену на которой визуально моделируем уровень. А не сделать ли редактор уровней доступным для игрока? Вопрос зачем это игроку? Единственное, что пришло в голову, это игрок создаёт свой уровень и каким-то образом даёт поиграть другому игроку. Так появилась необходимость в сетевом компоненте игры. Карты хранятся где-то в интернет-хранилище, каждый может к нему подкючится и выбрать карту из списка имеющихся. Хранилище на 1гб в самый раз, выбрал на rackstore, ибо дешевле не нашёл.
Тестируем геймплей. В принципе, вроде не плохо, но насколько я, как автор, могу быть объективным? Супруга сказала играть можно, но игра только для мальчиков. Ладно, это мы стерпим.
Наигравшись в первые версии, понял что игре не хватает вариативности и некоторой динамики. Так в игре появились каменные шары, которые можно толкать взрывной волной. Динамика добавилась, вариативность нет. Опять "осенило", шары нужно перемещать в определённые клетки игрового поля, это будут клетки-кнопки, которые будут отключать некую преграду к заветной базе. Тестируем... вроде ничего так. По мне так игра получилась с большим запасом по сложности уровней. Потом в игре появились кристаллы, что позволило еще больше запутать алгоритм прохождения уровней. Собирать кристаллы вовсе не обязательно, но во первых они дают много очков и по задумке открывают более поздние уровни. Какое-то количество кристаллов можно оставлять не собранными, но для полного прохождения игры надо держаться процента 85.
Подходим к финалу. Собираем apk и о ужас, размер файла 70 МБ! Изучаем проблему, собака закрыта в спрайтах. Начинаем думать и тут вспоминаем, что в юнити есть инструмент particle system. Переделываем все взрывы в системе частиц пережимаем другие текстуры, получаем apk на 43 МБ. Мало того что объем уменьшился, так еще и взрывы стали эффектнее.
Отдельно отпишусь о звуках и музыке. Тут я каюсь, как ни старался, данная тема мне оказалась не по силам, пришлось звуки и музыку брать у сторонних авторов. Так что задача сделать игру на 100% в одиночку не выполнена!
К июлю я добрался до релиза! Нет, программерская часть игры была готова уже в конце марта, а потом началась рутина. Создание уровней и их тестирование, это оказывается очень муторно, скучно и долго! Релиз решено было делать на google play, по простой меркантильной причине - деньги. Платить Apple 100$, зная что они никогда не вернуться это показалось мне дорого, а 25$ гуглу не жалко.
И в конце, собственно, скриншоты из игры.