Два года назад я была простой семнадцатилетней ученицей средней школы и я ничего не знала о программировании. Но я все равно достигла своей цели и опубликовала свою первую игру в 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 и на других сайтах. Я постоянно их использую в каждом своем проекте. Сделайте свою жизнь проще — пользуйтесь! Но помните, что они неидеальны. Если вы заметили в них какие-то ошибки — исправьте их или сообщите разработчику!
- TextMeshPro (?).
- LeanTween (?).
- Fungus.
- Corgi Engine.
- Dialogue System.
- Post Processing Stack.
- Keijiro Takahashi — он работает с движком Unity, у него есть удивительные визуальные эффекты для Unity с открытым исходным кодом, которые вы также можете использовать!
И последнее, но не менее важное! Средство №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 музыка.
- Bensound. Тоже CC музыка.
Этап №5. Шлифовка
Советы ?
Эй! Ты здесь! Ты сделал это! Это просто невероятно (я серьезно, если ты доберешься до этого этапа, я бы хотела, чтобы ты со мной связался и показал свою игру)!
Ты точно закончил…верно?
Что ж, я уверена на 99.99999%, что в игре наверняка есть баги.
А это значит, что пришло время ее протестировать!
Тестирование на предмет багов
- Поручи другим людям сыграть в твою игру. Ты наверняка будешь окрылен проделанной работой, и вряд ли найдешь в своем творении хотя бы половину ошибок. Но лучше, если другие будут играть перед тобой, потому что, когда произойдет столкновение с проблемой, они с трудом смогут описать ее в подробностях.
- Запускай игру на всех целевых платформах. Твой проект может работать в редакторе, но работает ли он, например, на IOS? Для Linux и различных версий Android это особенно болезненная тема, так как там постоянно что-то выходит из-под контроля.
Супер, ты нашел баг. Что делать дальше?
- Проверь консоль на наличие исключений. Нашел? Хорошо! Найди файл и номер строки, в которой возникло исключение. Если исключение звучит как что-то с другой планеты — гугли внятное объяснение. Затем выясни, почему тот номер строки вызывает исключение.
- Все еще не можешь понять в чем причина? Напиши в консоль. Вызови оператор в те места, которые, по твоему мнению, вызывают проблемы. Выведи значения переменных и проверь, являются ли выведенные переменные теми, что ожидались. Если нет, исправь ситуацию.
- Становится только хуже? Проверь журнал событий. Журнал проекта даст тебе значительно больше информации, чем консоль. Внимательнее прочти строки, в которых произошло исключение. Гугли все, что не знаешь. Сможешь все починить?
- Ложись спать. Утром все встанет на свои места и этот баг забудется, как дурной сон. Верно??
Распространенные ошибки
- 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, но могут быть применимы к другим движкам.
Скрипты:
Арт:
Память:
Специфичные платформы:
- Руководство по оптимизации для мобильных устройств
- Производительность WebGL
- Расход памяти при использовании WebGL
Этап №6. Публикация ?
Советы ?
Поздравляю! У тебя что-то, да получилось! Пришло время показать всему миру твой проект.
Лично для меня, момент для публикации — самая тревожная часть. Если ты в чем-то сомневаешься, то сообщество разработчиков будет лучшим местом для первой публикации! Ведь ты в этом не одинок и ты зашел так далеко — может быть, стоит дойти до конца, верно?
- Проект. Создайте на всех доступных игровых платформах страничку вашей игры — это поможет распространить ее. Список платформ для публикации будет дан ниже, в разделе ресурсы.
- Сеть. Если вы справитесь с сетевой публикацией игры, то вы можете отправить по 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.
Игровые журналы:
- IndieGames.
- Siliconera.
- FreeGamesPlanet. Очень вежливый админ.
- PCGamer.
- Kotaku.
- Rock Paper Shotgun.
- Polygon.
- Giant Bomb.
- EuroGamer.
Игровые фестивали:
- Independent Games Festival (IGF). Дедлайн в Октябре.
- Indiecade. Дедлайн в конце Мая/ начале Июня.
- Swedish Game Awards. Дедлайн в Июле.
- South by Southwest Festival (SXSW). Дедлайн в Декабре.
- The Game Awards. Дедлайн в Ноябре.
Игровые конференции:
- 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 He: From Zero to Game Designer: how to start building video games even if you don’t have any experience