Game development

Два года назад я была простой семнадцатилетней ученицей средней школы и я ничего не знала о программировании. Но я все равно достигла своей цели и опубликовала свою первую игру в Steam.

На сегодняшний день я выпустила более 10 игр для настольных компьютеров и мобильных устройств с возможностью онлайн игры. В совокупности в мои игры сыграли более 1,9 миллиона раз.

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

Я сама научилась всему тому, что знаю сейчас и теперь я постараюсь научить и вас.

Чтобы сделать игру, вы должны пройти 6 этапов разработки: Разработка идеи. Арт. Программирование. Звук. Шлифовка. Публикация.

Каждый из этапов я структурировала следующим образом:

  • ?Совет. Здесь, я буду давать вам советы, основываясь на своем и чужом опыте.
  • ?Ресурсы. Также, я буду прикреплять ссылки на те или иные ресурсы, которые будут вам наиболее полезны.

Этап №1: Разработка идеи ?

Совет ?

У вас есть отличная идея! Как вы ее запишите?

Каждый рано или поздно найдет для себя наиболее подходящий способ записи: кто-то будет писать 60-страничные проекты и документы, а кто-то, как я — писать кучу заметок на одной странице, понятные мне одной. Я не знаю, какой способ вы выберете, но я могу дать вам несколько советов о том, что нужно прописывать:

  • Изюминка. Почему вы считаете идею своей игры превосходной? Для меня это наиболее важный пункт в проекте. Как только вы определитесь с «изюминкой» вашей игры — прописать оставшиеся пункты проекта не составит вам большого труда! Ваша игра заставляет над чем-то задуматься? Может быть она скандальна? Или же это ремейк классики прошлого? Или это нечто новое, что никто и никогда не разрабатывал?
  • Механика. Что, как и с какой целью делает ваш игрок — это и есть геймплей вашей игры. Например: клавиши QWOP могут использоваться для простого перемещения или общения в «мистическом чате» игры, но также они могут быть использованы для составления множества боевых комбинаций, как в игре «Dwarf Fortress».
  • Сюжет. Какую историю вы хотите рассказать всем тем, кто будет играть в вашу игру? Какие эмоции они будут испытывать? У каждой игры есть своя история. Если сюжет вашей игры не так очевиден — придумать ее сможет и сам игрок. История может быть придумана в игре про числа «2048». Игрок, играя в популярную стратегию «Civilization», может сам придумать историю становления своего государства. Даже в игре «Monument Valley», с ее безмолвием, каждый додумывает свою историю. Подумайте, какую историю расскажет ваша игра?
  • Настроение. Какое впечатление окажет ваша игра на игроков? Каково будет ее графическое оформление? Какой звук? Первое впечатление об игре очень важно — игра может «зацепить» пользователя с первых минут и в итоге он будет играть в нее и дальше. Возможно вы сделаете вашу игру в стиле ретро: с пиксельной графикой и музыкой в стиле ретро-вейв. А возможно, вы выберете ультра-современный дизайн, с плоской геометрией объектов, «чистыми» текстурами и инструментальной музыкой.

*Сложно придумать хорошую идею для игры? На этом этапе всем нам бывает очень сложно что-то придумать. Что же делать?

  • Присоединяйтесь к игре hackathon/jam. Вам и другим участникам будет поручено сделать игру за короткий промежуток времени. Во время участия в хакатоне вы встретите единомышленников, которые будут поддерживать и помогать вам. А что насчет творческого волнения и конкуренции во время работы? Все это благоприятно скажется на вас и на ваших навыках! Не знаете с какой площадки начать? Рекомендую попробовать Ludum Dare — одну из самых больших площадок для разработчиков!
  • Записывайте все свои идеи! Я и многие другие разработчики, которых я знаю, записываем все свои идеи. Таким образом, когда вы не сможете ничего придумать, вы сможете вернуться к своим старым идеям и мыслям и что-то из них почерпнуть!

Когда вас неожиданно посещает муза или появляется вдохновение — отложите свои дела и запишите все мысли и идеи! И когда вы впадете в творческий ступор, вам не придется высасывать идеи из пальца.

