Создал свою игру. Трудности и проблемы. Сколько я заработал?

6,1K прочитали

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

Страница игры в Steam: https://store.steampowered.com/app/958090/

School of the dead: Anastasia - моя первая игра в жизни, если не считать примитивных текстовых квестов. Моя профессия это веб-разработчик, веду Youtube канал и пару блогов про игры, где просто делюсь мнениями о различных играх.

В игры играю с самого детства, в 3 года мне подарили мой первый компьютер и да, уже в тот момент я проходил far cry (самый первый), если кто-то думает, что 3х летние не могут понимать и играть в полноценные игры, а не в мобильные и примитивные, то я полное доказательство обратному. Когда у меня появился интернет, то первая моя регистрация прошла в STEAM, где я активировал привезенный отцом из Москвы диск с Counter-strike. С того самого момента появилась небольшая, но очень настойчивая мечта - сделать свою, пускай небольшую, но игру и чтобы она появилась в стиме. Мечту я вспоминал редко, однако вспомнил её снова в 18 лет и понял, что это реализовать не так сложно. Тогда в Стиме был гринлайт, но навыков никаких не было. Сейчас мне 19 и я выпустил свою игру 21 ноября в свой день рождение, это был мой подарок самому себе. Последние пол года я учился рисовать с 0, понимать скриптовый язык на котором делаю игру (он очень простой, об этом дальше). С рисовкой дело не задалось, из-за чего я попал на круглую сумму. Сейчас расскажу об основных трудностях с которыми столкнулся, а дальше немного про игру.

Трудность #1 - Меня кинули на 15.000 рублей

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

  Привет, меня зовут Максим и я инди разработчик.

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

  Привет, меня зовут Максим и я инди разработчик.-2

Кормит на протяжении недели, поскольку это дело не легкое, то я всё прекрасно понимаю и включаю режим ждуна. Прождал я так до почти релиза игры, в итоге.. ЧС. Предсказуемо. Хорошо, что я в этот момент делал всю работу сам на случай ЧП, ибо моя задача была уложиться в сроки и действительно выпустить игру на свой день рождения. Радует лишь одно - отдал я ему 8 тысяч рублей из 15. Плюнув на фриланс и поняв свою тупость побежал судорожно доделывать игру.

Этого красавца зовут Антон Логвинов, например и мне он нравится)
Этого красавца зовут Антон Логвинов, например и мне он нравится)

Вывод: Работайте по безопасной сделке и с проверенными людьми, а ещё лучше готовьте план отступления на случай чрезвычайной ситуации.

Мини-Трудность #2 - Движок

Игру я делал на простеньком движке GMS, вопреки всеобщим убеждениям это не только кривенький конструктор, но и вполне себе движок, на котором вполне можно было реализовать мои идеи. Да, безусловно можно было использовать более мощный движок. Но я подумал “Зачем мне забивать гвозди кувалдой?”, но на будущее стоит присмотреться к другим движкам, здесь ваш потенциал ограничен очень сильно.

Моя любимая игра - Hotline miami и она была сделана именно на этом движке, поэтому решил поступить точно так же. Список неплохих игр на GMS можно найти тут - https://www.yoyogames.com/showcase В движке используется свой скриптовый язык GML (Game Maker Langue) подробнее рассказывать не буду, вся информация есть в Google.com, в целом синтаксис довольно простенький и понятный, смахивает на С плюсы.
Моя любимая игра - Hotline miami и она была сделана именно на этом движке, поэтому решил поступить точно так же. Список неплохих игр на GMS можно найти тут - https://www.yoyogames.com/showcase В движке используется свой скриптовый язык GML (Game Maker Langue) подробнее рассказывать не буду, вся информация есть в Google.com, в целом синтаксис довольно простенький и понятный, смахивает на С плюсы.

Но возникла небольшая проблема, этот пункт скорее подводка к следующему.

Трудность #3 - Оптимизация


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

1. Прозрачные пиксели.

Да они делают картинку более приятной, но злоупотреблять этим не стоит и по возможности их стоит избегать.
Да они делают картинку более приятной, но злоупотреблять этим не стоит и по возможности их стоит избегать.

2. Текстурный атлас

Вся графика, которая есть в игре, хранится на текстурных атласах. Если у вас накопилось 10 текстурных атласов, то стоит в начале и конце комнат, выгружать все из видеопамяти. И загружать лишь те атласы, что хранят графику на данном уровне (комнате). Я же делал так: у меня несколько уровней, в которых объекты и оппоненты не повторяются, для них, я создал отдельную группу., чтобы сократить количество текстурных карт которые хранятся в памяти. Ведь нам в самой игре не нужна графика из комикса в начале игры. Это мы делаем не только для экономии видеопамяти, но и сокращаем нагрузку на видеокарту. Т.К. если в на одном экране, находится много объектов, и их спрайты/тайлы, находятся на разных атласах, то видеокарте придётся выполнять неоправданно много свапов, чтобы отрисовать один кадр.

