Gamedev Андрей Ланнистер
5 358

Чему я научился, создавая инди-игру

Переделки и поиск мотивации.

В закладки

Я вскоре выпускаю свою игру в Steam. И вот что я думаю по этому поводу

Никогда больше не буду ничего переделывать

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

В одной из первых версий кода, все девять имеющихся на тот момент экземпляров оружия (одинаковые кинжалы, различающиеся только цветом) были описаны в отдельных объектах. То есть, каждый раз, когда мне нужно было поменять что-то в поведении оружия, я менял это в девяти местах. Не помню, кто мне объяснил про ООП, но я думаю об этом человеке, как о своем мессии.

Андрей Петкевич
великий программист
{ "items": [{"title":"\u0411\u044b\u043b\u043e","image":{"type":"image","data":{"uuid":"38c83c34-3625-33da-d1ff-04bc275aa8aa","width":951,"height":565,"size":189161,"type":"jpg","color":"bc9f76","external_service":[]}}},{"title":"\u0421\u0442\u0430\u043b\u043e","image":{"type":"image","data":{"uuid":"deceae2d-3437-fbfa-7667-0ac8273606ef","width":1920,"height":1080,"size":1650038,"type":"png","color":"121512","external_service":[]}}}] }

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

Вывод: переделывай умеренно.

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

Тяжело быть одиноким программистом-геймдизайнером

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

  • Свободное участие.
  • Вызов.
  • Высокая эндогенная ценность контента.

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

Все, кто играют, играют свободно. Кто должен играть, играть не может

Джесси Шелл
автор книги «Искусство геймдизайна»

Как вы понимаете, для меня не соблюдался ни один пункт.

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

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

В-третьих, и это главное, очень сложно воспринимать игровой процесс серьезно, когда ты сам пишешь код. Помните, как герои «Матрицы» наблюдали за зелёными символами, плывущими по экрану, и учились видеть за ними реальность?

«Информации, получаемой из матрицы, гораздо больше, чем ты можешь расшифровать. Ты привыкнешь к этому. Я уже даже не вижу код. Я вижу блондинку, брюнетку, рыжую»

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

К чему это приводит? Помимо очевидной неспособности дать своему труду адекватную оценку, в свою игру попросту не интересно играть. Это в свою очередь приводит к жестокой потере мотивации. Я бы наверное не смог это доделать, но меня спасли две вещи:

Геймплей, основанный на игрушке. «Игрушка» — это то, с чем приятно возиться даже без цели. Например, персонаж в любой Assassin's Creed — это игрушка, поскольку им интересно просто бегать по городу и паркурить. Я начинал Shadowlings с идеи боёвки, основанной на физике. Чтобы оружие обладало инерцией, сталкивалось друг с другом и таким образом давало пользователю приятный фидбек. Это то, что всегда поддерживало во мне хоть какое-то удовольствие от геймплея

Участие в нескольких джемах с неплохими результатами. Я получал хорошие отзывы от игроков, и это помогало мне помнить, что моя игра как минимум неплохая. Однажды меня даже сдержанно похвалил Константин Кошутин. В основе моей боёвки лежат идеи его чудесной игры Hammerfall. Я был вдохновлен до невозможности.

Как говорится, «я никогда больше не буду мыть эту руку»

Вывод: по-возможности геймдизайнеру лучше дистанцироваться от кода. Если это невозможно, для мотивации проще делать игру с интересной базовой механикой, которая будет работать для автора «в вакууме». И, конечно же, нужно взаимодействовать с посторонними людьми. Даже если просто показывать проект друзьям и родственникам, которые будут хвалить тебя только потому, что у вас хорошие отношения, это поможет получить заряд мотивации.

Вот, выговорился о наболевшем. Как вы могли заметить, мой основной поинт в том, что главное — это мотивация. Сделать можно что угодно, было бы желание. Поэтому для достижения результата в себе нужно прежде всего взращивать не умение, а желание. Тогда хватит и сил, чтобы приобрести умение. В следующий раз расскажу о том, как я искал себе геймдизайнера в помощники, и как мне помогло знакомство с композиторами, которые согласились написать музыку для игры.

#опыт

