Здравствуйте. Меня зовут Валентин, мне 14 лет и я являюсь разработчиком игр. В рамках этой статьи хотелось бы рассказать о том, как молодой человек может начать, продолжить и достичь некоторых результатов в разработке игр с использованием движка Unity.
Поскольку у меня есть только мой собственный опыт, то о нём я и расскажу. Живу я в небольшом подмосковном городе и учусь в обычной средней школе. Ну как, средней, близость к Москве вымывает весь золотой песок преподавательского состава, оставляя нам лишь легкие фракции мутного потока отечественной педагогики. Так что, учусь я в школе ниже средней. Настолько, что биологию и химию нам преподает физрук(хотя видно, что он готовится и достаточно неплох), а за полгода учёбы мы прошли только первые 4 параграфа физики, но что-то я отвлёкся.
Впервые в удивительный мир программирования я окунулся в 10 лет. Начал я со Scratch, и сначала было всё отлично — я делал мини игры, даже рисовалку полноценную создал. Но потом, из-за долгого «сидения» на Scratch я побоялся переходить на «нормальные» языки программирования — я не понимал, как я смогу выучить все те строки кода, которые писали люди на Youtube, и просто забивал на это, смотря в сторону красочного и такого лёгкого в своём понимании Scratch. Одно дело цеплять друг к другу разноцветные блоки и совсем другое - в темно-сером окне писать белые буквы. Длилось это больше года, пока на новый год родители не подарили мне книгу «Программирование на Python», иллюстрированное руководство для детей. Тогда я собрал всю свою волю в кулак и решил сделать следующий шаг в познании огромного мира Gamdev'а. Замечу, что мне тогда уже было 12 лет, и как по мне именно 12 лет — идеальный возраст чтобы начать изучать программирование, ведь у ребёнка к этому возраста уже есть самые базовые знания для старта. А пока я учил Python, я смотрел ролики на YouTube, которые рассказывали о Unity, и о том, как легко делать игры на этом движке. Кому не хотелось бы сделать свою игру за 5 минут по ролику с YouTube?
И тут всё завертелось. Коротко об аппаратно-программном обеспечении. В самом начале моей стремительной карьеры игродела, использовался китайский Windows-планшет, купленный в ближайшем магазине бытовой техники - два ядра, два гига ram, 32 гига flash. Хватило его на два года, при очередном обновлении Windows стал занимать всё доступное место и система грузиться перестала. Потом отец, из неведомых закромов, достал рабочую станцию Lenovo - Core i5, 8 Гб RAM. Но, с целью воспитания духа самурая, в качестве операционной системы был установлен дистрибутив Ubuntu. В дальнейшем это привело как к необходимости решать специфические проблемы, так и возможности небрежно бросить в кругу общения: "Линукс это совсем не сложно...". Конечно, это сложно! Когда разработкой в Unity из Linux занято полтора землекопа, и никто не может тебе помочь разобраться, почему не компилируется проект с рекламным блоком от Google!
Конечно, хотелось и поиграть. Спасибо огромное Steam, за то, что дал такую возможность. На имеющейся видеокарте Nvidia Quadro fx580 игра Worlds of Warships шла на 17 fps в оконном режиме, так что со временем, сугубо для целей разработки, была приобретена видеокарта NVidia GTX 1050Ti и fps поднялись до комфортных 60. Но потом и так слабо замечаемая linux-аудитория этой игры стала вовсе игнорироваться, работала только под proton 3 (это эмулятор от Steam), что несколько досадовало. Но я не заядлый игрок, в отличие от многих моих сверстников и мой уровень в Steam равняется нулю. Для меня поиграть в игру — это просто поиск вдохновения, поиск новых идей.
И вот, так совпало, что когда я «добил» книгу по Python, в нашу школу пришел новый математик. Он не был простым математиком, он также был программистом, и собирался открыть кружок по разработке игр в школе. Узнав об этом, я сразу же оповестил его о моих маленьких успехах и достижениях в программировании, после чего он охотно меня записал в кружок. На первом уроке было человек 20, и там он нам рассказал, что же мы будем изучать. Преподаватель собирался обучить нас сначала языку программирования C++, а потом уже C# - потому что языки схожие, и, как предполагалось, будет легко переходить с одного языка на другой. Меня и моего отца выбор такой тактики обучения немного смутил, но мы смирились с этим. На второй урок пришло всего лишь двое — я и ещё один паренёк, с которым я, конечно, сдружился. Мы изучали C++ на stepik.org по курсу от Академии Яндекса (он, кстати, бесплатный, можете сами пройти, если хотите). Я помню, как с моим приятелем мы расставляли кубы и цилиндры в Unity, а потом летали по этому «миру». Спустя пару месяцев преподавания, учитель покинул нашу школу, чему я был, конечно, совсем не рад, но я остаюсь ему крайне благодарен за финальный толчок к реальному знакомству с Unity.
С# я стал учить не один. В Instagram я познакомился с одним пацаном моего возраста, и мы решили учиться вместе, смотря курс на Youtube - «C# для маленьких и тупых». Мне казались тогда очень смешными шутки про стринги, но, если серьёзно, курс очень лёгок в понимании, поэтому моё почтение авторам этого курса. В дальнейшем я познакомился ещё с некоторыми людьми, и мы образовали группу единомышленников, но у всех появились свои дела и мы разошлись.
Happy Piggy Bank
Делался этот проект как-раз под впечатлением просмотра одного ролика на Youtube, при этом я копировал весь код, не понимая того, что я делаю. Игра так и осталась просто наброском, единственное, я смог научиться работать с виртуальным джойстиком и понял, как работают анимации в Unity.
Кстати, графику для всех своих игр я рисую сам. Ещё с детства я любил рисовать различные образы персонажей, локации. Для этого мне служит графический планшет ugee m708 и замечательная программа Krita. Раньше, когда у меня ещё был китайский windows-планшет, я рисовал в SAI мышкой, и даже получались комиксы, но время идёт, и меняются интересы. Ещё умею моделировать в 3D, даже свой планшет смоделировал.
Look Out, Monsters!
Моя первая симфония, проект, который я делал чуть меньше полугода. Этот проект дал мне понимание того, что и как работает в Unity, я стал понимать структуру кода, его логику. С ним я прошёл от пустого проекта до публикации его на полке Google Play, а потом и блокировки за несоответствие рейтингу, однако потом я смог его разблокировать (и получил опыт общения с техподдержкой Goggle).
Суть игры - бегать по карте и, убивая монстров, получать монеты, тратя их на прокачку оружия. Игра супер сложная, о балансе я тогда не подумал, из-за чего у игроков неплохо так горело в задней точке.
Наверное, главной проблемой при разработке этой игры была ошибка при компиляции проекта на Android. Из-за этого релиз игры отодвинулся на пару месяцев, а ошибка нашлась совсем случайно: я сидел как-то вечером и смотрел ролики на Youtube, и в одном из роликов ютубер перед билдом игры удалил API Vulkan (который нужен для повышения fps в 3D играх), и я решил сделать также. И, о чудо! Честно, для меня до сих пор остаётся загадкой, почему так произошло, ведь в других 2D проектах всё было хорошо, даже с Vulkan, но это работало — и уже радует. Тогда я радовался со своим другом, как в американских фильмах, но при подаче документов для Google Play Console схватил блокировку, потерял 25$, да и вообще упал духом. Но потом, по совету отца, я решил сделать вторую попытку и Google подтвердил документы, спустя всего пару дней :/
Да, истинная правда, что все люди делятся на тех, кто не делает бэкапы и тех, кто уже делает. Look Out, Monsters пришлось переделывать с нуля из-за пары неверных движений. Зато теперь у меня есть rsync для копий системы на резервный HDD и репозитории на github.com.
Также в это время в сети интернет я стал узнаваем (условно) под ником Valter41, но потом изменил его на ValterGames. У меня появился логотип, который претерпел ряд изменений:
Arena of the Died — мой следующий проект
Этот проект не смог дойти до конца, но я думаю, что его еще можно будет доделать. Задумка заключалась в том, что есть поле, два игрока и одна цель — убить противника. Сложности пошли на этапе рисования — уж слишком много надо было рисовать, а также создание персонажа в Unity. Каждый персонаж должен был иметь разные уникальные навыки и умения, что для меня стало непосильной задачей.
Protect the Princess
Из-за этого проекта у меня и появилась идея написать эту статью. Эта игра в жанре tower defence, где главная цель — защитить принцессу. Разрабатывал эту игру 4 месяца, но это с учётом различных поездок то в лагерь, то к бабушкам, то на дачу. В этом проекте сначала была похожая графика с Arena of the Died, но потом я решил рисовать в векторе для сокращение затрат времени на рисование графики. С разработкой игры тоже были некоторые проблемы: в моей игре есть реклама, но, чтобы её подключить, мне пришлось нехило так помучиться, разбираясь, почему не компилируется проект. Проблему с AdMob я смог решить, установив другие версии SDK и JDK, отличные от тех, что шли в комплекте с движком, и подправить пару строк в файлах игры. Также проблемы были и с плагином Google Play Games, но всё обошлось обычной переустановкой плагина и теперь игра есть в Google Play и регулярно обновляется!
Dead fight
Этот проект создавался в рамках одного GameJam'а, темой которого была «одна кнопка», а в качестве ограничения 2 дня на работу. Получился пост-апокалиптический мир, где игроку нужно отстреливаться от всяких монстров (да, у меня почти во всех играх монстры, не знаю почему). Я смог занять 1 место и получить небольшую награду, что очень приятно.
У меня были и другие проекты, не получившие дальнейшего развития. Но я покажу вам несколько наработок и скетчей:
Коротко поделюсь своими планами: заработать миллион долларов, купить взаправдашнюю саблю, красный галстук, чёткий костюм, бульдога-щенка и править галактикой со своим отцом. А на самом деле, мне еще предстоит закончить школу, получить высшее образование и найти работу. Очень хотелось бы, чтобы она заключалась в разработке игр, так как создавать новые миры — это возможность выпустить свою фантазию наружу! Встретимся в новых статьях!
Мои контакты: Discord Server, ВК группа, Instagram
Комментарии (53)
tjx
05.12.2021 00:02+4Валентин, отличная статья! Сдаётся, что с таким подходом работа найдётся существенно быстрее, чем закончится школа :)
alotofQ
05.12.2021 07:43+5С таким подходом он к концу школы станет зарабатыаающем инди разработчиком и будет нанимать других ребят для делегирования некоторых профильных задач.
UnicornHunter
05.12.2021 00:02+1Написано вполне подробно, и читается интересно. Было бы интересно ещё что-нибудь почитать от автора на тему разработки игр на unity, благо, направление перспективное
Max_D
05.12.2021 03:16Супер, прочитал с удовольствием ) Вот бы мне своих детей в такую сторону замотивировать...
Кстати, сейчас вроде бы Unity уже не в тренде, все взоры направлены на Unreal Engine. Могли бы сказать пару слов о нем и почему все-таки был выбран Unity?
ValterGames Автор
05.12.2021 07:41+1Спасибо большое за комментарий! Unity был выбран из-за того, что про него в YouTube было больше роликов по типу "Создание игры за 10 минут", "Создание игры на Unity" и подобные. А также я думал, что С++ будет сложнее учить, так что выбор пал на Unity, и не огорчён своим выбором)
Caraul
06.12.2021 16:44Как раз сегодня читал параллельную https://habr.com/ru/post/593487/ - "В конце концов, может вам будет просто интересно узнать, что же это за движок такой, для которого курсы рекламируются на каждом шагу." Но C# куда проще, это Вы верно выбрали. Но для общего ознакомления я бы рекомендовал посмотреть на в целом .NET - в Unity C# несколько специфичен.
Kardy
05.12.2021 12:51+4>все взоры направлены на Unreal Engine
Взоры направлены у тех кто надеется собрать ААА шутер из ассетов на коленке.
Unreal Engine действительно позволяет развернуть графон близкий к АА без понимания как настраивать свет, рендеринг, шейдеры, но стоит ли вообще браться за подобный проект без понимания всего этого, большой вопрос.
tommy_lee
05.12.2021 14:36+1Не слишком ли сурово на C++ кодить-то?
ScratchUA
05.12.2021 22:26Начинать учить условно-сложные языки (C, С++, ASM и т.п.) как раз и надо лет с 14-15, когда мозг лучше и быстрее воспринимает информацию. Просто вспоминаю, как в свои 15 слёту достаточно хорошо освоил ассемблер для Z80, а вот с годами, время на освоение других языков только росло, даже с учётом уже имеющегося опыта.
tommy_lee
05.12.2021 23:29Непонятно только, зачем засорять мозг мусором вроде неопределенного поведения и негарантируемого результата
ScratchUA
05.12.2021 23:47Почему же сразу мусором? Это полезная информация для написания кроссплатформенного кода. Не я же писал спецификации С++, поэтому повлиять на наличие "мусора" я не могу. Хотя, вообще-то, я в своём посте говорил о скорости и качестве восприятия информации в целом.
addewyd
05.12.2021 04:50+6вымывает весь золотой песок преподавательского состава, оставляя нам лишь легкие фракции мутного потока
Красиво, но неверно. Вымываются как раз лёгкие фракции. Поэтому лёгкое недоумение, возникающее при прочтении этой фразы, влияет на восприятие последующего текста.
Наверное, погода влияет, уж очень мерзкая, так и хочется позанудствовать.GospodinKolhoznik
05.12.2021 09:32+4А если цепляться не к словам, а к смыслу:
Ближнее подмосковье это спальные районы. Очень много жителей и очень мало работы. Ездить в Москву на работу, чтобы получать там зп на 40% больше но при этом тратить на дорогу по 2 часа в каждую сторону - сомнительное удовольствие. Особенно учительнице. У нее же скорее всего есть собственные дети, и если она будет ездить в Москву, она их вообще видеть не будет. Для матери это совсем плохой вариант.
Наоборот, в школы в спальных районах Подмосковья конкурс учительниц по количеству человек на место выше, чем в Москве. А вот мои кто из них из в Москву и вымывается, то это не золото, а приспособленцы и выслуженцы, идущие на повышение. Да, те самые, которые в воде не тонут.
addewyd
05.12.2021 13:03Это к автору. Что у него истине не соответствует, метафора и ли факты. Мне до Москвы далеко, да и в школе я был в последний раз очень давно.
MixaSg
05.12.2021 13:16+1У нас, в близком замкадье ситуация такая: молодой преподаватель идет в среднюю школу, чтобы получить стаж. Через пару лет предпочитает ездить в Москву за большей зарплатой. Учителя в годах работают по месту жительства, но, зачастую, без огонька.
mad_smoker82
05.12.2021 07:42+1Довольно неплохо) мне нравятся пиксельные игры, видимо сказываются игры 80-х, 90-х)
Плюс пишешь интересно. Может быть в какой-нибудь статье или цикле рассмотреть этапы создания одной из них? Подобных статей наверно скажут тут уже много, но свежий взгляд с одной из сторон все равно будет интересен.
Может найдутся те, кто захочет помочь сейчас или в будущем.
BATPYIIIKOB
05.12.2021 07:42+1Остаётся лишь пожелать тебе удачи! Молодец! Пиши статьи - они также тебя будут стимулировать к написанию игр - верно и обратное
avengerweb
05.12.2021 10:38+2Высшее образование хаха, в свои 14 я как и автор грезил мечтой жить геймдевом, но как оказалось это не так уж и радужно как хотелось бы, в моем случае скотилось все к 3 брошеными универам и фулстеком в интерпрайзе где то в долине.
14 лет это где то за 1-2 года до конца 9 класса, стоит задуматься о колледже вместо Универа и высшего образования, никто не запретит после пойте в универ, но это даст возможность потрать время на более интересные вещи.
Стоит попробовать попилить онлайн игры и бакенд к ним, тоже вещь драйвовая, да заодно и даст опыта за пределами геймдева
tjx
05.12.2021 15:49+2Я до 30 лет думал также. А потом вдруг резко передумал, когда такие же "срезатели углов" стали вдруг утыкаться в стеклянный потолок.
Универ в долине или топ-3 в РФ даст для карьеры и жизненных возможностей сущетсвенно больше, чем сэкономленное время через колледже.
avengerweb
05.12.2021 22:38+1Каких возможностей? Держа качество образования за кулисами, ни универ ни колледже не гарантирует вам успеха в жизни. Везде есть свои трейд-оффы, у меня нет ничего кроме 11 классов школы и пары брошенных универов, тем не менее я счастлив в свое жизни и я не имею никаких сожалений. Мой менеджер вполне мной доволен, команда которой я управляю тоже относится ко мне с уважением не смотря на то что большенство из них имеет степень магистра, могу сказать что карьерно я собой более менее доволен.
Жизненно, я наслаждаюсь возможностью за полчаса доехать до побережья океана и теплой зимой в долине + мне 25, я в свободное время я пытаюсь выращивать газон на бекярде (свой личный) уже пройдя этап когда мне нужно выпрыгивать из штанов чтобы найти хорошую работу, а в то время как мои "одноклассники" грызли гранит науки мы с женой катались на машине по европе, я женат, у меня 2 собаки и шиншилла, так что жизнено я принципе тоже доволен.
Однако я беру потихоньку университетские курсы по CS, беру вечерний матан в колледже, но делаю я это исключительно потому что созрел, а не потому что все считают что без образования никуда.
Viers
05.12.2021 18:12+2Я бы не стал менять универ на колледж ради пары срезанных лет. Возможность заниматься чем-то кроме учёбы всё ещё останется, но даже в не самом именитом ВУЗе шансов покататься на всякие хакатоны-соревнования существенно больше, как и встретить интересных людей. Плюс для трудовой миграции наличие "диплома по специальности" может быть очень весомым бонусом (для миграционной службы принимающей стороны).
VishnevoePiroGiNo
05.12.2021 11:06+4Коммент для тех кто подумал.. Ого ему 14 лет и он уже такого результата достиг, а мне 30 и я только хочу этим заняться. Сразу хотел бы обратить внимание на то, что все зависит не от вашего возраста, а от амбиций, желания, возможностей и конечно от времени (практики) которое ты уделяешь этому делу . Не стоит идти в gamedev из-за денег, если ты реально горишь этим, кайфуешь от самого процесса, ты и будучи 40летним, за год можешь серьёзных результатов достичь.
valis
05.12.2021 11:57+5Класс, а я в 14 на пруду жаб ловил. Хорошим девелопером стать чисто повезло.
В нашем селе никто и не знал такой специальности, о нормальной математике в школе и компах на уроках информатики говорить было смешно (хотя школу окончил в 2014м)
Свой первый комп получил в 16 за то, что поступил в техникум (у нас не было 11 классов)
На компе в основном играл в игрушки. В техникуме учился на разраба, но преподавали сквозь пальцы. Поэтому года 4 работал админом. Посчастливилось стать бизнес аналитиком, а от туда уже и в разрабы подался
0x131315
05.12.2021 12:43А чем занимается бизнес-аналитик? И почему переход к коду считаешь эволюцией?
valis
05.12.2021 20:29BA занимается выявлением бизнес требований. Заказчик не всегда знает и не может сформировать правильные требования. Кроме того, он может не знать о потребностях других подразделений. Вот задача свести все это в кучу и минимизировать модификацию систем
Но я занимался потом задачами по шире - системный анализ. Накладывал требования на системы, находил где и силами каких команд это лучше реализовать, как сделать чтобы ничего не противоречило друг другу и не свалилось
Конечно же у бизнес и системных аналитиков есть свой карьерный и профессиональный рост.
Переход в разработку был ростом чисто в моем понимании. Я шел учится на разработчика и мечтал стать именно разработчиком.
valis
05.12.2021 21:28Но есть ещё ступень, на которую я хочу перешагнуть, но пока даже нет времени к этому приступить. Это не архитектор или техлид куда идут обычно опытные разрабы, а белый хакер. Мечта прям
habrabkin
05.12.2021 12:21+1Завидую! Как вот своего смотивировать?
avengerweb
05.12.2021 22:44+1Это противоречивый вопрос, то что родитель программист не значит что ребенок тоже, можно дать попробовать но не зацикливаться. Возможно ваш вообще репортером мечтает быть или детективом?
LinearLeopard
06.12.2021 13:54Завидую! Как вот своего смотивировать?
Предложить попробовать, если понравилось — он всё сделает сам, если не понравилось — предложить попробовать что-нибудь другое.
vgogolin
05.12.2021 12:36+2В мои молодые годы это были CS, Quake и Serious Sam в клубах по ночам. Свой компьютер иметь было фантастикой, а игры на нем разрабатывать - даже в голову не приходило )
Vitya_Nikolayev
05.12.2021 21:32Хмм, чувак несомненно не лыком шит, я бы даже сказал жёсткий, но судя по названию я ожидал что статья будет про Unity, c#, недостатки конкурентов Unity или что-то типа такого, но уж точно не «история смышлёного парня в геймдеве»
SantaCluster
05.12.2021 21:46+1продолжай учиться, разрабатывать, рисовать, писать о своём опыте.
и, главное, не ленись.
успехов тебе и приятных людей вокруг
chyngyz6
06.12.2021 11:31+1в 14 лет написать более 5 игр - это нереально круто. Ожидаю, что через 10 лет твоя студия будет создавать супер игры.
LinearLeopard
06.12.2021 13:51Настолько, что биологию и химию нам преподает физрук(хотя видно, что он готовится и достаточно неплох)
У меня в школе труды преподавал дипломированный преподаватель языка и литературы, так что не всё так однозначно, мог прийти и выпускник био/химфака, но так как учителя биологии и химии были, его назначили физруком, а потом, когда учителей не стало — вспомнили о его дипломе. (но это не точно)
Artemtendo
06.12.2021 14:28Я считаю, что это огромный успех для такого возраста! ????
Сам участвую в разработке игр, но я дизайнер и админ сайта. Тоже учу unity с c#, но из-за потока дел я забросил, но твой пост смотивировал меня дальше учить язык :)
Уверен, если мы бы объединились, то мы бы стали супер-командой. Если хоть каплю интересно, то могу написать в лс????
Как бы там не было, удачи тебе всегда
Mx45sd
06.12.2021 14:28Я не программист и не разработчик игр, Unity поставил, немного изучаю, но это скорее хобби. Автору спасибо за статью, легко читается, мне понравилось. Желаю Вам дальнейших успехов! А я пока пойду, на инсту подпишусь :)
TheDefiler
07.12.2021 06:26+1В 14 лет уже такой немалый успех! Это просто нечто! Я вот сомневаюсь что тебе нужно высшее образование, пока окончишь школу уже будет думаю достаточное колличество проектов (и скилла) чтобы устроиться на работу джуном и дальше совершенствовать свои умения, а не сидеть на скучных парах по математике и прочей ерунде которая тратит впустую твое время и вытягивает энергию. Тоже очень повезло с отцом который поддержал с выбором хобби, а не высмеял что мол фигней занимаешься. По моему опыту скажу (может я и не прав) чтобы идти в IT высшее образование не надо, надо желание учиться (гореть от дела) и какие то проекты чтобы показать себя и свои творения ибо это гораздо важнее той бумажки что ты там закончил. Желаю неиссякаемой мотивации и удовольствия в твоём хобби а потом и в реальных проектах!
vladdnepr
Удачи. Для 14 лет очень даже неплохой багаж получился
EmperorXizzle
Для 14-летнего? Чувак, мне 26, это даже для меня было бы очень не плохо)