17 января 2018 17.01.18 44 6735

История о том, как я создал и выпустил игру в стиме. Кратко и с подробностями.

+71

Я дебил безграмотный, так что громатека вертела меня, как хотела.

Чуть меньше недели назад я выпустил игру. Если делать обзор в одно предложение, то можно описать, как «то еще говно, но хотя бы не гринлайт».

О чем буду тут писать?

Кратенько, но с подробностями от момента «Бля, ЯЖПРОГРАМИСТ» до момента «МНЕ НУЖНЫ ВАШИ ДЕНЬГИ».

Как все началось.

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

Вы спросите, как же ты пришел к тому, чтобы сидеть и работать по 8 часов день над куском дерьма?

Почти ровно год назад, я увидел на канале Юзи(тот, который бесполезный рот) видео, где он создал какую-то херню на движке UE4(Unreal Engine 4). Это была комната, с парой дверей, которые открывались, когда внутри триггера находилось что-то. В этот момент я подумал что-то вроде «О, а это прикольно. Учитывая, что он даже не программист».

Я побежал скачивать EU4. Затем осталось дело за малым, научится делать игры.

Ну это легко, просто идешь в ютубесы и пишешь «Туториал по EU4». Все, что я делал следующие 4-5 месяцев это учился по туториалам, и поглощал инфу связанную с геймдевом.

Знаете, как мудрые мира сего говорят «Найди такую работу, чтобы уставать, но не заебываться, но при этом хотеть работать еще»?

Я живу этим чувством уже год. UE4 работает на плюсах(С++) и блюпринтах. Я изучал именно их. Слава богу что UE очень дружелюбная среда для новичков. Там уже есть прекрасный контроллер и уже можно побегать как в шутере. Мой пик тогда был пару выставленных на сцене кубиков, типа комнаты, и лампа, которая включалась когда ты проходишь в триггер.

Еще было не похоже на игру, но уже что-то. Потом я перешел к тому что хотел попробовать сделать что-то похожее на игру. Купил моделек закинул в движок, пытаюсь поменять стандартного белого чувака на мою модельку — Краш. Два дня попыток фикса ни к чему не привели, разве что к разочарованию в своем компьютере. Это еще не раз станет краеугольным камнем. Если что проблема была в видео карте.

Что же я сделал? Сменил движок.

Юнити работал гораздо лучше. Летальных крашей, которые хер пойми, как фиксить, за пол года пользования было 2, в сравнении с 5 UE4 за 3 месяца это очень круто. Юнити работает на решетке(через е). Вообще С#, но это слишком не интересно. Для меня лично большой плюс, ибо там все работает на стандартном коде, а не табличке. Единственное отличие только в том, что с ним ты чувствуешь себя супер пиздатым уникальным хацкером(даже при учете, что некоторые скрипты буквально по 4 строчки).

Снова идем в ютуб, снова ищем туторы, снова сидим по 5 часов делая хер пойми что. НО! Теперь то я знаю все основы. Так что я нашел самый простейший пример тутора, где делалась реально игра.

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

Прогресс в программировании невероятный. Я из туториалов научился и понял основы ООП (объектно ориентированное программирование). Классы, как они наследуются, как их использовать и все такое. Идеально. Кстати я сейчас на третьем курсе, второй симестр, а мы все еще не начинали изучать это. А это инфа, которую должны давать в первый день.

Но мне нужна была цель. Дедлайн. К концу года я должен был сделать игру.

И тут началось самое интересное. Сентябрь. Я собираюсь делать игру. На мне сложное универное задание по программированию, плюс еще и собираются отправлять в Астану на четверть финал чемпионата мира по программированию. Ничего того, меня выбрали с расчетом на «ну он же чето тыкает по клаве, пусть едет». Если что я там просто день писюны попинал да и все. Доделав за две недели задание, я узнал, что я должен сделать еще одно задание, которое еще сложнее. Так что мне пришлось придумывать и программировать игру и делать программу для тестирования одновременно.

Ладно приступим к идеи игры. Итак что у нас по бюджету? Пару бутеров с колбасой. Хватит.

Сентябрь. Я хочу сделать игру. Ничерта не умею и не понимаю, что делать. Сначала я хотел сделать кучу простых загадок, которые ты должен найти на карте, а за их решение тебе будут давать часть кода. В конце ты пройдешь на следующий уровень. Отличная идея. Реализовать не смогу. Пошел в магазин ассетов Юнити, чтобы собрать абсолютно все бесплатные модельки, сделанные в низкополигональном стиле. Почему этот стиль. Потому что бесплатно, и потому что кто бы их не делал они все будут одинаковые. Среди этих моделек был один красивенький портал. Сразу идея пришла, чтобы именно этот портал связывал уровни. Круто. Но что с головоломками. Я не стал париться и просто взял мини игру из первого туториала.

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

Почему мне нужен был сюжет?