Ресурсы?

Все нижеперечисленные ресурсы и программы опробованы мною лично и многими из них я пользуюсь до сих пор!

Для заметок:

  • Notes для Mac (?)
  • Google docs (?)
  • Trello

Для совместной работы (для команд):

  • Google drive
  • GitHub (?). Требуются git и Unity .gitignore.
  • Unity Collab. Самый простой сервис из трех. У бесплатной версии есть ограничения.

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

Для разработчиков:

-Книга «The Art of Game Design» . Автор Джесси Шелл

-Сайт Gamasutra

Этап №2: Арт ?

Совет ?

Вы продумали свою игру и записали все свои идеи; Мои поздравления — это потрясающе! Теперь пора поработать над реализацией ваших задумок!

(Если вы не умеете кодить, то я советую вам для начала перейти к этапу номер 3 — программирование. Ведь вы не хотите создавать модели и концепт- арты, для того чтобы потом их просто выкинуть, потому что вы не сможете их использовать в своей игре без кода).

Вы не умеете рисовать? Не волнуйтесь. Каждый из нас может нарисовать что-то красивое, руководствуясь тремя основными принципами визуализации: цвет, форма и пространство.

UI

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

Что лучше? ?

2D анимация

У вас есть два варианта для создания 2D анимации:

  • Кадр за кадром. Здесь вам придется рисовать каждый кадр анимации и затем соединять их воедино. Для этого вам следует использовать спрайт- листы вместе с TexturePacker (или, если вы используете Unity — Sprite Packer).
  • Скелетная анимация. Нарисуйте все нужные конечности объекта и затем анимируйте, меняя их положение относительно предыдущего состояния. Этот способ анимации быстрее, проще и сэкономит место на вашем жестком диске, по сравнению с анимацией «кадр за кадром». Если вы решили создать 2D анимацию и используете движок Unity — попробуйте начать с анимации спрайтов или Anima2D.

Разное

Вот несколько общих советов по оформлению игр:

  • Разбивайте элементы на плитки для создания плиточных изображений и экономии места на жестком диске.
Неразбитый и разбитый на плитки элементы
  • 9-частей / 9-квадратов. Масштабируйте объекты с немасштабируемыми границами через центр изображения (растягивайте и сжимайте изображение) для изменения его масштаба и сохранения памяти.

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

  • Сделайте каждую текстуру или объект кратным размеру 4 и силе равной 2(мера качества изображения) для экономии памяти.
  • Если вы используете Photoshop, используйте «File»> «Export»> «Layers to Files», для того чтобы быстро экспортировать каждый слой в виде файла (например PNG или JPEG).

Ресурсы ?

Программы для создания UI:

-Photoshop (?).

-Sketch.

Концепции UI:

Программы для создания 2D объектов (ассетов):

  • Photoshop (?).
  • Gimp.
  • Paint Tool SAI — отлично подходит для создания плоских изображения в стиле аниме.

Программы для создания 3D объектов:

  • Blender (?). Мощная программа, которую достаточно сложно выучить.
  • Maya. Хороша для анимации.
  • Max. Хороша для рендеринга.

Сайты с ассетами:

  • Behance. Шрифты + иконки + темы дизайна
  • KennyNL. Полностью готовые к игре UI /2D /3D арт и ассеты высокого качества.
  • Open Game Dev Art. Огромная пользовательская библиотека концепт- арта.

Для вдохновения:

  • Dribbble. Дизайнерские концепт-арты от приглашенных художников.
  • Behance. Пользовательские дизайны.
  • itch.io . Сайт с инди-играми.

Этап №3: Программирование ?

Совет?

Debug.Log(“Oh boy! Time to code!! ^_^”);

Шаг первый. Сперва решите, какой игровой движок и IDE(интегрированная среда разработки) вы будете использовать для создания своей первой игры. Мои рекомендации относительно выбора игрового движка и IDE находятся ниже, в разделе Ресурсы.

Шаг второй. Пишите код.

