Приветствую всех. Меня зовут Флашейдер и сегодня я - флешер-фундаменталист. Рисовать я не умею, так что все картинки из интернета (максимум - из мемогенератора).
Вопреки расхожему мнению, я понятия не имею, как придумать игру. Она просто рождается и пытается начать жить. Зато я надеюсь, что знаю, как помочь ей выжить, развиться и превратиться из идеи в нечто, что не стыдно будет показать окружающим.
Согласно придуманной мной же статистике - большинство из тех, кто становится программистом, делает это исключительно из-за опционально детской мечты делать игры. Знаете, как когда-то давно было очень популярно мечтать о карьере актёра, певца или, хотя бы, клоуна. Нести радость в массы, веселить детей и взрослых. И наверняка вы знаете об этом ярлыке, согласно которому клоуны на самом деле - самые серьёзные, а порой и крайне печальные люди. Примерно так же и в создании игр: веселья в процессе за редким исключением обычно очень мало.
Стартовать разработку игры проще простого: садишься и начинаешь писать движок. Глаза горят, мысли роятся, идеи генерируются пачками, а руки в это время строчат код (ну, или делают наброски арта). Невероятно приятное и крайне вредное для достижения результата ощущение. Если надолго поддаться этому желанию, игра скорее всего никогда не доживёт до релиза.
Первая проблема игроразработки: Огонь
Прежде всего - это огонь в ваших собственных глазах. Когда игра только-только начинается, она мгновенно обрастает тысячей подробностей. Распространённая ошибка - желание сделать игру сразу про всё: чтобы были и эльфы в лесу, и домики деревянные набегали. А без грабежа караванов, как вам кажется, делать в игре будет совершенно нечего. На этапе генерации идей отказаться от наплыва желаемого будет невозможно. Но рефлекторное желание реализовать фичу сразу, как только она пришла в голову можно и нужно в себе подавить. Лучшим выходом будет формализация. Заведите себе список, куда вы будете вносить все приходящие в голову мысли, и давайте им там отлежаться некоторое время. Если идея хорошая: вы сами вернётесь к более подробному её изучению.
Во-вторых, вам помешает огонь в глазах собеседника. Если вы работаете в команде, вы наверняка столкнётесь с тем, что ваши взгляды на идеальную игру не совпадают со взглядами вашего партнёра. И если начнётся спор - худшее что вы можете сделать - это не подавить его в зародыше. Даже если вы работаете в одиночку, вам в голову могут придти конфликтующие между собой идеи. В такой ситуации крайне важно найти компромисс. Возможно, как я уже говорил - идеям стоит дать отлежаться в общем списке. Нельзя заострять внимание на противостоянии идей: как минимум вы только потратите лишнее время. Если будет стоять выбор - отказаться от них обоих, или же задавить противника аргументами либо авторитетом - всегда выбирайте первое. В лучшем случае вы просто погасите огонь в глазах того, кто будет делать игру вместе с вами. Но скорее всего он просто откажется продолжать.
Самое же серьёзное, чем стихия огня может повредить процессу разработки - это своей прожорливостью. Пока вы охвачены идеей - работа идёт легко и просто; хочется успеть как можно больше за этот период. Бросить всё своё воодушевление на игру и, не следя за процессом сверху, обгонять самого себя очень заманчиво. Вы, конечно, реализуете основные игровые моменты поразительно скоро. И даже, возможно, выпустите готовый движок через пару ночей. Но в таком режиме вы очень быстро перегорите. Надоевшая игра застынет на стадии прототипа и никогда не будет оценена по достоинству. Иногда полезнее притормозить, передохнуть и заняться организацией процесса, а не самим процессом. На этом этапе очень полезным будут составление дизайн-документа игры, отбор идей и расстановка приоритетов. Управлением процессами всё равно придётся заниматься, но если не начать сразу - набрав скорость вы влетите в это болото с упадком сил и не сможете через него пройти.
0. Не торопитесь!
1. Игра - это основательно.
2. Идеям нужно время для созревания.
3. Стремление перегореть - фатально.
Ловушка вторая: Вода
Вода - это то, что убило тысячи игр. То, из-за чего у каждого игрового разработчика "в столе" лежит несколько недоделанных игр мечты. Попасть в трясину очень просто, а выбраться в большинстве случаев невозможно. Но есть несколько рецептов, как пройти по этому пути с минимальными потерями.
С наибольшей вероятностью поток воды захлестнёт вас, если вы слишком быстро бежали на начальных этапах работы. Самое интересное уже сделано, и теперь предстоит долгое превращение несортированной кучи особенностей геймплея в полноценный игровой продукт. Согласно старому правилу 20/80 именно теперь вас ожидает долгая рутинная работа. Каждая задача мнится бесконечной по времени реализации и бесполезной для большого дела. Если у вас всё ещё нет плана - скорее всего вы будете откладывать одну задачу за другой, переносить работу "на завтра" и в конечном итоге вовсе остановите разработку. Проблема серьёзная, но отчаиваться рано. Решается ситуация довольно просто: для начала возьмите самую большую задачу и раздробите её на несколько самостоятельных обособленных кусков. Повторите процесс несколько раз, пока итоговые раздробленные задачи не станут атомарными, неделимыми. Очень важно на этом этапе увидеть отдачу от вкладываемого в проект труда. Решая одну проблему за другой вы будете делать главное - двигаться вперёд. Если же вам попалась действительно большая задача и вы не можете её разделить - самое время свериться с дизайн-документом. Если задача не совсем кореллирует с основной идеей вашей игры - смело выбрасывайте её за борт. Лучше сделать чуть более простую игру, но доделать её. При желании, усложнить игру можно и после релиза.
Железногорск - чудесный город!
Вторыми по популярности посетителями водяной ловушки являются профессионалы. Программисты, которые знают как правильно пишется слово "паттерн" и цитирующие банду четырёх с любой страницы, могут обнаружить себя в центре болота довольно часто. Обычно это случается при написании пятой абстрактной фабрики для четвёртого типа абстрактных монстров. Я ни в коем случае не призываю отказываться от чистого кода, который не нужно рефакторить - им обычно довольно просто и удобно пользоваться. Но, как говорит нам старая поговорка: "Дайте разработчику игровой движок - и он сделает игру. Научите разработчика писать игровые движки - и он никогда ничего не выпустит в свет". Главное достоинство стройной архитектуры - возможность ускориться когда-нибудь потом. Главный её недостаток - то что это "потом" может никогда и не наступить. Если вы устали от разработки и потеряли искру, двигающую вас вперёд - остановитесь и посмотрите сколько полезного вы сделали. А потом используйте это в полную силу и реализуйте что-нибудь конкретное. В этом деле может помочь принятие челленджа, установка сроков: например, за три часа реализовать два уровня подземелья. Или - через 48 часов выпустить игру. После многих часов перфекционизма бывает даже приятно пуститься во все тяжкие и нарушить всевозможные ограничения. Помните, грязный код всегда можно отрефакторить, а стерильный код обычно не нужен никому, даже самому программисту.
А вы знали, что именно белый - цвет смерти?
Ещё один тип людей, которые застревают в болоте, легко опознать по менеджерскому складу ума. Богатый управленческий опыт помогает им пропустить первый этап горящих глаз и вляпаться в трясину с самого начала. В первую очередь такие игроделы бюрократизируют буквально всё до мелочей. Строят планы на самые примитивные действия, согласовывают детали, сортируют задачи и разделяют ответственность среди членов команды. В худшем случае начинается всё ещё с регистрации домена под игру и заведения платных аккаунтов от гитхаба до какого-нибудь Ютрака. Будьте проще. Ваша задача - не спроектировать самолёт и не запрограммировать сердечный клапан. Факапы неизбежны, но не стоит их бояться - они не так критичны в игровой разработке. Если случится что-то плохое - вы сможете решить проблему в процессе. Будьте менее серёзны. Ведь иначе, даже если вы доделаете игру - она больше будет походить на офисный пакет для бизнеса, а не на весёлое развлечение.
Испытание третье: Медные трубы
Проблема медных труб опасна прежде всего потому, что её никто не берёт в расчёт. Когда разработка закончена, игру хочется выпустить как можно скорее; как можно раньше показать результат широкой общественности. И это будет ошибкой. То, что вы сделали, через что прошли в процессе - замыливает взгляд. На самом деле, перед публикацией игру предстоит переделать. Если в вашей игре есть код - он содержит баги. Если вы добавляли в игру геймплей - он непонятен. Забыв про эти аксиомы, вы не сможете выпустить сколь либо популярный продукт. Посмотрите на вашу игру с точки зрения обычного пользователя, а лучше попросите об этом кого-нибудь из ваших знакомых. Не прельщайтесь похвалами, лесть будет губительна для результата, она демотивирует вас от переделки. Узнайте как можно больше недостатков вашей игры и вовремя исправьте их.
Также, с неприятностями от эффекта медных труб можно столкнуться погнавшись за чужой славой. Одно дело - пытаться довести "графон" вашей игры до уровня "крузиса". И совсем другое - клепать стотысячный клон Fallout или очередного убийцу Diablo. Всегда правильнее будет придумать оригинальную вселенную, создать уникальный мир и заняться продумыванием его особенностей. Игроки это обязательно оценят. Даже если вы хотите экспроприировать незначительную деталь из какого-нибудь хита в надежде, что она оживит геймплей вашей игры - лучше откажитесь от своей идеи. Наверняка для того, чтобы проработать эту деталь и гармонично вписать её в окружение, разработчики потратили немало времени. С ворованной чужеродной идеей игра вряд ли будет выглядеть логично. Зато вы в полной мере почуствуете на себе эффект "Культа Карго".
Возможно, медные трубы воздействуют на вас с обратной стороны и ваша игра не станет популярной. Вы не дождётесь ни положительных ни отрицательных отзывов - её просто проигнорируют и вы сами признаете, что игра получилась плохой. Это нормально! Не стоит делать далеко идущих выводов из одной-двух или, на самом деле, даже пяти неудачных попыток. Как сказал кто-то умный: "Первые десять ваших игр будут лажей. Просто смиритесь." В первую очередь вы приобрели навыки, которые помогут сделать вашу одиннадцатую игру идеальной. Уйти из игровой разработки чтобы делать сайты вы всегда успеете. Лучше сделайте ещё одну игру, имея некоторый опыт - в следующий раз будет гораздо легче.
Просто акварельный пейзаж, почти без контекста.
0. Переделайте её.
1. Жулик, не воруй.
2. Сделайте ещё.
Я понаписал сегодня много глупостей. Возможно, это кому-то покажется довольно банальным, а кто-то и вовсе посчитает мои выводы в корне неправильными. Но это работает. По-крайней мере для меня. Успехов всем.
И знайте: свою лучшую игру вы ещё не написали.