Среда программирования
После непродолжительного изучения темы движков, я пришел к выводу, что самыми популярными движками являются Unity, на ЯП (Языке Программирования) C#, и Unreal Engine (далее UE, UE4 и UE5 - UE 4 и 5 версии соответственно), использующий C++.
Попадался еще Godot, но он как-то утонул среди UE, и Unity.
Вкратце ознакомился с особенностями этих движков, и сделал следующие выводы (возможно и ошибочные. Дайте знать в комментариях, ваше мнение о разнице движков. Самые интересные внесу потом в статью):
1) Из-за разных принципов выделения и очищения памятью между языками C# и C++ и разная методика слежением за памятью. В UE нужно вручную очищать ее, иначе память переполниться и все сломает, а в Unity очистка автоматическая, но если не оптимизировать ее использование, то будут ритмичные фризы.
2) UE4 больше применяется для разработки ААА (высокобюджетных игр) и, как правило, с очень проработанной графикой. То что создают на UE5 только углубило это предположение.
3) Unity больше популярно для мобильных и с простой графикой игр.
4) Unity проще в освоении на старте изучения.
5) При разработке на UE можно обойтись без знания C++, поскольку имеет свой язык Blueprints, который, на мой взгляд, проще в освоении и похож, если знаете такой, на FBD (язык функциональных блоков).
Пожалуй Unity
Немного посерфив вакансии, мне показалось, что на Unity-разработчиков спрос выше и начал изучать его. Нашел бесплатный курс и через 3 дня по часу в день была готова первая игра-аналог астероидам. На нем я ознакомился с азами интерфейса, логикой работы с Unity и мне понравилось в нем работать. Я начал активно самообучаться и выполнять тестовые задания.
Самое любопытное для меня оказалось задание разработки мини-игры, где нужно отстреливаться от врагов разных типов, но при этом можно самому настраивать характеристики врагов. Я назвал ее Smally.
Работа
Гиперказуал
Спустя некоторое время я присоединился к команде, которая занимается гиперказуальными играми.
это те самые игры, которые постоянно рекламируются с простым геймплеем и кучей рекламы:)
Что-то я разработал до бета-тестирования прототипа, но статистика показала, что мало кого они заинтересовали, поэтому разработку прекратили и даже в google play уже не найти.
Я и сам предлагал идеи, но они воплощались только до альфа-версий, так как у них "слишком сложный геймплей".
Что же это за игры были?
Не смотри, что где-то не сделана графика. Необходимо сначала реализовать геймплей, чтобы понять перспективы.
1) Cargo ship run. Суть в том, что тяжелый корабль перевозит пассажиров, и его надо провести по реке избегая столкновений с берегом и препятствиями, и собирать людей на плотах. При столкновении люди вылетают.
Это один из тех прототипов, что были загружены на Google Play.
2) Box jumper. Это уже моя идея. Суть игры в том чтобы из элементов как в тетрисе построить лестницу персонажу, который бродит в игре. Команда решила, что стоит перевести в 3D игру, стилизовать под lego и ставить по одному элементу. После создания прототипа руководство, сказало, что это слишком сложный геймплей. Ну и ладно. Сам сделаю.
3) Garbage sort. Моя идея, которая всем сначала понравилась. На стол падает кучка предметов и их нужно раскидать по соответствующим контейнерам. И там много вариантов типов предметов: металлы, органика, магический, энергия и т.д. Брать предмет можно только тот, на котором ничего не лежит. Механика была разработана и протестирована на досках. Идея разбора, соглашусь, не нова, но именно такой - не видел. В итоге тоже сказали, что слишком сложный геймплей да и слишком много их.
Это не все прототипы, но и остальные тоже не сыскали успех. Команда как-то перестала выходить на связь, и в итоге я ее покинул.
Музеи и выставки
На замену пришли ребята со стартапом, которые занимаются интерактивными экспонатами. Казалось бы, что общего между играми и музеями/выставками? Некоторые музеи или выставки создают свои экспозиции в игровой форме и используют самые разные современные технологии, и unity очень удобно было использовать для них.
Я писал программу для экспоната с трекером глаз, где курсором управляешь посредством взгляда, приложение с AR (дополненной реальностью), где по картинке создавалась 3D модель экспоната, симулятор центра связи с лунным модулем. В последнем задача была поймать и поддерживать сигнал с модулем настраивая частоту и положение антенны. Самое любопытное было то, что при этом вращался реальный макет антенны. Но моя любимая задача была разработка программы для камеры захвата движения orbbec. Это было в музее криптографии в Москве. Экспонат рассказывает про то, как происходит шифрование, а задача гостя управлять аватаром, который зеркалит твои движения, и в игровой форме шифровать информацию.
Очень забавно было смотреть, как дети играли с этим аватаром:)
К сожалению мне нельзя использовать видеоматериалы из музеев и продемонстрировать, как это выглядит. Мне музей очень понравился.
Если/когда у меня будет техника для демонстрации, то я выложу какие-нибудь примеры, работы с разными технологиями.
Для некоторых выставок были игры, где надо было бороться с вирусами, определять фальшивая ли банкнота и прочее.
Хобби
В общем я втянулся в Unity, и параллельно с работой начал разрабатывать свои игры, попутно изучая новые технологии. Правда главная проблема в том, что я не дизайнер, не иллюстратор и не звуковик, и оформить красиво пока не получается.
В следующих постах убедитесь :-D
А теперь хочу пригласить и тебя в мир геймдева. Мы вместе будем разрабатывать игры, вместе изучать новые технологии. Кода не будет, только логика, ход разработки и размышления. Надеюсь будет интересно.
__________________________________________________________
Спасибо за внимание!
Вот мы и подошли к самому интересному, к разработке. В следующем посте я кратко расскажу про ООП, как и обещал без кода, чтобы понимать скелет разработки, и вот после этого уже приступим к ней. Осталось немного:)
Не судите строго, если будут опечатки, неграмотности и подобное:) если укажете на ошибку, не обижусь, а исправлю ее)
Все изображения взяты из открытых источников.
Все ссылки можно посмотреть здесь