Данный движёк сам записывает графику на атлас и порой текстурный атлас выглядит примерно так:

  Привет, меня зовут Максим и я инди разработчик.-6

3. Вроде бы очевидная вещь, но её часто игнорируют. Тайл на много легче объекта. Допустим, у нас есть трава, она статична, и её много. Зачем на её делать объектом, ведь объект, хранит в себе много свойств, в отличии от тайла. Поэтому, любым удобным способом, меняем статичные объекты на тайлы.

  Привет, меня зовут Максим и я инди разработчик.-7

Трудность #5 - Перевод

Если вы хотите перевести игру на несколько языков, то будьте готовы раскошелиться, переводы стоят довольно дорого, но всё зависит от количества текста в вашей игре. Если бюджет ограничен - текст тоже стоит ограничить или количество языков. Перевод игры на английский почти всегда обязателен, если только вы не делаете локальную игру для себя. От себя могу порекомендовать студию перевода LocNLoader - ребята постараются найти самую меньшую цену за переводчиков и всегда в игровой теме, терминах и прочим. + Прямо у них можете поискать актёров озвучки. Это не реклама, просто знаю что они не кинут и работал с ними.

Это далеко не всё, но всё же стоит озаботиться оптимизации и попробовать различные приёмы, ведь 2D часто запускают именно на очень слабых железяках.

Трудность #4 - Арты для игры

Если вы не хороший художник, то арты для игры (например для обложки), займут у вас очень много времени и лучше отдать их на аутсорс, если потянете конечно или просто попросить помочь друзей. Мне повезло найти на пикабу человека, который сейчас мне рисует несколько картинок, спасибо Black Rock). На ранних стадиях разработке, достаточно сделать подобные раскадровки:

  Привет, меня зовут Максим и я инди разработчик.-8

Трудность #5 - Перевод

Если вы хотите перевести игру на несколько языков, то будьте готовы раскошелиться, переводы стоят довольно дорого, но всё зависит от количества текста в вашей игре. Если бюджет ограничен - текст тоже стоит ограничить или количество языков. Перевод игры на английский почти всегда обязателен, если только вы не делаете локальную игру для себя. От себя могу порекомендовать студию перевода LocNLoader - ребята постараются найти самую меньшую цену за переводчиков и всегда в игровой теме, терминах и прочим. + Прямо у них можете поискать актёров озвучки. Это не реклама, просто знаю что они не кинут и работал с ними.

  Привет, меня зовут Максим и я инди разработчик.-9

Трудность #6 - Релиз в STEAM

Если вы любитель заполнять миллион полей, налоговых данных и прочего, то вам однозначно понравится. А ещё если вы любите ждать проверки каждого своего пшиха по несколько дней. В целом не затруднительно, релиз стоит 6 тысяч рублей за игру, если игра собирает 1000$ на продажах, то ваши 100$ возвращаются вам. Самое главное - заполняйте всё подробно подробно, в целом стим предоставляет инструкции и всё хорошо.

Ссылка для регистрации вашего приложения - https://partner.steamgames.com
  Привет, меня зовут Максим и я инди разработчик.-10

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

Теперь про саму игру:

School of the Dead: Anastasia - это игра про маленькую девочку, которая оказалась в школе заполненной монстрами, ей повезло выжить и теперь она ищет своего брата и пытается выбраться отсюда, чтобы узнать что с её родителями и что случилось ВООБЩЕ. В игре много пасхалок и прочих вещей, весь геймплей это динамичное месилово зомби. В игре две альтернативные концовки в зависимости от ваших действий и последовательности действий. Более подробный обзор можете посмотреть тут:

Сколько я заработал? - Самый главный вопрос.

Ничего. По факту ничего. Игра стоила 199 рублей в России (цену завысил на выходе и это действительно была проблема) и 5$ в америке и других странах.

  Привет, меня зовут Максим и я инди разработчик.-11

Затраты на разработку:

15 тысяч рублей - кинули на фрилансе.

Перевод - около 15-20 тысяч рублей (игра переведена на несколько языков, хотел охватить большую аудиторию)

Принесла игра - 250 баксов с учётом продаж в зимний период. Т.е она дай бог отбила половину затрат, а учитывая потраченное время не отбила даже этого, но это не особо важно, главное для меня опыт.

Ах да, стим же ещё забирает 30% продаж! Тогда вообще pezdeec. Надо было идти на завод.

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

Забавный факт. Меня засрали за этот юмор в достижениях, не шутите так:

  Привет, меня зовут Максим и я инди разработчик.-12