Hello, World!

Tulenber 2 December, 2019 ⸱ Beginner ⸱ 6 min ⸱

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

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

Беглый взгляд на индустрию

Если не сильно вдаваться в детали, то, на мой взгляд, ситуация выглядит так: сначала были издатели, которые оплачивали создание и распространяли игры, т.к. у разработчиков было немного возможностей свободно собрать денег(как, допустим, сейчас на Kickstarter) или продать результат конечному потребителю (Steam или iOs AppStore). С появлением доступных инструментов распространения контента на рынок хлынули миллионы разработчиков, звёзды вспыхивали в разных уголках небосвода(Flappy Bird, Stardew Valley, Minecraft и т.п., их слишком много), некоторые гасли очень быстро, некоторые превратились в гигантов индустрии (как Angry Birds, например, хотя и нельзя сказать что она выросла на пустом месте =) Сейчас индустрия в новом цикле корпораций, когда, сделав даже очень классную игру, шанс пробиться из десятков, а то и сотен тысяч игр, есть только у тех, кто сможет вложиться в маркетинг и закупки трафика (конечно не учитывая случайностей, как 2048 или transformice, они будут всегда). Да здравствуют издатели! =)

Как сделать игру?

Создание игр сложный и местами странный процесс. Если Вы инди(слава Stardew Valley), то всё несколько проще, Вы творец, перед Вами холст, краски и бесконечные возможности. Но основные деньги в индустрии зарабатывают монстры, в которых над проектами могут работать тысячи людей, такие как Rockstar, EA, Sony или King =)
Очень упрощённо, но, скорее всего, у вас есть какая-то идея, совершенно неважно какая, могут быть игровые механики от ГД, нарратив от писателей, техническая возможность от программиста или концепт от художника. Выберите для себя один из этих пунктов или придумайте свой по настроению =) Дальше начинаем дополнять эти пункты другими, например, есть набросок истории и просим художника сделать концепт, как будет выглядеть описанный мир. Потом зовём программиста, чтобы понять возможно ли такое сделать. Если Вы инди, то, может быть, Вы сами выполняете все роли. В компаниях где-то тут приходит менеджер с продюсером и начинают считать деньги, если их ещё не посчитали. Хотя для компании, вероятнее всего(да, да, говорят бывает и по-другому, мол на хакатоне придумали), изначальная идея придёт к Вам по цепи крика(КЯВВМ). В какой-то момент разработка превращается в процесс, когда гейм дизайнер делает что-то с механикой, художник делает под это арт, музыкант подбирает звуки и музыку, а программист пишет необходимый код и объединяет это всё. В результате через достаточный промежуток времени и кучу итераций, а также очень большой доли упорства, получаем на выходе игру.
Будет ли она популярна? На это ответят аналитики и маркетологи. Ну или не ответят, если Вы инди и не знаете кто это. Если игра не удалась, то её откладывают и начинают делать новую, ну или итерируются до того момента как получится удачный результат(гораздо более редкий вариант, т.к. аналитика уже сказала, что ARPPU не поднимется в 10 раз чтобы окупить проект).
Что же будет дальше? Отбросим негативный вариант, там зона неизведанного и не особо интересного, посмотрим на положительный. Скорее всего, захочется переиспользовать наработки, т. к. известно что они работают, а делать что-то новое всегда сложнее. Следующий шаг посмотреть на рынок и найти там интересные рабочие идеи, опять-таки дешёво и сердито, они же работают. И вот мы в одном шаге от копирования всего и вся. Сегодня деньги зарабатывает Candy Crush, значит, появится 100500 клонов матч-3. Понравился pubg, завтра появится сто его копий. Если выстрелил toonblast, значит 500 разработчиков кинутся копировать её со всеми багами (кто его знает что там бага, а что фича). Даже с игровой рекламой можно заметить, если она работает у Mafia city, то её копируют для Afk Arena, доходит до того что страшно менять в ролике больше одного элемента, т.к. это перестаёт работать, и никто не скажет почему.
В результате если следить за индустрией, то можно заметить, что какие-либо новые и популярные, игровые механики появляются от силы несколько раз в год, остальное является переборкой элементов в разных вариациях. Да и в целом игры состоят из довольно большого пересечения механик, элементов и компонентов, а заставлять придумывали каждый раз уникальный продукт вылилось бы в создании 2х игр в год. Пожалуй, стоит оборвать поток мыслей на этом моменте, вспомнить, что этот блог не о геймдизайне и посмотреть на ситуацию с ракурса программиста =)

Программирование

Если вы общались с программистами, то наверняка слышали, как они раздражаются, увидев чужие велосипеды. Примерно так же, как они любят писать свои, но с обратным знаком =)
Что самое интересное, игровая индустрия гораздо хуже выглядит с точки зрения использования библиотек и фреймворков и т.п., чем другие. Всё это может показаться не таким запущенным случаем, если вспомнить о Unity Assets Store, так что разобраться с ситуацией станет одной из первых задач тут, но первый взгляд не вселяет оптимизм.
Почему же так происходит? Может быть потому, что каждая компания считает свои наработки самыми секретными и уникальными. Может быть потому, что необходима оптимизация кода и максимальная производительность. Может быть потому, что код выглядит как поликлиника: треть посетителей на костылях, треть заклеена пластырем, а те, кто сидят в очереди пока что просто приложили подорожник. Понятно что это смесь всего понемногу.
Но не будем о грустном и вспомним расцвет создания игр после появления общедоступного самиздата. Когда технологии достигли того уровня, что любой домохозяин мог выложить свою программу в открытый стор, а любой другой заплатить за это деньги, создались все условия для развития инструментов разработки игр. Сначала выстрелила Unity, потом Unreal пошёл в массы, бесплатный Cocos, сейчас же каждая крупная компания содержит свой игровой движок, который призван упростить жизнь для разработчиков игр. У Amazon Lumberyard, у Apple spriteKit и другие киты и т. п. Это заметно продвинуло геймдев в массы. Уже не нужно знать как работает Direct3D, чтобы отрендерить камень в грязи, а успешную игру может сделать 7 классник.
Движки предоставляют базовый набор функциональности, на котором можно построить всё что угодно. И решив эти базовые вопросы при помощи использования игрового движка мы переходим на новый уровень проблем - уровень игровой логики. Например, в каждой игре есть туториалы и когда их добавят достаточное количество они начнут вылезать в каждый неподходящий момент =) Или делаем стратегию и добавляем в неё юнита, который умеет стрелять, а потом добавляем другого, который лечит, а потом ещё 20 с другими умениями и их комбинациями и вот уже один из юнитов почему-то встаёт посреди поля и отказывается идти к цели, а другой стреляет ракетами из маленького пистолета, хотя другие ведут себя нормально. Думаю суть проблем Вы уловили.
Как было отмечено выше разработчики редко придумывают что-то уникальное. Это обычные проблемы роста проекта и его сложности. Для борьбы с этим придумано много капитанских способов: пишите поддерживаемый код, с умом используйте паттерны, переиспользуйте код (тоже с умом), используйте библиотеки и т.п. Больше того, уже существует много открытых решений, как ,например, Nakama Server, которые призваны решать проблемы разработчиков игр. Но, как всегда, основной проблемой является не отсутствие информации, а отсутствие знаний о её существовании и где её можно найти. Решением этого вопроса я и займусь на kihontekina.dev, собирая и делясь практиками и библиотеками для более быстрого решения обычных задач, которые будет подкидывать судьба программисту в мире игр.



Privacy policyCookie policyTerms of service
Tulenber 2020