Во первых если игра не имеет сюжета или на крайний случай лора, то это кусок параши. Да и к тому же я всерьез увлекался писательством года два назад. Ну как в серьез. Я писал всякие фанфики. Да, да, знаю, уже есть отдельный человек чтобы меня за это шкварить так, что все. Но суть в том, что мне нравилось придумывать истории, пытаться делать их правильно с сценарной точки зрения. Я на тот момент серьезно изучал статьи о том, как писать, как создавать персонажей, как и что в других аспектах. Я писал разную хуйню в целом, но были пару интересных вещей. Я даже в серьез хотел написать книгу. У меня было даже 40 с чем то страниц написано вступительной части, но как бы мне не нравилась идея, которую я придумал, сам процесс мне не особо приносил удовольствие. Тогда я забросил это дело. Но мне это пригодилось.

Итак, как сделать историю про ничто, нигде, но чтобы с простым но сюжетом?

Да легко. Итак у нас есть портал. В него надо проходить. Как нам подавать текст? У нас же не будет катсцен и персонажей. Поэтому только черный экран и белый текст. Отлично. Черный экран это будет якобы пустота между уровнями. Тогда получается что уровни это миры? Видимо да. И игрок путешествует через миры. Круто. Что объединяет миры? Какой-то персонаж. Пусть он будет обитать в пустоте между мирами. И создавать эти миры. Что его может волновать? Чего же он хочет? Все это надо придумать и связать. А какая будет мысль у всего произведения? Это тоже нужно придумать. Ах да, нужно еще понапихать параллелей, которые никто не увидит, только потому что я могу. Итак у нас получился персонаж Сознание. Эфемерное существо, которое озабоченно своим существованием.

Думаете это легко? Чтобы придумать это и написать 4.5 страницы текста я потратил 2 недели.

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

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

А че у нас там по левел дизайну?

Ну как сказать. То что я прочитал с десяток статей по геймдизайну и левелдизайну меня мастером не сделало. Но еле как придумать 7 уровней я смог(столько уровней нужно было для истории). Они все получились более менее разнообразные. Более менее интересные. Если конечно это вообще можно говорить о проекте такого уровня.

И на этот этап ушло больше всего сил и времени, ибо я сидел и делал эти уровни буквально по 12 часов(с перерывами на расслабон перед плойкой). Я буквально просыпался сидела перед компом с утра, иногда поворачиваясь к телевизору чтобы порубиться в Баттлефиелд. Но опять же мне это доставляет кайф, хотя бы просто потому что засыпая в 4 утра, я думаю о том, что завтра надо будет все это привести в порядок.

Настало самое страшное время. Пора контактировать с Стимом. Пора становиться его партнером.

И эта часть наверное самая эмоциональная, ибо я в экстазе был уже от факта что мне пришлось завести долларовый счет, а впереди еще куча разной непонятной фигни. Пришлось заплатить 100 долларов за то, чтобы войти в список партнеров. Сумма большая, а учитывая, что рукожопый дебил, который все сделал неправильно, то мне пришлось заплатить дважды, так что у меня есть пропуск еще на одну игру. Затем надо было загрузить в Стим свой билд игры. Я не имею понятия, как я умудрился сделать все правильно с первого раза. Знаете в чем прикол? В том, что программа, через которую ты загружаешь файлы игры это черно-белая консоль сродни /cmd на винде. Так она еще и работает по принципу укажи путь к специальному скрипту, который укажет путь к хранилищу, который укажет путь к настройкам хранилища, и смотри пол часа на черные точки, чтобы загрузить игру в стим. Клевая штука в общем.

И вот игра почти закончена, осталось буквально пару уровней, и уровень с концовками сюжета(которых кстати две!). Что теперь?

Теперь описание продукта, скриншоты, которые вы уже видели. И трейлер. И как бы вам сказать. Мой комп еле тянет редактор, когда я пытаюсь сделать уровни для игры, а тут нужно записать в HD качестве геймплей. Мой комп даже доту не тянет, о чем речь. Мне пришлось просить друга, чтобы он записал кучку мелких моментов. Слава богу, что я увлекался записью летстплеев будучи школьником. Камон, это были времена популярности майнкрафта, мы страдали херней, как могли. Но с тех пор я запомнил, как пользоваться Сони Вегасом так, чтобы уметь нарезать видосики и вставлять текстики. Этого хватило для трейлера.

 

Бетатестеры. Лол.

Берешь друга, говоришь ему: «Играй в мою игру». Он играет, а ты фиксишь все дерьмо.

Музыка

Ходить в тишине по игре очень тупо, так что придется купить музыку. Конечно покупать нормальную музыку, а ля Лайф ис Стренж я не мог. Ибо там один трек стоит 50 долларов. А это больше, чем моя стипендия. Пришлось купить дешевый пак из кучи фентезийной музыки. Где по сути просто 2 трека, но в 20 штук ремиксов. И она правда красивая. Не то чтобы ее хотелось добавить к себе в плейлист, но очень даже приятно.

