Стоит ли попробовать Cocos Creator, если вы разрабатываете Web игры на Unity? Месяц назад я решил это узнать и теперь хочу поделиться с вами впечатлениями!
Что такое Cocos Creator?
Это китайский игровой движок с открытым исходным кодом. Его функционал включает:
- скелетную анимацию
- 3D физику
- систему частиц
- PBR материалы и освещение
Пример сцены, созданной с помощью Cocos Creator:
Среди доступных платформ есть Web, Android, Windows, Mac и iOS.
Знакомые моменты
Пользователи Unity с первых секунд заметят много знакомых элементов. Вот пару из них:
- Текущие проекты и версии редактора доступны в Cocos Dashboard (Unity Hub).
- Окошки редактора: иерархия, проект, инспектор, сцена и др.
- Система компонентов. Работает так же, как и компоненты в Unity.
- Сцены, объекты, префабы и т.д.
- Система частиц. Те же модули и принципы работы с ними.
Правда, с эффектом "хвоста" пришлось разбираться. - Материалы - окошко менее понятное, но суть та же.
И так далее.
Все основные системы, в той или иной мере, будут вам знакомы.
Отличия
Но что китайский движок нам предлагает нового?
Поверх привычных систем появляются маленькие улучшения жизни разработчика. Каждое из них делает привычные нам системы удобнее.
Это как?
Большая часть отличий - это детали знакомых систем и функционала.
Положительные
- Скорость редактора.
Все действия в редакторе выполняются мгновенно.
Не нужно каждый раз смотреть на "Compiling C# Scripts" после сохранения скрипта. - Прост в изучении.
При работе с Cocos Creator я искал ответы в поисковике гораздо реже, чем при работе с Unity. Это заслуга с одной стороны документации движка, а с другой - его интуитивно понятных систем.
"Всё работает так, как ты этого ожидаешь". - Интуитивно понятные системы.
Все компоненты и функционал очень упрощены по сравнению с Unity.
Открывая список компонентов, меню создания нового ассета или окошко настроек:
- сразу понятно, из каких простых элементов оно состоит,
- как с ними работать,
- что из этого можно сделать. - Документация, которую ОЧЕНЬ легко читать.
Читается как хороший учебник - обучив азам, плавно переходит к более сложным системам и механизмам.
Много иллюстраций и даже есть GIF с пошаговыми инструкциями. Написано очень простым языком.
Почему это занесено в отличия? В Unity документация менее информативная? Нет! Тут я хочу выделить именно "лёгкость чтения" документации в Cocos Creator. - Открытый исходный код
А если встретился момент, который описан недостаточно детально или без примера - всегда можно залезть в исходный код и посмотреть, как это реализовано в похожей системе. - Отладка сразу в браузере.
По нажатию "Play" игра будет открываться в окне браузера. А значит при каждой проверке вы увидите игру на целевой платформе. Сразу с реальными показателями производительности и общим видом игры. - Учтены особенности выпуска Web игр.
Полноэкранный режим включается при сборке проекта - готовить HTML-шаблон и стили не надо.
Система запуска аудио при старте игры тоже уже реализована. - Процесс оптимизации.
Механизмы оптимизации тут очень приятные. Работа с ними ощущается как игра. Они настолько меня увлекли, что я взялся оптимизировать даже то, что обычно в Unity не трогаю (атласы спрайтов для интерфейса и Bitmap шрифты).
ВАЖНО! В данном плюсе я имею ввиду именно сам процесс оптимизации, а не его результат. - Скорость работы с проектами.
18 секунд - открытие моего текущего проекта игры.
26 секунд - создание нового проекта (3D).
Чтобы проверить что-то с чистого листа, больше не надо ждать кучу времени на создание проекта. И отходить от компа пока запускается текущий проект тоже. - Скорость сборок.
7-25 секунд - сборка Web игры.
Ещё больше экономии времени разработчика. - Можно группировать поля "прямо из коробки".
Маленькая, но очень приятная мелочь. Я не мог не упомянуть её. - Можно отключить функции движка
Это сокращает размер конечной сборки. А ещё повышает производительность за счёт исключения неиспользуемого функционала. - Вес сборки
Конечная сборка моей игры весит всего 10 МБ, 5 из которых - это музыка и ещё пару МБ - это текстуры.
Отрицательные
Сказать, что у движка есть однозначные минусы, я не могу. Список, который я составил правильнее будет назвать "с чем нужно разбираться больше, чем со всем остальным".
- Нет официальной поддержки Linux.
Запустить движок на Linux (в том числе на Astra Linux) скорее всего возможно. Однако, мои попытки не привели к удобоваримым результатам. - Объем работ по оптимизации.
Хоть я и провёл много времени за оптимизацией игры - этого недостаточно. На текущий момент я не смог добиться желаемой плавности игры.
В сравнении с Unity, Cocos Creator требует большего объема работ по оптимизации. - Уступает по производительности (одновременное число объектов).
При минимальных затраченных усилиях на оптимизацию Unity работает лучше. Я проверял максимальное число активных объектов на сцене. Для оптимизации - GPU Inctancing.
Мой тест производительности дал такие результаты - Cocos Creator уступает и Built-In, и URP (SRP batcher), и URP (GPU instancing).
Детальную статью с демонстрацией теста (волны противников, идущие на игрока) я размещу позже и добавлю сюда ссылку.
ВАЖНО! Если вы хотите определить, какой движок будет более производительным для вас - проведите тест самостоятельно.
Разные механики показывают разную производительность!
???
Кому-то эти моменты будут плюсами. Кому-то нет.
- Type Script.
Для тех, кто уверенно пользуется C# - перейти не составит труда. Через день-другой вы сможете писать большую часть логик, иногда подсматривая в литературу или поисковики.
Для новичков - TypeScript выглядит проще чем C#. Изучить его с нуля должно быть легче.
Я бы отнёс это к плюсам, но это будет слишком субъективно. - Нет некоторых компонентов.
С одной стороны - недостающие функции можно написать самому. Например, собственноручно разбираться с отрисовкой UI в 3D пространстве мне понравилось.
Но перспектива самому писать AI для перемещения - уже немного другой вопрос. Поэтому можно воспользоваться плагинами от других разработчиков. - Scriptable Objects.
Мне их очень не хватало в процессе разработки. То и дело приходила мысль: "А с помощью SO это можно было бы сделать вот так ...".
НО это не значит, что отсутствие SO = помеха в разработке функционала игры. Скорее, дело привычки. - Маленькое сообщество разработчиков?
Согласно информации с официального канала, движок активно применяется в Китае.
Если вы знаете китайский - проблем с уроками быть не должно. Но если вы ищете материалы на английском - их число невелико.
С одной стороны, это минус - усложняется обучение.
С другой же стороны, доступной информации (документация, исходный код и имеющиеся уроки) более чем достаточно, для работы с таким интуитивно понятным и структурированным движком.
Cocos is the leader in China’s mobile game development, being the top game engine used in the country and the second most used in the world.
Мой итог - субъективно
Изучение Cocos Creator для меня было очень похоже на приключение!
По сравнению с Unity - Cocos Creator ощущается более простым в использовании, но не менее мощным движком.
Лёгкий, понятный и быстрый - я бы описал китайский движок так.
И я однозначно посоветовал бы его попробовать! Особенно тем, кто занимается разработкой Web игр на Unity. Ради новых идей и ощущений.
Больше узнать о Cocos Creator можно на официальном сайте.
Мой итог - объективно
Можно говорить разное о простоте. Но лучше показать на примере.
За месяц я с нуля изучил Cocos Creator.
... и Type Script.
Результатом стала моя новая игра - Прыгающая фасоль.
Попробовать игру можно на Яндекс.Играх:
https://yandex.ru/games/developer?name=COH%20KOTA
В игре вы сможете увидеть:
- чему я научился за один месяц с нуля
- как выглядит движок в действии
- производительность игры на своём устройстве
#cocos creator #Unity #gamedev #разработка игр #игровые движки
Надеюсь, в моей статье вы нашли для себя что-то полезное!
Что вы думаете о Cocos Creator?
А может вы уже пробовали этот движок - поделитесь вашими впечатлениями в комментариях!
P.S. Если у вас остались вопросы, не стесняйтесь их задавать!