Sokopango Game

Мне почти 35, я немного бородат, и я выпустил свою 1-ю игру. Улучшенный клон старой игры Pango для ДОС/Агат-9.

Трейлер к игре.

Добрый день. Это мой 1-й пост. Хочу рассказать о своем опыте разработки игры.

Аннотация

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

Пролог

По образованию программист, с середины 5-го курса пошел в 1С, так и работаю до сих пор в 1С - на себя, свое ИП.

В конце 2015 решил, что хочу написать игру для телефона. Выбрал Java и начал его изучать. Думал, возьму какую-нибудь библиотеку и навояю с ее помощью игру. Поизучал немного и узнал, что есть игровые движки (я знал это и ранее, просто сразу не принял во внимание). Выбор предстояло сделать между Unity и UE4. Интернет, обзоры, искал информацию, что лучше. Ага, щас! Это я позже понял, когда стал более зрелым в программировании, что это просто инструменты, которые нужно выбирать не что лучше вообще, а что лучше для меня, проще, выгоднее, и т.д. В общем, все вроде указывало на Unity, но выбрал UE4 - C++ немного знал (в университете писал на Delphi - блин, набор штампов: 1С, Delphi), есть визуальное программирование, графика типа круче, и добрый набор других плюшек.

Если кратко - изучал я его (движок UE4) с весны 2016 до весны 2018. Блин, 2 года! Конечно, я это делал в свободное время. А изучал как - решил от корки до корки пройтись по всей документации, полностью все повторяя у себя, а не просто читая.

В 2017 начал свой 1-й домашний проект - 3D шутер в кубе со специализацией игроков. Особенность - перемещение во всех 3-х направлениях, т.е. еще вверх-вниз. Прототип готов, но я не готов - мало опыта, нужно много контента, а я не дизайне, не моделлер, не пр.

Зимой 2016/2017 и 2017/2018 участвовал в https://russianaicup.ru. Оба раза доходил до 2-го раунда, в шкафу лежат 2 футболки за них.

Весна 2018 - знакомый подкинул идею мобильного приложения, 3 месяца делал, сделал. Пока проект заморожен. Это мой 2-й pet project.

Лето 2018 - весной купил дачу, все лето на ней пахал.

Собственно, рассказ.

В детстве у нас был компьютер Агат-9, и там была игра Pango. Решил, что это будет 1-й моей игрой, которую я выпущу - мой 3-й pet project. Были и другие идеи, у меня список большой, но остановился на этой, т.к. считаю, что 1-я игра должна быть простой в реализации, желательно клон, чтобы на ней набраться опыта. Можно конечно клон тетриса или арканоида, но с ними мир не захватишь.

31 июля 2018 - 1-й коммит.

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

Что писать про само программирование, даже особо не знаю. Есть идеи, реализую их в коде. Были проблемы - решал их. Кратко - прям много чего узнал, много чего реализовал, т.к. делал реальный проект, а не "Hello, word!". И всем советую, если хотите получать реальный опыт, делайте то, что вам нужно, либо кому-то нужно. Только так вы научитесь чему-либо.

Особенности реализации:

- в проекте 1 карта, все карты хранятся в json-файла. Главная причина - было не удобно рисовать уровни, поэтому сделал отдельно редактор уровней на 1С (потому что быстро). 2-я причина - уменьшить размер игры, т.к. сжатый тестовый файл будет в разы меньше весить, чем карта в UE4. 3-я причина - возможность менять состав уровня без обновления - стянул карту с сервера, загрузил, профит. 4-я - ну это на будущее - редактор карт в самой игре, обмен картами между игроками.

- вспомню, допишу.

Контент.

Часть куплена, часть скачана с бесплатны ресурсов, часть нарисовано мной. После напильником обработано - спрайты, треки.

Список используемых сторонних ресурсов и их источника есть в игре.

Наше все:

Paint.NET - мне нужна был прозрачность, но Paint ее не поддерживает. Нужен был простой редактор. Как оказалось позже, в нем дофига чего классного есть, что мне пригодилось: замена цветов, куча эффектов/коррекции, слои, удобный зум/скролл (в Paint неудобный).

Audacity - чтобы обрезать трек, уменьшить размер (1 дорожка, понижение битрейта).

Организационная часть.

Использую git, но в основном для бэкапов. Поработал, перед сном сделал коммит.

Все свои мысли у меня был в обычном тестовом документе "TODO.txt". Здесь есть все самое важное - это и дизайн документ и дорожная карта, куча ссылок по разным вопросам (по разработке, продвижению, пр.), идеи на будущее, пр. Остановился именно на текстовом файле, т.к. это быстро, и для 1-го раза пойдет.

Игру писал вечером и ночью, иногда на выходных. За месяц до релиза работал до 3-х ночи.

Сборка.

Проект сначала собирал из редактора, но там настройки берутся из конфига, т.е. нужна, например, Development-сборка, зашел, поменял в настройках параметры, собрал, нужна Shipping-сборка, аналогично. Потому сделал себе батники - пришлось потратить время на то, чтобы узнать как работает UAT (Unreal Automation Tool, именно эта программа собирает проект). А потом до меня дошло, почему в UE4 есть несколько способов собрать проект, сначала я этого не понимал.

Поделюсь (могу быть не прав):

- через меню "File - Package Project" в "Unreal Editor" - берет настройки из "меню Edit - Project Settings" (из файлов конфигов). Т.е. если надо из этого меню что-то собрать, но с другими параметрами - идете в настройки и вручную меняете, а потом собираете.