Вы никогда не занимались программированием? Не беспокойтесь — вы все выучите!

Нижеприведенные основополагающие принципы C++ помогут вам разобраться с кодом и этого вполне хватит на первое время (все примеры кода приведены на C ++, одним из основных языков программирования, используемых в Unity 3D):

1) Типы данных и переменные. В основе всего кода лежат данные. Эти данные хранятся посредством переменных. Вы можете написать переменную подобным образом:

int i = 0;

Давайте разберемся с этим поподробнее:

int— это тип данных. i — это имя переменной. 0 — значение переменной.

С этим разобрались. Теперь попробуем разобраться вот с этим:

string s = "pusheen is best cat";

string — это тип данных. s — это имя переменной. И как вы наверное уже догадались, что “pusheen is best cat” — это значение переменной.

Некоторые общие типы данных: int и long — являются данными целых чисел. float и double — используются для обозначения десятичных чисел. А строка (string) может нести в себе любое предложение (даже пустые «»).

Хотите узнать больше? Посмотрите это и вот это.

2) Оператор if. Этот оператор проверяет, является ли какое-либо условие истинным. Если да, то он запустит код, находящийся внутри него:

if (true){ //true is always true!
    doThings(); //I'm inside the if statement's brackets; run me!
}

Если условие оказалось неверным, альтернативное действие определяется связкой операторов else if:

int i = 1;
if (i == 0){ 
   doThings(); 
}
else if (i == 1){
   doOtherThings(); //I'm gonna be run!
}

Либо можно прописать тело кода для оператора else отдельно:

int i = 60000;
if (i == 0){
  doThings(); 
} else {
  doOtherThings(); //I'm still gonna be run.
}

3) Циклы For и while. Цикл while выполняет код, находящийся в теле цикла, до тех пор, пока данное условие истинно. Когда условие ложно, цикл while завершается:

while (someBool == true){ //condition
   doThings(); //We'll keep doing things until someBool is false
}

Подумайте: как долго этот цикл будет продолжаться?

while (true){
  doThings();
}

Цикл For работает также как и цикл while:

int i = 0;
while (i < condition){ 
    doThings();
    i++; //increment after doing things
}

Это эквивалентно этому:

for (int i = 0; i < condition; i++){
    doThings();
}

4) Основные структуры данных. Итак, у нас есть определенные виды данных которыми мы можем манипулировать. Мы также можем хранить эти данные в некоторой системе — структуре данных. Вот виды структур данных, которые вы должны знать: массивыспискиочередистеки и наборы.

Вот пример массива:

/*
Say you have numbers 0 through 9 that you want to store somewhere. You can store it in an array!
*/
int[] arr = new int[10]; 
/*
The [] brackets declare an array. We assign a new array to arr of size 10 - that means it can hold 10 elements. Arr now looks like this:
arr = [ 0 0 0 0 0 0 0 0 0 0 ]
*/
for (int i=0; i<10; i++){
    arr[i]=i; //We assign whatever i is to the the ith index of arr.
//Did you know data structures' indices start at 0? ? 
}
/*
After the for loop, our array data structure should look like this!
arr = [ 0 1 2 3 4 5 6 7 8 9 ]
*/

Чтобы получше разобраться во всем этом перейдите по этой ссылке.

5) Функции и исключения. Функция — это небольшая строка кода, описывающая большой участок кода. Например, если вы вызовете:

EatBread();

EatBread() будет выглядеть вот так:

void EatBread(){ //<---this is a function. 
   breadAte=true;
   printf("I CAN FEEL THE CARBS COURSING THROUGH MY BODY");
}

Вызов EatBread() на самом деле будет вызывать два оператора в функции EatBread(). Если вы допустите ошибку в коде — это может привести к возникновению исключения. Красные «злые» ошибки будут как бы говорить вам: «Эй, назад! То что вы сделали — просто не работает. Вернись и проверь».

Если вы хотите лучше разобраться с функциями, то перейдите сюда; если с исключениями, перейдите сюда.

Что ж, есть еще несколько вещей, которые вы должны будете знать:

6) Язык. На каком языке вы собираетесь писать свои игры? C ++? Javascript? C #? Каждый язык отличается друг от друга и может позволить вам делать несколько разные вещи.

7) API (интерфейс прикладного программирования). После того, как вы изучите основы программирования, вам придется изучить конкретный API вашего игрового движка. API — это, по сути, множество мощных инструментов, которые можно объединить в простые классы и функции. API упрощают жизнь.

И последнее:

8) При выборе игрового движка, поинтересуйтесь и посмотрите уже выпущенные игры на том или ином движке. На движках Unreal и Unityнаписана целая масса бесплатных игр. Вы можете создать свою игру, основываясь на другой игре. (Я сделала свою первую игру на основе платформера Corgi Engine.)

if (you.getThisFar()==true){
  veryProud=true;
  you.didIt(); //CURRENT MOOD: THE SH⭐⭐KEST ???
}

Слова поддержки: Я понимаю, сначала вам будет страшно, когда вы начнете программировать. Понятное дело, поначалу вы будете чувствовать неуверенность и собственную некомпетентность. Вы будете постоянно допускать одни и те же ошибки, снова и снова. Это не значит, что вы плохо программируете — у вас просто недостаточно опыта. Примите этот вызов!

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

Несколько важных моментов:

  • Объектное ориентирование. Делайте свой код более естественным.
  • Названия. Называйте свои классы, методы и переменные так, чтобы название передавало его цель и задачи. Например, функцию атаки в ближнем бою следует назвать meleeAttack (), а не mA () или protecbutalsoattac (). Вы (и все остальные, кто будет читать или работать с вашим кодом) должны понимать, что, зачем и почему.
  • Декомпозиция. Если определенный участок кода повторяется — поместите его в отдельную функцию. Вызывайте эту функцию по мере необходимости, вместо полного дублирования повторяемого кода.
  • Используйте паттерн Singleton. Он позволяет предоставить доступ извне к данным, которые должны храниться в одном экземпляре.
  • Избегайте статики. При создании игр я избегала создания статических переменных (одиночные игры — исключение). Их жизнь — это время жизни игры, а они медленные и в редакторе они могут вести себя непредсказуемо.
  • Паттерн наблюдателя. Он позволяет не тратить время на проверку компьютером кода, который должен исполниться, в зависимости от другого участка кода.

Несколько важных вещей в Unity:

  • Сопрограммы. IEnumerators (перечислители) и Coroutines (сопрограммы) позволяют создавать определенные алгоритмы действий. Я, например, использую их для: создания всплесков визуальных эффектов, передвижения и для режима ожидания в загрузке игровой сцены.
  • ScriptableObject (скриптуемый объект). Класс, который экономичнее и эффективнее содержит данные, чем MonoBehaviors.

Ресурсы ?

Выбор игрового движка:

1) Вы можете написать свой собственный движок! Требуются знания C/ C++ на низком, системном уровне.

2) Unity — кросс-платформенный, поддержка 2D/3D. Требуются знания Javascript / C # уровня middle.

3) Unreal Engine — кросс-платформенный движок, поддержка 2D / 3D (2D плохо поддерживается). Требуются знания C ++ уровня middle.

4) pixi.js— поддержка 2D. Требуются знания Javascript уровня middle.

5) GameMaker Studio — кросс-платформенная программа, поддержка 2D / 3D. Требуются знания GML начального уровня.

6) Corona — фреймворк, кросс-платформенный. Требуются знания Lua начального уровня.

Среда разработки:

  • Visual Studio Code для MacOS (?) — очень плавно работает, не тормозит и обладает потрясающими функциями VSCode (встроенная справочная информация, быстрая навигация и т.д.).
  • Visual Studio для Windows (?).
  • MonoDevelop — поставляется с Unity, часто тормозит.

Бесплатные ассеты для Unity:

Для Unity существуют тонны бесплатных ассетов в Unity Asset Store, GitHub, bitbucket и на других сайтах. Я постоянно их использую в каждом своем проекте. Сделайте свою жизнь проще — пользуйтесь! Но помните, что они неидеальны. Если вы заметили в них какие-то ошибки — исправьте их или сообщите разработчику!

