Бросить всё, чтобы делать игры
[Об авторе: Артур Богданов — в прошлом co-founder amgrade.com и drucode.com. Сейчас разработчик игр]
Часто слышу, что программисты хотят «вырасти» до менеджеров, и видят это логическим продолжением своей карьеры. У меня получилось наоборот: после пяти лет работы в менеджменте и продажах я всё это бросил и начал заниматься разработкой своей игры.
За те 5 лет менеджмента я создал 2 веб-ауторсинговые команды и провалил один игровой проект. Примерно 6 месяцев назад подарил свои 50% в аутсорс-компании уже сложившемуся там костяку (не считая символичных 60k usd, взятых со счета компании на двоих с партнером) и ушел учиться делать игры.
Старт
Чтобы побыстрее приступить к делу, я взял очень простую в реализации идею. Рассказал о ней другу, который хорошо рисует. Мы давно хотели вместе что-нибудь сделать, и принялись за работу.
Кстати, на тот момент друг жил в зоне боевых действий, в Артемовске (Донецкая область). Я долго искушал его переехать во Львов. Спустя 4 месяца он таки решился, оставив собственный дом в Артемовске, взяв в охапку жену и двоих детей. Еще спустя месяц он совершил другой героический поступок — ушел из аутсорсинговой компании, в которой проработал около 10 лет, потому что полноценно совмещать разработку нашей игры и другую работу фулл-тайм стало невозможно.
Технология и обучение
Из множества игровых движков остановились на Unity3d. Он прост в освоении, есть большое сообщество, а также пара знакомых программистов, которые давно работают с Unity. К тому же, с помощью него можно выпустить игру на все мобильные платформы без особых дополнительных усилий.
Программировать я не умел, поэтому начал учиться. Проходил онлайн-курсы, читал документацию, смотрел туториалы и пробовал создавать игровые прототипы. Кстати, ни одного туториала так до самого конца и не прошел — скучные они какие-то. Хотелось реализовывать свои идеи, а не списывать код. Как мне кажется, наиболее эффективное обучение — это вдумчиво читать документацию и как можно больше программировать, постепенно решая всё более сложные задачи. Еще очень помогают книги от матерых программеров. Одна из моих самых любимых: «Game Coding Complete» by Mike McShaffry and David Graham.
Написав прототип нашей игры, я понял, что архитектура там никуда не годится, что всё надо выкинуть и написать как-то по-правильному. Только как — непонятно. Тогда попросил моего знакомого разработчика, который с Unity работал уже 3 года, написать нам базовую архитектуру игровой логики, от которой я бы отталкивался и учился.
Услуги моего товарища-программера обошлись нам в 1600 usd. Получилось всё очень классно и гибко. Ничего особенного для гейм-дева, но очень юзабельно: вся логика управляется игровыми стейтами, стейт-машины приаттачены к основным game objects, которые, в свою очередь, управляют дочерними объектами. Каждая сцена имеет свой Root class. Стейты переключаются в Root-классе сцены, а их логика в основном обрабатывается в скриптах-моделях, этих основных game objects. Совсем начинающим программерам с удовольствием расскажу более подробно — пишите. Кто может научить делать лучше — тоже пишите, пожалуйста.
Про игру
В нашей игре нужно складывать роботов из частей. И чем быстрее и лучше вы сможете это делать, тем дальше продвинетесь. Игра — абсолютно family safe. Она развивает концентрацию внимания, и я был поражен тем, с каким восторогом ее принимают дети. Сначала выйдет для ipad, потом — iphone, а дальше посмотрим.
Ниже пара персонажей, как мы их задумали и какими они получились в 3d:
Мы также решили, что сделаем классные анимации, но так как никто из нас это делать не умел, то мы нашли для этой работы аниматора. Это обошлось нам в 1500 usd. Короткое превью геймплея:
Сейчас мы работаем над UI, саунд-дизайном, доведением геймплея, 3D-объектов и сцен.
Самое трудное в разработке игры — то, что вопросов всегда намного больше, чем ответов. Существует миллион путей организации геймплея, графики, программной архитектуры, и каждое принятое решение может повернуть процесс не в ту сторону. Поэтому решения нужно продумывать, разрабатывать через быстрые прототипы, анализировать результаты.
Личные трудности
Тяжело было в корне изменить свой образ жизни.
1. От майнд-сета менеджера к разработке
Когда вы занимаетесь бизнесом/управлением, присутствует много мультитаскинга, общения с людьми по e-mail и в «реале» и мало концентрации на одной узкой задаче (по крайней мере, так было у меня). В разработке важно уметь фокусироваться на одной задаче в одно время. Делегировать мне пока некому.
Первые попытки писать код были просто ужасными. В голову лезли разные мысли, которые не давали концентрироваться, всегда хотелось отвлечься на что-то другое. Казалось, что я должен отдать разработку тому, кто может это сделать быстрее и лучше меня, деньги-то есть. И хотя в тот момент действительно было бы эффективнее заплатить опытному программисту, я понимал, что если не разберусь в этом сам и не вырасту как разработчик, я не смогу дальше делать сильные продукты. Потому выбрал боль и разочарование.
2. От жизни в полном достатке в экономную жизнь
Я люблю путешествовать. Раньше по роду деятельности очень часто ездил в Европу к клиентам и коллегам, любил отдыхать на тропических островах. После ухода в разработку решил, что пока снова не начну зарабатывать хоть немного денег, никуда не поеду. Потому зимой страдал от жесткой депрессии :)
Это правда тяжело, когда резко меняется стиль жизни, и сознательно отказываешься от различных плюшек. Но я понимал, зачем это делаю, и что все путешествия ничего не стоят, если ты не занимаешься любимым делом. Постепенно меня увлек гейм-дизайн, программирование и ощущение создания прекрасного своими руками, хоть вначале это и может быть похоже на гадкого утенка.
3. От работы в офисе — в работу дома
Поначалу было очень тяжело просыпаться и, никуда не выходя, садиться за компьютер. Часто мозг просто отказывался думать и учиться, лень брала верх. А еще рядом любимая Dota 2 и друзья, которые играют по вечерам. Но я решил постепенно справляться с этой прокрастинацией. Помог спорт и кофе по утрам, причем для спорта много не надо — достаточно турников на площадке рядом с домом. Это действительно придавало бодрости, и только после возвращения домой и чашки крепкого кофе я собирался с мыслями и фокусировался на деле.
Почему игры?
В детстве игры сильно повлияли на мое мировоззрение и способ мышления. Играл я очень много, иногда профессионально. Но глядя на большинство современных игр, не хочется и представлять, как они повлияют на будущее поколение. Сейчас многие становятся геймерами с мобильных платформ, а мы там видим скорее гемблинг: «Тебе понравилась наша игра, и хочешь сыграть еще? Заплати пару баксов, получи еще немного дозы, и приходи потом снова за новой порцией.»
Я понимаю, что успешные проекты быстро растут. Компания-разработчик наращивает штат людей, и всем им надо платить и бизнес развивать. А значит, надо придумать, как вытянуть из пользователей побольше. Но какой в этом всём смысл, если игра превращается в отжимание денег? Должны быть какие-то другие пути.
Это еще не говоря о геймплее, который нам предлагают. Чаще всего — одно и то же под другим соусом. А я, как сейчас, могу вспомнить свои ощущения в 2004 году от первой MMORPG, которую я увидел — настолько это было ново и захватывающе. Мы разучились фантазировать.
Что дальше
Меня сильно мотивирует то, что с интернетом мир плоский, и мы можем создать продукт, который будет приносить людям в любой точке мира радость, а нам — средства для разработки следующих идей. И всё это — имея только ноутбуки, голову и немного упорства. Сейчас я просто не могу представить себя делающим что-то другое.
Думаю, у нас с моим коллегой все получится, и мы сможем создавать и доставлять интересные проекты. Выпустим эту игру, еще ряд других — дальше будет видно.
P.S. У меня есть блог на английском языке, где я пишу апдейты по нашей работе, и твиттер. Буду рад новым подписчикам.
50 коментарів
Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.