- через "Project Laucher" - тут вы создаете профили с разными настройками, т.е. для каждого профиля будет свой набор конфигов. Если вам надо собирать и Development, и Shipping, делаете 2 профиля 1 раз и все. Уже не нужно заходить в настройки проект.

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

Тестирование.

Обязательно покажите кому-нибудь свою игру, пусть поиграют в нее. Своим незамылиным взглядом вам покажут на то, что вы не замечали, или считали не важным.

У меня так несколько косяков и недочетов нашли. Было это не задолго перед релизом. Часть багов была связана с монетизацией, часть с геймплеем.

Расходы:

- 0$ за Google аккаунт - был ранее оплачен.

- 30$ за 3 бандла от Kenney. Купил, надеясь, найти спрайты героя и анимации. По итогу спрайты взяты от туда же, но из бесплатного набора. В общем почти все взято из этих наборов.

- 18$ за музыкальный набор от Gamemaster Audio - эффекты и несколько треков. Почти все звуковые эффекты оттуда.

- 12 EUR за домен от Google. Как бы не нужен, но для важности взял. Может в будущем пригодится. В евро, потому что для России сервис не работает, пришлось указать, что я из Нидерландов.

- 35.70 EUR за хостинг от altushost.com. Специально искал хостинг в Европе с ДЦ там же. Также хрен знает, зачем взял, т.к. для игры и ее продвижения это вроде не нужно.

- 100$ Apple за возможность выкладывать игры в App Store.

- 1634 RUB за а/я для указания адреса в Google Play, т.к. у меня есть внутриигровые покупки. С регистрацией ящика у меня вот какая оказия. Арендовал я его через сайт почты (класс, 21 век, все можно сделать через интернет) - выбрал, внес свои данные, оплатил. Оставалось прийти на почту с паспортом и номером заявления. Оказалось, здешние ничего не знают про то, что это можно сделать через интернет, хотя на сайте утверждается обратное. Объяснил, назвал номер заявления, дал паспорт. В общем оплату они мою увидели, но в "своей" системе по этому поводу ничего нет. Звонили в бухгалтерию, тоже не помогло. Написал заявление через сайт - до сих пор рассматривают.

Сборка под iOS.

Для сборки под iOS проекта на UE4 нужна MacOS. У меня Windows, мака нет. Пробовал установить/запустить виртуалку, не получилось. Пришлось арендовать VPS (hostmyapple.com/mac-vps-hosting) для удаленной компиляции. Не с 1-го раза, но получилось собрать проект. Если кому интересно, достаточно поставить X-Code, ну и обновить ОС, если стоит не самая свежая. Долго промучился с ошибкой "Invalid SDK MacOSX.sdk ... и Invalid SDK iPhoneOS.sdk ..." - помог запуск команды "sudo xcode-select -r" в терминале - долго искал решение. Иногда при сборке бывают ошибки связанные с rsync - просто надо заново запустить сборку.

На данный момент игра еще не одобрена в App Store - 2 раза отклоняли 1-й раз требовалось подтвердить, что игра соответствует указанным пунктам гайдлайна (список был в сообщении). 2-й раз написали, что игра у меня азартная и на деньги. Написал сообщение, отправил на ревью (в приложении ничего не исправлял), уже неделя прошла - тишина. В конце статьи будет ссылка на игру, пока на Google Play.

Монетизация.

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

- внутриигровые покупки на покупку жизней и отключение рекламы.

Рекламу вставил от Appodeal, т.к. это быстро и просто. Ранее я пробовал с ней работать. Нужно было быстро, т.к. я уже выбивался из сроков. Да-да, надо ставить себе сроки (+ определиться с тем, что надо сделать до релиза, а что оставить на потом), иначе можно игру и не закончить.

Продвижение.

Только начал. Но перед этим, считаю, нужно хотя бы трейлер сделать. Не знаю как другие, а мне проще посмотреть, чем почитать, т.к. хвалиться все могут, часть из описания мне будет не понятна, т.к. я еще не играл, а в ролике видно то, что я увижу у себя на экране телефона. Для захвата видео с экрана и монтажа я использовал "Camtasia Screen Recorder and Video Editor". С сайта можно скачать триальную версию. Мне она очень понравилась, т.к. у меня не было опыта в видеомонтаже, а в ней все получилось с первого раза.

Эпилог.

В сухом остатке: 10 месяцев (выпустил в конце мая) разработки, 330 коммитов, хз сколько часов, бесценный опыт. Проект удался, т.к. он закончен, т.е. продукт выпущен.Принесет ли это прибыль - не известно. Надеюсь, игра найдет своих игроков, которым он придется по вкусу. Все зависит от раскрутки - узнает ли потенциальный пользователь про нее.

Послесловие.

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

Спасибо за внимание.

Ну и в самом конце ссылки:

9393
40 комментариев

Сумбурно, скомкано, куча грамматических ошибок, но много практической инфы, в целом, понравилось! Похоже на репортаж с передовой)) Удачи афтару!)

12

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

1

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

Привет от других 1С-ников, ушедших в геймдев) Через месяц пишите статью о первых доходах)

2

Если игра будет одобрена в AppStore, напишу отдельно пост про выпуск игры под iOS - с чем столкнулся при выпуске игры под эту платформу. В тексте немного есть об этом.

Я так понимаю в этой ветке программисты 1С любящие геймдев отмечаются? :)

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

1