И последнее, но не менее важное! Средство №1 для разрешения всевозможных проблем в программировании: Google!

Этап №4. Звук

Советы ?

Во-первых: вам нужны звуки?

Музыка творит чудеса в плане настроения самой игры и погружения в нее, но оно занимает много драгоценного места на жестком диске.

Если ваш ответ: «Да, мне нужно звуковое сопровождение», то каким оно будет?

Добавите ли вы музыку? Звуковые эффекты? Озвучку персонажей или голос рассказчика?

В любом случае прислушайтесь к моему совету: записывайте и сочетайте звуковое сопровождение таким образом, чтобы оно полностью соответствовало настроению вашей игры. Например, «Bastion» сочетает различные струнные музыкальные инструменты и пение, соответствующее игровому миру. «Crypt Of The Necrodancer» использует смесь электронных битов и чиптюн-рока, чтобы игроку было комфортно играть в эту красочную и ритмичную игру.

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

Ресурсы ?

Программы для создания и обработки звуков:

  • Logic Pro. $200. Только MacOS.
  • FL Studio (?). $99–899. Есть бесплатная версия.
  • Reaper. $60–225.
  • Audacity (?). Бесплатная программа. Ограниченный функционал. Крайне полезна для очистки аудио от различных шумов.

Генераторы ретро-звуковых эффектов:

Бесплатные звуки:

  • Soundcloud (?). Soundcloud распространяет огромное количество великолепной музыки под эгидой Creative Commons (CC). Вот плейлист
  • , который подойдет для ознакомления. Перед использованием бесплатной музыки, обязательно убедитесь в том, что это легально.
  • Incompetech (?). CC музыка.

Этап №5. Шлифовка

Советы ?

Эй! Ты здесь! Ты сделал это! Это просто невероятно (я серьезно, если ты доберешься до этого этапа, я бы хотела, чтобы ты со мной связался и показал свою игру)!

Ты точно закончил…верно?

Что ж, я уверена на 99.99999%, что в игре наверняка есть баги.

А это значит, что пришло время ее протестировать!

Тестирование на предмет багов

  1. Поручи другим людям сыграть в твою игру. Ты наверняка будешь окрылен проделанной работой, и вряд ли найдешь в своем творении хотя бы половину ошибок. Но лучше, если другие будут играть перед тобой, потому что, когда произойдет столкновение с проблемой, они с трудом смогут описать ее в подробностях.
  2. Запускай игру на всех целевых платформах. Твой проект может работать в редакторе, но работает ли он, например, на IOS? Для Linux и различных версий Android это особенно болезненная тема, так как там постоянно что-то выходит из-под контроля.

Супер, ты нашел баг. Что делать дальше?

  1. Проверь консоль на наличие исключений. Нашел? Хорошо! Найди файл и номер строки, в которой возникло исключение. Если исключение звучит как что-то с другой планеты — гугли внятное объяснение. Затем выясни, почему тот номер строки вызывает исключение.
  1. Все еще не можешь понять в чем причина? Напиши в консоль. Вызови оператор в те места, которые, по твоему мнению, вызывают проблемы. Выведи значения переменных и проверь, являются ли выведенные переменные теми, что ожидались. Если нет, исправь ситуацию.
  2. Становится только хуже? Проверь журнал событий. Журнал проекта даст тебе значительно больше информации, чем консоль. Внимательнее прочти строки, в которых произошло исключение. Гугли все, что не знаешь. Сможешь все починить?
  3. Ложись спать. Утром все встанет на свои места и этот баг забудется, как дурной сон. Верно??

Распространенные ошибки

  • NullReferenceException.
var.doThing(); //throws NullReferenceException: Object reference not set to an instance of an object

Что не так: Ты пытаешься воспользоваться чем-то, что равно null(несуществующая переменная).

if(var != null)
    {
        var.doThing(); // do the thing safely!
    }
  • SyntaxErrorException.

Что не так: Недопустимый синтаксис в коде.