Материал дополнен редакцией
{ "author_name": "Андрей Ланнистер", "author_type": "self", "tags": ["\u043e\u043f\u044b\u0442"], "comments": 41, "likes": 99, "favorites": 43, "is_advertisement": false, "subsite_label": "gamedev", "id": 21466, "is_wide": false }
{ "id": 21466, "author_id": 1410, "diff_limit": 1000, "urls": {"diff":"\/comments\/21466\/get","add":"\/comments\/21466\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/21466"}, "attach_limit": 2, "max_comment_text_length": 5000 }

41 комментарий 41 комм.

Популярные

По порядку

Написать комментарий...

Артем Мертвоплясов

18

Спасибо за рассказ. Очень интересно. Побольше таких статей на dtf

Ответить

Андрей Торчинский

9

Тошнота от своего проекта - это нормально.

Во-первых потому что все самое интересное и крутое мы делаем в начале, а под конец остаётся всякий не интересный шлак (рефакторинг, оптимизация, обработка корнер-кейсов, полишинг).

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

В общем, главное дотерпеть до конца. Молодец, что дотерпел :)

Ответить

SuxoiKorm

6

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

Ответить

Stas Shostak

4

Видел эту игру на том же геймсджеме, где её прокомментировал highfleet :) Пиши, когда выпустишь, постараюсь поддержать если не покупкой, то хотя бы твитом в Инди-нытье.

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

Ответить

svLimones

1

Судя по тексту, вам не интересно разрабатывать и играть в свою игру. Обычно это из-за неверного процесса разработки либо сам жанр вам не интересен. Процесс разработки игры, - творческий. И следовательно абсолютно непредсказуемый результат. Игра всегда должна быть другой, чем ее планировали, это и есть разработка. Иначе уже через месяц можно выгорить.

Ответить

Kirill Pervushyn

svLimones
16

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

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

===========
Андрей, спасибо за пост, интересно излагаешь.

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

Удачного релиза тебе, ждём новостей!

Ответить

svLimones

Kirill
0

Если эти дни наступают периодически и часто - это уже не нормально. Чаще всего - это связано с "затыками" и проблемами не в свой области. Когда программисту приходиться заниматься контентом или маркетингом, например. Либо в плохом проектировании, когда лапшакод мешает экспериментировать и появляются множество неуловимых багов. И не надо говорить, что это нормально. Ненормально ненавидеть свою работу.
Но ТС движется в правильном направлении, если задумался об ООП

Ответить

Илья Туменко

svLimones
0

Попробуйте пообщаться с инди, лидгд или продами одного проекта.
К релизу у всех накапливается жуткая усталость от своей игры. А если разработка длинная – усталость накатывает периодами.
Это издержки всей сферы с одной стороны: длинные циклы продакшена, мало обратной связи, накопление ограничений по мере разработки (это про всю проектную разработка и геймдев в частности);
и конкретной специализации с другой стороны: надо постоянно фокусировать вижен, ограничивать творческие амбиции, оценивать новые решения в контексте принятых месяцами ранее и "затертых" до дыр и так далее (это про вижен-овнеров, хотя затрагивает и линейных ГД).

Ответить

svLimones

Илья
0

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

Ответить

Илья Туменко

svLimones
0

Иногда время – уже достаточная причина.
Мне нравится моя работа (любая из), но если я долго занимаюсь одним проектом – меня тянет на "левак", переключится на что-то новое, не затертое до дыр.
А если реализовывать эти амбиции в том же проекте – постоянно что-то менять и пробовать новое – он превратится в вялотекущий долгостой, часть изменений забросится на полпути, часть хреново сошьется с уже сделанным.
И единственный выход это сказать себе: "все, хватит, вот план, дальше делаем по нему, шаг влево, шаг вправо рассматривается как попытка побега, прыжок на месте – как попытка улететь".

Я на эти грабли наступал неоднократно, они разбросаны и в инди, и в корпоративном сегменте, и в геймдеве, и в софтверном IT.
Практически все, с кем работал или общался – проходили по ним же.

Ответить

Геннадий Онищенко

1

Как выйдет - тоже напишите пост, плиз, чтобы можно было купить.

Ответить

Андрей Ланнистер

Геннадий
5

Ух ты, круто :) Но такие рекламные посты вроде как запрещены на DTF) В стиме можно добавить игру в вишлист, если что.

Ответить

Dmytro Kapeliukh

2

Успешного релиза!

Ответить

Maxim Nuriev

2

Отличная история, спасибо.
ГД правда не получится дистанцироваться.