А теперь переведи игру на Енглиш.

Я сделал все очень профессионально, взял текст и вставил его в Яндекс Переводчик. Вау. Невероятно. Это выглядело ужасно. О чем даже писали в обсуждениях игры. Я не особо тупой в инглише, но каким-то образом я за 4 месяца разработки игры не заметил, что у меня написано «Левел Комплайтед» вместо «Левел Комплитед». Слава богу появился энтузиаст, который добровольно перевел весь текст игры по человечески.

Итак все готово. Релиз. Гребем деньги.

Ага, хер там. Я не могу вам показать статистику. Но дела обстоит так. Игру показывают миллиону человек, из них где-то пятнадцать тысяч переходят посмотреть на страницу. Из них в первый день покупают игру 50 человек. И это очень много. Но вот к концу недели все будет наоборот. Сегодня я например продал 1 копию игры. Так что если вы вдруг каким то образом окажитесь в моем положении, то просто помните, что из первого ранга в стиме(игры заработавшие больше 1000 долларов) выходят только 25 процентов игр. Все остальные нищеброды. Но затраты окупились. И то радует.

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

Какие здесь можно сделать выводы?

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

Вот так прошел мой год. Из человека, который ничего не добился, я превратился в человека, который ничего не добился, но сделал и выпустил игру.

Если кто-то серьезно прочитал до этого момента, то я могу только поблагодарить вас. Я за это время правда научился радоваться 100 просмотрам на трейлере, и человеку который говорит, что история хороша, даже при том, что это самые ужасные 4 страницы, которые я писал.

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

Группа в Вк.

У меня есть штук сто ключей. И я хочу их разыграть среди участников группы. Да вот только их всего 10.

Дискорд

Поболтать, предложить что-нибудь, или поиграть.

Та самая игра в Стиме.

Спасибо за уделенное время.

Даниил Титнер.


Лучшие комментарии

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

А так все что нужно, чисто для меня это пока учиться.
Может через пару лет что-нибудь хорошее и создам.
Они отличаются тем, что я всю эту статью написал за пару часов вечерком, и ничего не редактировал.
Короче я случайно.
А бранные слова тут есть только потому что я говорю так в жизни, поэтому я не вижу смысла писать аккуратно.
Это же блог, а не статья.

А в общем спасибо.
Хороший пост, но не хватает ссылки на страницу в Steam.
Итальянский язык не предпологался когда я писал код для игры, так что просто так его добавить не получиться. да и ни одного итальянца не купило игру, так что спасибо, но пока это не нужно.

в следующей игре надо будет переводить на китайский потому что треть копий куплено в Китае.
Тут то и нужен переводчик.
Ого. Спасибо.
Хах. Ты за сегодня единственный, кто купил игру.
По сути конечно не должен, но все равно спасибо)
чем буду в собственном блоге выбирать то, как я хочу выразить то, что я думаю.

Вот только блог не твой, а стопгеймовский. Это правила сайта. Так что выбирать-то ты будешь, но лишь до того момента, пока модер не увидит. Нарушение любых законов всегда карается.
Окей. Я тебя понял.
Просто на последок скажу, что стопгейм — это платформа, где можно иметь свой блог, а не блог, как понятие.
Могу предложить услугу недо-переводчика на итальянский язык.
Обещаю что перевод будет с душой. Профессионализм и то, что я вообще завершу это дело — не обещаю.
Дык я это и имел в виду. И как бы — общая экспрессивность и ярко-эмоционально окрашенные слова, вроде «нахер» или типа того не запрещены. Просто если начинать крыть х**ми и п**дами, вот тогда да.
Да они не оскорбительные просто «грязные» и используются для «грязи» чаще всего. Такой культурный фон вокруг них сложился. Я ничего не оправдываю и не порицаю, просто констатирую то, что могу констатировать.
ассет стор в юнити
а вообще я все спецом перенес в плейлист в вк
Есть несколько замечаний несущественных, пока прошёл 2 уровня:
1. Малая ёлка использует сюдя по всему в качестве материала текстуры металл и поэтому блестит — не надо так.
2. Масштаб игрока — мы за карлика играем? Просто в первой же локации где есть стол и стул они почти с нас ростом =/ Также когда прыгаем через мост, он тоже великоват.
3. Ну хоть какую-то анимацию добавить быкам — выглядят как статуи.
4. Масштаб объектов, ладья на первом уровне должна (вроде) в 2-3 раза больше быть, а маяк раза в 1,5 меньше.
5. Колокол просвечивается насквозь снизу — то ли баг, то ли фича.
6. Нехватает звуков при взаимодействии с объектами, те же быки могут и мычать, колокол звонить и т.д.
7. Может быть стоило добавить небольшой дымки или тумана у земли? Я понимаю что такой стиль и опыта нет, но чисто субъективно на второй локации небольшая дымка напрашивается. И можно как-то увеличить плотность «травки» (травой это назвать сложно), слишком голый рельеф.

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

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