Решение: В сообщении об ошибке должно быть указано, какой символ выдает ошибку. Просто измени символ.

Совет: Если символ обрамляется двойными кавычками, убедись, что используешь «правильные» кавычки. Как на примере снизу.

" //dumb quote
” //smart quote. I promise these'll give you trouble at some point in your life. ?
  • Розовый или черный экран.

Что не так: Некоторые шейдеры не могут нормально отобразиться.

Решение: Возможно ты используешь 3D шейдеры для 2D игры. Или какая-то функция шейдера не поддерживается OC, на которой выходит игра. Также стоит убедиться, что ты используешь мобильные шейдеры для мобильной игры.

После того, как покончишь с багами, займись оптимизацией.

Общие советы по оптимизации

  • Задайте целевую частоту кадров. Целевая частота кадров должна быть 20FPS для визуальной новеллы, и 60FPS для шутера от первого лица. Чем ниже целевая частота кадров, тем быстрее игра рендерит их.
  • Анимация/ система частицOcclusion Culling. Occlusion Culling — это функция, отключающая рендеринг тех объектов, которые в данные момент не видит камера. Персонажи будут анимированными, частицы будут обновляться, а 3D-модели будут отображаться только тогда, когда их видно.
  • Сожмите аудио и текстуры. Crunch поможет вам сжать текстуры. Также снизьте качество звука. Обратите внимание, что сжатие может заметно ухудшить качество ассетов. А может и не снизить. Это как повезет.
  • Объектный пул. Это порождающий паттерн проектирования, набор инициализированных и готовых к использованию объектов. Когда системе требуется объект, он не создаётся, а берётся из пула. Когда объект больше не нужен, он не уничтожается, а возвращается в пул. Как вы догадались, это очень повышает производительность.
  • Используйте Ray Casting, а не Ray Tracing. Если в рейтрейсинге лучи трассируются для каждой точки экрана, то в рейкастинге стены всегда перпендикулярны полу, и поэтому есть возможность трассировать всего один луч для целого столбца экрана — именно поэтому рейкастинг и является наиболее быстрым методом построения трёхмерной проекции.

А вот это советы для тех, кто не боится трудностей:

  • Оптимизируйте шейдеры. Дайте рендереру материал для работы. Это сэкономит ресурсы в начале, так как игре не нужно будет создавать для всего новые материалы. Пусть шейдер включает только то, что функционально необходимо (например, кнопка, не требующая маскирования, может использовать Sprite шейдер)
  • В Unity используйте AssetBundles вместо Resources. AssetBundles берет дополнительную память, как из интернета (например, Dropbox), так и из локального хранилища(например, жесткий диск).

Ресурсы ?

Все они принадлежат Unity, но могут быть применимы к другим движкам.

Скрипты:

Арт:

Память:

Специфичные платформы:

Этап №6. Публикация ?

Советы ?

Поздравляю! У тебя что-то, да получилось! Пришло время показать всему миру твой проект.

Лично для меня, момент для публикации — самая тревожная часть. Если ты в чем-то сомневаешься, то сообщество разработчиков будет лучшим местом для первой публикации! Ведь ты в этом не одинок и ты зашел так далеко — может быть, стоит дойти до конца, верно?

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

По поводу прессы. Напишите в игровые СМИ о вашей игре по email за неделю до релиза, чтобы дать им время написать или отснять материал по вашей игре. Скорее всего, они вообще ничего не напишут о ней. Я заметила, что «пресса» любит интересные истории разработчиков, уникальную / противоречивую концепцию. Но самое главное: опишите ваш проект и процесс его создания в мельчайших деталях!

Как найти подходящее СМИ для публикации?

  • Найдите блогеров или писателей, которые вам нравятся, просто загуглив их имена. Их электронная почта должна где-то появиться: Twitter, LinkedIn и т. д. Или..
  • Найдите электронную почту журнала / компании на странице About.Выглядят они примерно вот так: [email protected].

Не пытайтесь опубликовать информацию о своей игре в тех изданиях, которые не обозревают твой жанр/ платформу, на которой игра опубликована.