"Свободное участие.
Вызов.
Высокая эндогенная ценность контента.
Иными словами, игра должна ставить интересные задачи, тебе должно быть важно то, что ты в ней получаешь, и ты должен играть потому, что тебе захотелось"

Проблема замыливани и, эстетической усталости стоит очень остро у инди, и если еще тестировать самому тщательно.
Особенно если игра не процедурно-генерируемая с новыми экспириенсами. Понятно, например что оттестировав 3-часовой квест в течение пар сотен часов, скорее всего будет именно тошнить от него. Но и не тестировать нельзя. Примите как неизбежное зло :) "Я эту икру уже видеть не могу, вот она у меня где". Получайте эстетическое удовольствие от других игр. Селяви.
Фидбеки от других людей тоже собираем, это лучше не пропускать.

Ответить

Maxim Chudaev

2

спасибо за статью) про ненависть касательно своего проекта, из твиттера:

—Чувак, что за игру делаешь?
первый месяц разработки:
— Ооо, это будет улетная игра, самая лучшая, просто бомба!
шестнадцатый месяц разработки:
— пожалуйста не надо об этом(9

Ответить

Dmitry Mamaev

1

Круто, как минимум выглядит симпатично, да и механика интересная. Делали в GMS? И еще вопрос, который я уже задавал много раз в подобных постах. Как оформлялись с "легальной" частью? ИП?

Ответить

Андрей Ланнистер

Dmitry
1

Круто, как минимум выглядит симпатично, да и механика интересная.

Спасибо!

Делали в GMS? Как оформлялись с "легальной" частью? ИП?

Да, и да)

Ответить

Dmitry Mamaev

Андрей
1

Спасибо за ответы и удачного запуска)

Ответить

Гудвин Устал

1

Ну, вот "было" совсем плохо, а "стало" вполне симпатично. Так что переделки не напрасны :)

Ответить

Андрей Ланнистер

Гудвин
0

Графика к сожалению не моя заслуга, а отважных художников-фрилансеров)

Ответить

Михаил Лапин

1

Все, кто играют, играют свободно. Кто должен играть, играть не может.

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

Ответить

火里 綾火

–3

тому, что игры дешевле 10 миллионов дорроров не стоит выпускать?🤔

Ответить

Nikolay Goloshchapov

火里
2

Если бы Notch думал как ты, то сейчас он был бы просто жирным, а не жирным и богатым.

Ответить

Andrey Apanasik

Nikolay
1

Жирным, богатым и грустным.

Ответить

Nikolay Goloshchapov

Andrey
0

Грустно вытирающим слёзы сотенными банкнотами.

Ответить

火里 綾火

Nikolay
–1

а кто это?🤔

Ответить

Nikolay Goloshchapov

火里
0

Кто-то из них.

Ответить

火里 綾火

Nikolay
–1

ага, а что он сделал?

Ответить

Nikolay Goloshchapov

火里
5

Ладно, я подыграю.

Ответить

Santiago

Nikolay
4

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

Ответить

火里 綾火

Santiago
–3

не хочу из-за кого-то вроде тебя снова бан ловить.🤔

Ответить

火里 綾火

Nikolay
–3

чувак, я не шарю в этом, но типа ты про майкупф4к?🤔

Ответить

Nikolay Goloshchapov

火里
0

4к уже без него.

Ответить

火里 綾火

Nikolay
–2

о. ну ладно🤔

Ответить

Dmytro Kapeliukh

火里
0

Игру наверное 🤔

Ответить

Роман Лакруа

–6

Молодец, свои 50 баксов заработаешь.

Ответить

Олег Козлов

0

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

P.S. Подписался, жду релиза чтобы его поддержать. :)

Ответить

Рюрик Патихардович

0

Пока остался месяц до релиза, могу посоветовать добавить китайскую локализацию
ну и немецкую, по возможости!

Ответить

Андрей Ланнистер

Рюрик
0

а есть статистика по поводу пользы, которую принесут эти локализации?

Ответить

Рюрик Патихардович

Андрей
0

могу тока личную дать.

В первой игре было 3 языка: ру, англ, немец. Немцы дали 40% дохода
Во второй игре 10 языков: объем проданных копий из китая 60-70% (мы, еси чесна, сами акуели от этой цифры)

Ответить
0

Прямой эфир

Подписаться на push-уведомления
[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]