Геймдев с "нуля"
Доброго времени суток! Буквально несколько десятков минут назад разместил в сторе уже вторую игру собственной разработки для смарфона и решил поделиться. Нет, не ссылкой на стор или на свою игру или даже не тем, что сделал это снова. Мне лишь хочется сказать, что заголовок - реален.
Почему пишу - да мало ли, вдруг кто-то читает и не может решиться начать создавать свой проект. Может быть, увидит в моем тексте подсказку, мотиватор или ещё хоть что-то полезное.
Мне 46 лет, я не программист (и никогда не учился на программиста). Моя работа вообще никак не связана с программирование или с геймдевом. Но я сделал уже вторую игру (точно не шедевр, хотя считаю - уверенный середнячёк) и сегодня она "ушла" в народ.
Справедливости ради, какая-то база у меня всё же была. В школе я писал на бейсике (не на VB, а на обычном BASIC), в том числе, игры - на УК НЦ (кто-то вообще помнит, что это?), на "Корвете", на РС ХТ (8086 - это то, что было ещё до 286 процессоров). Также из "активов" у меня был опыт разработки игр (не только для ПК), участие в разработке давно почившей браузерной игры Ravensteel (но там я не участвовал непосредственно в программинге, скорее выполнял функционал гейм-дизайнера, по итогам вынес много полезного опыта), немного умею "в эксель" (без макросов), умею вести проект (это важно для соло-проекта) и имею доводить намеченное до конца.
С чего началось? Да очень просто - в августе 2022 года, в отпуске, поиграл в игру на мобильнике. И мне захотелось, чтобы игра была "вот такой же, только с брекджеком и кОрОвАнАмИ". Писать автору свои идеи, чтобы он их принял? Я ж понимаю, что львиная доля идей даже не будет рассматриваться. В то же время я видел, что игра, которая мне в целом понравилась, была сделана одиночкой - энтузиастом.
Ну я и подумал "А чё бы не то?". И вот, вернувшись с отдыха, я начинаю изучать вопрос (параллельно работая на основной работе). Я понимал, что хочу сделать игру для смартфона и поэтому первый вопрос - а что, собственно, поддерживает смартфон? В куда там кодить то? ) Так я добрался до изучения Java. Собственно, кроме концепции ООП (объекто-ориентированного программирования), я ничего нового и не увидел - всё те же циклы, функции, переменные, массивы, условия как и в BASIC 30-летней давности, просто чуть в другом формате. Кстати, дата начала изучения мной Джавы (установки среды для кодинга) запомнилась очень просто - это...
И вот я начал изучить джаву. По видео-урокам в интернете. Очень интересно, но в определенный момент, когда я дошел до графики, я также понял, что... Да капец, на джаве задача будет не решаема (учитывая те знания, которые я имел на тот момент и да, это было очень своевременное понимание).
Окей, следующий этап - определение "движка", на котором будет игра. И это оказался всем известный и многими нелюбимый (но очень многими достойно оцененный) движок Unity. Он
а) доступный и актуальный (регулярно обновляется и поддерживается разрабами);
б) бесплатный;
в) содержит большинство необходимого функционала;
г) - игра, которая меня "зацепила" и мотивировала была сделана под Unity.
Да, пришлось "уходить" с Java на C# (Си шарп), но на самом деле, отличий не так много. Благо, под Юнити и под Си шарп обучающих материалов тоже навалом.
Параллельно с изучением движка, я формировал "дизайн-документ" игры. То есть, основные элементы, которые будут в игре, как они будут меняться, взаимодействовать между собой. Кое что сразу "отмел" в перспективу, понимая, что я не делаю Dwarf Fortress (эт такая мега-игра, которую автор в соло делал много лет). То есть важный момент - я определил конечные объемы реализации. Да, эти объемы были не "железными", я кое что менял по ходу разработки, но важно, что я сразу не замахивался на ААА-проект.
Также я наметил определенные "реперные точки", то есть, ориентировочные даты, к которым я хочу сформировать код, начать тестирование и, наконец, разместить игру в сторе (дедлайн был один - 30 декабря). Сейчас я понимаю, что с одной стороны, сроки были достаточно жесткими (я планировал запустить игру до Нового года, при этом 10 дней до НГ у меня были отпускными), с другой стороны - я выпустил игру примерно за 2 недели раньше намеченного срока почти со всем намеченным изначально функционалом.
Ну и выдохнул...
Всё ж напряг был знатный, а там праздники, НГ, расслабон... Короче, желания продолжать не было. Как и желания делать другую игру.
Но всё же потихоньку я начал готовить следующий проект. Без спешки, без личных дедлайнов, буквально "на расслабоне". Раза в 2-3 менее интенсивно. Но... Хотелось выпустить игру до конца марта (ключевое слово - "хотелось", а не "планировалось"), так что... Короче, затянул на 1 день, но это даже к лучшему, потому что игра с небольшой долей юмора вышла ровно 1 апреля.
Короче, если Вы хотите сделать игру под смартфон, готовы стратить на это время (много времени), Вы целеустремленный и желающий развиваться человек - сделать игру "в соло" - вполне реально. Да, это (на первом этапе) будет что-то простое, без какой-то особой анимации и озвучки, но это уже может быть игра в духе (картинка с инета):
Хинт: "Игру" (если её можно так назвать) как на картинке, сегодня я легко сделаю за час-два (я не видел саму игру, речь только о том, что на картинке). Профи, кстати, за 10-15 минут в Юнити эту "фигню" "соберут", причем половина времени уйдет на работу самого движка (создание проекта, компиляция).
Короче, друзья-товарищи: если тема интересна, я могу ещё кое что рассказать. Например, о том, как формировать, условно, "дизайн-документ" (то есть, как продумывать игру) или о том, какие инструменты можно использовать при разработке игры.
P.S.: Картинки - из инета. Текст - прям весь мой (буквы - кириллица, знаки препинания - международные, могут даже где-то отсутствовать или присутствовать без веской причины).