Публикации в СМИ о моей игре:

Участвуя в игровых фестивалях, вы можете получить всевозможные награды и/или получить признание других разработчиков или СМИ.

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

3. Youtube и стримеры. Игровые блогеры могут сделать видео о вашей игре, если:

  • Если у нее будет высокий рейтинг на игровых платформах, где она была опубликована.
  • Если вы отправляете сведения о вашей игре посредством email, то не пишите о себе — пишите о вашей игре. Будьте краткими и убедительными. Сопровождайте ваше письмо красивыми картинками с концепт-артом и гифками.

4. Социальные сети.

Социальные сети — это отличный маркетинговый инструмент. Например, Agar.io заполучила аудиторию на 4chan, Butterfly Soup безумно быстро раскрутилась на Twitter, но не стоит забывать и про другие социальные сети, которые всегда попадают в мой Топ-4 лучших рефереров:

Мои любимые социальные медиа-платформы для маркетинга расположены ниже, в разделе «Ресурсы».

5. Не менее важный вопрос: положиться на издателя или попробовать сделать все самому?

Игровой маргетинг- это огромная сфера. Хотите, чтобы издатель урегулировал все вопросы? Можете отправиться путем Hotline Miami x Devolver Digital или же сделать все самому, как разработчики Farmville или Doki Doki Literature Club’s.

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

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

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

6. Нажмите кнопку «Опубликовать»!

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

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

Просто осознайте, что вы создали настоящую игру! Вы многому научились. Этого достаточно.

К тому же, ваша следующая игра точно станет хитом!

Ресурсы ?

Платформы для дистрибуции игр:

  • Steam (?). PC. Требуется 100$ для публикации своей игры.
  • Origin. PC.
  • GOG. PC. Бесплатно для публикации. Игра должна пройти строгую модерацию.
  • Mac App Store. MacOS. Требуется Apple Developer account.
  • itch.io (?). PC/Web. Бесплатно для публикации.
  • Game Jolt (?). PC/Web. Бесплатно для публикации.
  • Armor Games (?). Бесплатно для публикации. Нужно получить статус разработчика.
  • Kongregate (?). Web. Бесплатно для публикации.
  • Newgrounds (?). Web. Бесплатно для публикации.
  • GitHub (?). Web. Бесплатно для публикации на вашем собственном сайте с доменом в формате “___.github.io”.
  • Amazon. Web/Mobile. Бесплатно для публикации.
  • Google Play (?). Mobile. Требуется внести единоразовый платеж в 25$.
  • iOS App Store (?). Mobile. Требуется Apple Developer account.

Игровые журналы:

Игровые фестивали:

Игровые конференции:

  • Game Developer’s Conference (GDC). Сан-Франциско.
  • Penny Arcade Expo (PAX). Сиэтл/Бостон/Филадельфия/Мельбурн.
  • Electronic Entertainment Expo (E3). Лос-Анджелес.
  • Tokyo Game Show. Япония.
  • Steam Dev Days. Сиэтл. Только для Steam разработчиков.

Информация о игре:

Социальные сети:

  • reddit. Выберите подходящий subreddit. Мои фавориты- /r/WebGames, /r/IndieGaming/ и /r/visualnovels.
  • Facebook. Создайте страницу игры в группе на Facebook или разместите информацию о игре на личной странице (если у вас есть возможность). Также на Facebook есть множество других групп, где вы можете показать свою игру! Вот некоторые из них:

https://www.facebook.com/groups/GameDevShowAndTest

https://www.facebook.com/groups/IndieGameDevs/

https://www.facebook.com/groups/IndieGamePromo/1066211690197686/

  • Tumblr.
  • Twitter. Попробуйте пройтись по хэштегам #gamedev, #indiedev, и #screenshotsaturday.

Комьюнити:

Заключение

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

Вам будет очень трудно. Ошибки неизбежны. Скорее всего вы будете часто плакать из-за нервов ( я плакала и до сих плачу).

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

Перевод статьи Angela HeFrom Zero to Game Designer: how to start building video games even if you don’t have any experience