Всем привет! С момента старта продаж To The Capital в Steam прошёл месяц. В этом посте я хочу кратко описать трудности с которыми я столкнулся во время разработки для тех кто ещё сомневается стоит ли игра свеч.
Если Вам не интересны технические моменты, то просто промотайте вниз поста :)
Технологии
Я начинал писать игру на c++ и теперь считаю это главной проблемой. Я думал, что стоит уделить много внимания производительности и совсем забыл про скорость разработки.
Помаленьку, в выходные дни я наращивал возможности игры пока не сделал ещё одну ошибку и не подключил Lua которая замедлила мою разработку ещё в три раза заставив меня писать оболочки на Си для всего моего кода.
Кроме того я не смог ничего найти подходящего для GUI. Мне требовался интерфейс управляющийся с клавиатуры, а таких я не смог найти и тогда я начал писать свой велосипед...
В конце концов у меня была играбельная демоверсия с ужасным интерфейсом.
Люди очень неохотно качали демоверсию по разным причинам. От страха rm -rf до банальной лени что-то качать \ распаковывать.
Решение проблемы
Я обратил внимание на JavaScript и понял, что пересев на него я смогу гораздо быстрее писать код, а главное люди смогут увидеть мою игру просто открыв браузер.
За две недели я быстренько разобрался с графической библиотекой pixi.js которая очень сильно напоминала мне SFML которую я применял с c++ и переписал весь код немного порезав функционал, что бы в итоге посмотреть как оно вообще работает.
Далее для сборки игры как standalone-приложения я использовал nw.js в котором есть возможность компиляции в байт код (лучше почитать подробности об этом в документации. Гуглить v8 snapshot) + поставлено 3 виртуальные машины win32\64 и linux32 и написаны сборочные скрипты. Ничего сложного, просто скучный код.
Интерфейс я просто сверстал на HTML5 + CSS. Это было самое простое решение. GUI на DOM может и отъедает ресурсы, но зато быстро реализуется под конкретную задачу.
Greenlight
Для того, что бы добавить проект который будет иметь шанс получить зеленый свет, Вы должны будете приобрести Submission Fee за 3200 рублей.
На момент выхода в Greenlight я всё ещё сомневался вкладывать ли деньги в графику и музыкальное сопровождение и решил выкладывать игру как есть, просто показав идею и давая возможность поиграть альфа версию.
Графика и музыкальное сопровождение
Мои нервы уже начинали сдавать от давящих сроков и бумажной возни (а ещё я и код переписывал под nw.js), но тут я столкнулся ещё с одной проблемой.
Поиск художника я начал на популярном ресурсе по gamedev-у и на сайтах с фрилансом.
Указал цену с расчётом подыскать не совсем новичка, но и не заевшегося профи, но мне писали в основном люди считающие, что у такого инди-проекта есть лишние 800 - 1000$.
Люди предлагали мне в назначенную сумму добавить ещё один нуль, но при этом они не имели в своём портфолио работы с пиксель артом. Иногда люди видели просто слово "иконки" и с портфолио набитого ими говорили, что нарисуют мне лучшую графику для игры.
В итоге я списался с одной художницей приславшей мне портфолио на почту и мы с ней обсудили сумму, сроки и ТЗ в скайпе.
И всё бы ничего, но эта художница постоянно пропадала, а потом внезапно появлялась. Это длилось пару недель и я решил отказаться от её услуг.
В тот же день я списался с художником который сделал тестовое задание просто потому что ему захотелось (чему я был рад. Просто взять и сделать показав, что умеешь). И с графикой было покончено.
Музыкальное сопровождение не отняло у меня много времени и сил. Мне попался сразу отличный композитор который делал сразу то, что нужно.
Звуки я использовал от части те, что под свободной лицензией. Другую часть купил на audio jungle. Для их подрезки или какой-либо обработки использовал редактор audacity.
Регистрация ИП
Дедлайн был уже совсем близко и мне срочно требовалось регистрироваться как индивидуальный предприниматель. Почитав, что там предлагают в гос. услугах, увидев оставшееся время, было решено просто заплатить юр. фирме которая за небольшую плату через нотариуса зарегистрирует все бумаги и мне просто останется получить их. Бумаги были готовы через пару дней.
Открытие расчётного счёта
Из сотен предложений в городе, я просто воспользовался услугами банка которым пользуюсь уже года два. Как потом оказалось, банк мог оказаться услуги по регистрации ИП, если Вы открываете у него счёт.
Будьте внимательны и скажите менеджеру банка, что Вам требуется валютный счёт и Вы будете получать платежи из-за границы! Хоть и при регистрации ИП у Вас будет указана деятельность, но по ней тяжело понять какой точно тариф Вам требуется.
Steam works
После получения всех бумаг и открытия р\с, Вам потребуется заполнить бесконечные формы указав все ваши реквизиты. Ничего сложного, но всё же лично меня напрягает возня с бумагами.
После того как все бумаги будут проверены партнёром Valve (кажется именно каким-то там партнёром), Вам будет дан полный доступ для управления страницей магазина и загрузкой билда игры.
Страница магазина заполняется просто через админку. Для загрузки игровых билдов потребуется скачать SDK в котором есть что-то типа консольного git-а.
Так же Вы найдёте документацию в которой есть видео-уроки. Документация практически не русифицирована. Даже интерфейс Steam works имеет не переведённые участки.
Из-за того, что я писал на NodeJS (nw.js включает его), мне потребовалось писать нативный модуль-оболочку для Steam API.
По началу я пытался использовать greenworks, но из-за неполной документации (что подтвердил и сам разработчик) и функций-пустышек (например возврат ID приложения стал работать только в следующей версии от той которую я пытался использовать). А так же сборки модуля на отличной версии от указанной (я вообще не понимаю как такое могло произойти).
В общем nw-gyp оказался просто прекрасным инструментом для которого я за 20 минут написал инструкции для сборки под разные платформы, почитал документацию по написанию аддонов на с++ для node js и сделал свой велосипед, а главное точно рабочий.
Итог
В итоге я всё же смог исправить все свои ошибки и написать игру которую и хотел. Это далось мне очень тяжело, но я не жалею, ведь я добился своей цели.
Желаю и вам успехов в геймдеве и во всех начинаниях в общем! :)
Буду рад ответить на интересующие вопросы в комментариях.
Спасибо!
Сегодня стартовала распродажа на которой Вы можете приобрести To The Capital с 36% скидкой!
http://store.steampowered.com/app/574580