Хорошая новость в том, что на нём гарантированно можно довести игру до завершения и стабильного состояния. И это важно, т.к. в процессе разработки у меня не было уверенности в удачном финале. У движка есть увесистые плюсы и минусы.
Cocos Creator 3 [1] - это китайский опенсорсный игровой движок, заточенный на разработку браузерных игр и интерактивных/игровых рекламных блоков. Он весьма популярен в Китае, и очень слабо известен в остальном мире.
В статистике Стима их набралось 740 штук, что равно примерно 0,9%. В принципе это весьма солидно. Вероятно тут в статистике очень хорошо помогли китайские коллеги. Сюда входят и игры на прошлых версиях Кокоса, который довольно сильно отличается от текущей третьей. Есть немного даже и популярных игр.
Сначала я перечислю всё то хорошее, что я смог выделить лично для себя. Так-то список хорошего возможно всё-таки больше, но я указал только важное для себя, разработчика-одиночки.
Это полноценный рабочий инструмент, на котором уже другие люди смогли добиться хорошего результата.
Это китайский движок, он бесплатный, опенсорсный, и есть основания полагать, что он не станет вдруг банить/блокировать российских разработчиков. С Construct, Unity, Unreal Engine, Phaser и т.д. у меня сомнений по этому поводу несколько больше.
Он заточен на браузерные 2D игры/рекламу и в итоговом билде вес от самого движка минимален. У меня при поверхностной оптимизации получилось меньше 2 МБ.
Язык разработки - typescript/javascript, и нет блюпринтов.
Интерфейс слизан с Unity, и он довольно удобный.
А теперь о сложностях, с которыми столкнулся я, и с которыми скорее всего столкнётся любой другой разработчик, впервые работающий с Кокосом.
1. Маленькое англоязычное и русскоязычное сообщество. В китайских соцсетях всё очень хорошо. А в остальных не очень.
- Есть туториал Флеппи Бёрда от самой команды Кокоса [4], что полезно, но разработка простого игрового процесса ооочень далека от разработки реальной игры. На их канале есть ещё туториал, но я не нашёл в нём чего-то дополнительно ценного.
- Есть англоязычные уроки[5], которые хоть и для 2-ой версии, но зато сжатые и краткие без воды.
- Есть русский туторила от Grozamir[6] - уроков у него немного, но зато он ещё ведёт группу в Телеграме, где я смог найти несколько решений для своих проблем.
Есть конечно ещё, но в процессе поиска Вы будете натыкаться на китайские туториалы, очень старые туториалы и онлайн-разработку. Если примеры для Вас важны - лучше выбирайте Unity или другие популярные.
2. Официальная документация неполная и иногда с ошибками. Простой пример. Вы захотите сохранять игровой процесс и попробуете воспользоваться официальным гайдом [7]. В реальности же, вы должны воспользоваться вот таким кодом: window.localStorage.setItem('configData', JSON.stringify(configData))
. А всё дело в том, что гайд написан для версии Кокоса 2.x, а в третьем всё по другому. И неважно, что на этой странице гордо висит плашка - актуализировано пару недель назад.
3. Во время модерации на Яндекс-площадку была выявлена ошибка, что при некоторых разрешениях экрана появляется горизонтальная и вертикальная прокрутки. В любом браузере. Это было не очень весело, но удалось выявить причину. В игровом блоке id=GameDiv
движок сам вычисляет ширину width=770px
. Так вот, иногда ширина экрана оказывается равна 769.6px
, а движок её округляет до 770
. При этом родительский блок самой игровой площадки выделяет 769px на игру.
Мы получаем лишний пиксель, который создаёт горизонтальную прокрутку. Но т.к. горизонтальная прокрутка тоже занимает место, то из-за неё возникает и вертикальная прокрутка. Я это исправил костылём, добавив в шаблон билда Кокоса для тега body css свойство overflow: hidden;
. Мне как-то казалось, что подобные проблемы не должны возникать в таких местах в игровых движках. Какая наивность.
4. Рынок труда. Он очень не очень для специалистов в Cocos Creator. Если Вы хотите работать в Геймдеве программистом, то найти хорошо оплачиваемую работу будет сложнее, чем с навыками в более популярных движках. Я работать в Геймдеве программистом не хочу, поэтому для меня этот пункт недостатком не является. Но для многих может.
О чём я не могу судить
Готовых ассетов немного, но я ими не пользуюсь, поэтому не принципиально.
3D есть и игру в нём сделать можно. Не пробовал, но беглый взгляд со стороны указывает, что тут всё слабовато с 3D. Мне в 3D сейчас не хочется, поэтому тоже не принципиально.
Меня несколько пугает процесс сборки билда под Стим, т.к. по косвенным признакам лёгким этот процесс назвать нельзя. Официального шаблона или гайда я не нашёл, а это уже тревожный признак.
Как результат, я доделал и опубликовал игру на Яндекс-площадке. Это слямзенная версия старой флеш игры "Sort the court", но только про злых и циничных гоблинов. Улучшил игровой процесс в меру своих возможностей, сделав 7 концовок и сильно уменьшив повторяемость диалогов оригинала. Прошу попробовать. Надеюсь, что фатальных багов не обнаружится. (перевёрнутый дварф после казни и воскрешения не считается)
Выводы
Я пока и сам не уверен, стоит ли соло-разработчику работать с Кокосом. Есть плюсы, но и много минусов. Если минусы Unity Вас не волнуют, то вероятнее всего он будет оптимальным выбором. А может даже Godot или Unreal, если Вас зовёт дорога приключений.