Создание сборки своей игры на базе CRYENGINE 5.3. Часть первая. Подготовка к запаковке.
Примечание: Ниже приведённая информация предназначена для людей, имеющих как минимум базовые знания по движку. Особенно хочу отметить, что это те люди, которые НЕ игнорировали официальную документацию и видеоуроки, а осваивали основные аспекты по движку, тщательно изучая материалы от Crytek. Это не стопроцентно детальное руководство, оно не поможет, если не знать основы, без которых представленные материалы вызовут только фрустрацию и ещё ряд неприятных переживаний.
Примечание: Для такого рода материала лучше подошёл бы формат wiki, но пока будет представлен в качестве записи в блоге.
Официальная документация по теме:
Тема весьма обширна, поэтому для удобства восприятия процесс описан в трёх частях:
- Подготовка к запаковке.
- Запаковка ресурсов.
- Чистка и заключительные оптимизации.
Создание сборки — это один из заключительных этапов оптимизации перед предоставлением игры пользователям. Речь пойдёт именно об отдельной от рабочего проекта сборке, которая будет независимым продуктом, подлежащим передаче игрокам и прочим конечным пользователям. Простыми словами, сделаем сборку игры, чтобы друг мог поиграть, ну или мама, а может эта игра даже попадёт в Steam . О компиляции игры на CRYENGINE в .exe тоже будет упомянуто. Финальный результат будет примерно такой:



На CRYENGINE 5 процесс подготовки сборки состоит из нескольких этапов:
- Export to Engine.
- Настройка конфигурационных файлов, в том числе для уровней графики. Будет упомянуто о белых списках команд ( whitelist) , а так же назначим иконку для окна игры в панели задач Windows и курсор тоже поменяем на свой.
- Запаковка ресурсов в . pak .
- Сборка библиотек и GameLauncher . Если планируется шифрование . pak, то нужно не забыть интегрировать key.h . По ходу статьи б удет предоставлен пример набора библиотек, которые необходимы для работы игры.
- Компиляция шейдерного кэша.
- Шифрование запакованных ресурсов.
- Проверяем результат формирования сборки.
- Тестирование сборки на работоспособность и исправление ошибок.
- Отправляем сборку игрокам.
Примечание: Crytek обещают доделать упрощённое создание сборки для CRYENGINE 5.4, но пока нормально работает только долгая и упорная сборка в ручном режиме .
По итогу операций получим:
- свои уровни
- настроенные конфигурационные файлы для оптимизации и прочей красоты
- сво ю иконку в панели задач и свой курсор
- з апакованные в . pak ресурсы (модели, текстуры, звук и прочее)
- скомпилированный и упакованный ш ейдерный кэш для оптимизации
- шифрование ресурсов
- отсутствие в сборке каталогов Code,Editor,logbackups,Toolsиuser
- отсутствиевсехэлементовредактора(Sandbox.exe)в сборке,так какихраспространениекатегорически запрещает лицензионное соглашение:http://docs.cryengine.com/display/CEPROG/Guide+to+releasing+CRYENGINE+V+projects#GuidetoreleasingCRYENGINEVprojects-CollectingFilesintoStaging
E xport to Engine .
Когда все работы на уровне завершены, необходимо произвести экспорт, чтобы уровень мог запуститься в GameLauncher.exe . На деле экспорт представляет собой упаковку данных по уровню в filelist.xml и level.pak , именно два этих компонента будут в составе релизной сборки, а остальные файлы по уровню в сборке не нужны, они предназначены для работы с уровнем в редакторе ( Sandbox.exe).

Для проведения экспорта уровня необходимо открыть его через редактор ( Sandbox.exe) и выбрать File / Export to Engine :

Процесс пройдёт довольно быстро и в консоли должен появиться такой вывод:

По Export to Engine всё.
Настройка конфигурационных файлов.
Конфигурационные файлы это обычные текстовые файлы с расширением . cfg. Создаются и редактируются стандартным блокнотом, Notepad++ и подобными текстовыми редакторами. С настройкой конфигурационных файлов уровней графики в CRYENGINE 5.3 можно ознакомиться здесь, а в этой статье разберёмся с настройкой локальных конфигов.
В CRYENGINE 5 поддерживаются whitelist — белые списки команд и диапазоны допустимых значений, что может существенно ограничить игроков в получении нежелательных возможностей. Официальная документация по теме: http://docs.cryengine.com/display/CEPROG/Guide+to+releasing+CRYENGINE+V+projects#GuidetoreleasingCRYENGINEVprojects-SettingupCVarWhitelist
Белые списки позволяют открыто размещать конфигурационные файлы, но их всё-таки лучше прятать в . pak и шифровать, конечно, если есть большое желание защитить игру.
Настройка system.cfg .
system.cfg — должен находится в корневом каталоге проекта. Если его нет, то создаём вручную, помня, что это обычный текстовый файл с расширением .cfg.

Каждый параметр нужно записывать с новой строки.
Два минуса — означают, что эта строка комментарий и её нужно пропустить при выполнении.
Пример параметров:
— ключевые параметры
— второстепенные
— отключение компиляции шейдерного кэша
Описание. Ключевые параметры.
sys_target_platforms=pc — указываем целевую платформу для проекта. При необходимости платформы перечисляются через запятую без пробелов : sys_target_platforms=pc ,linux,durango,orbis . В обычном случае нужно указывать только одну платформу. Сама процедура необходима для активации конфигурационных файлов под указанные платформы.
sys_game_folder=assets — указываем расположение контента игры. По умолчанию это каталог a ssets, но можно переименовать и указать любое название на латинице, без спецсимволов и пробелов.
sys_dll_game=CryGameSDK — указываем название основной библиотеки. По умолчанию это CryGameSDK. dll , но можно её назвать по своему, следовательно, в этом случае потребуется указать новое имя в поле значения для параметра sys_dll_game .
sys_localization_folder=languages — указываем каталог с файлами локализации.
s_AudioImplName=CryAudioImplWwise — указываем библиотеку звуковой системы. В движке реализовано три варианта: Wwise, FMOD и SDL Mixer. В данном примере используется Wwise.
Описание. Второстепенные параметры.
sys_game_name=»The Cursed Forest» — название приложения (игры), которое будет написано на рамке его окна при запуске в оконном режиме или свёрнутом состоянии.
r_WindowIconTexture=Assets\Textures\Icon.dds — назначение текстуры иконки для окна в панели задач Windows для запущенного приложения (игры) .
r_MouseCursorTexture=EngineAssets/Textures/Cursor_Green.dds — назначение текстуры для курсора.
sys_no_crash_dialog=1 — не показывать окно отправки о падении движка. Это функционал для редактора, который позволяет отправить параметры телеметрии в Crytek, чтобы, якобы, помочь им собрать статистику о падениях и исправить проблему. Игрокам такое явно не нужно, поэтому оставляем значение равное 1.
sys_vr_support=0 — если игра не рассчитана для использования VR- шлемов, то ставить значение на 0, чтобы при наличии подключенного шлема он не активировался за зря.
log_IncludeTime=1 — указывать время в логах.
log_Verbosity=- 1 — вести максимально короткий лог. Ведение подробных логов отнимает чуть-чуть производительности, поэтому игре лучше без них.
Описание. Отключение генерации шейдерного кэша.
В этом блоке речь пойдёт о параметрах, связанных с компиляцией шейдерного кэша. О нюансах этого процесса можно почитать в этой статье. Здесь лишь отмечу, что это очень важный этап оптимизации сборки игры на CRYENGINE 5, и упомяну пару параметров.
r_driver=DX11 и r_ShadersDX11=1 — эти два параметра указывают, что необходимо использовать заранее скомпилированный шейдерный кэш для DX11. Для CRYENGINE 5 . 3 и младше есть вариант шейдерного кэша OpenGL (GL 4 ), который предназначен для Linux, и шейдерный кэш для консолей, а для CRYENGINE 5 .4 добавился Vulkan (Vk).
Настройка autoexec .cfg .
Строится на том же принципе, что и system.cfg, но размещать его можно в pak- архиве, который в свою очередь можно зашифровать. В autoexec .cfg имеет смысл вносить те параметры, которые любопытным игрокам видеть и менять нежелательно. Сам по себе этот конфигурационный файл не обязателен.
Настройка g ame.cfg
Этот файл создаётся движком автоматически и вручную его настраивать не нужно. В него прописываются настройки графики, которые выставляются через опции внутри игры (уровень графики, разрешение экрана, гамма и прочее).
entities.xml
В CRYENGINE 5.3 и младше в этом файле прописываются все сущности, которые будут использоваться в игре. Без него игра работать не будет. В GameSDK его можно найти в scripts.pak и использовать для шаблона, чтобы дописать свои сущности.
Пример части содержимого:

defaultProfile.xml
defaultProfile.xml — это конфиг клавиш управления. В GameSDK находится в gamedata.pak:
L ibs\Config\defaultProfile.xml
Если нужно запретить какое-то действие, к примеру: полёт, рождение ( spawn) и подобное или переназначить клавиши для того или иного действия, то необходимо отредактировать этот конфиг.
Пример части содержимого:

Есть ещё различные конфиги, которые можно найти в Libs . С ними предстоит разбираться самостоятельно. Да-да, смотрите каждый файл, читайте комментарии в них, пробуйте найти информацию в официальной документации и на форуме Crytek.
Можно создавать свои особые конфиги в формате . xml с возможностью считывать и записывать значения из них с помощью специальных нодов FG . К примеру, можно реализовать изменение клавиш управления из меню игры, хранение уровня громкости, яркости, гаммы и тому подобного.
Замена текстуры курсора.
Рассмотрим простейшую возможность заменить стандартный курсор на свой. По умолчанию его текстура находится в EngineAssets/Textures/Cursor_Green.dds. Заменяем текстуру на желаемую и дело сделано.
Путь до текстуры можно изменить до желаемого места в директории проекта, прописав параметр r_MouseCursorTexture. Пример:

Описанный метод подходит только для статичного курсора, а анимированный придётся делать через Flash (если особо не выдумывать).
Разработка игр на движке CryENGINE
Вы творческая личность и хотите научиться создавать компьютерные игры? Специально для начинающих игроделов мы собрали лучшие видеоуроки, которые познакомят вас с основами движка и научат разрабатывать собственные игры в среде CryENGINE.
Предоставляется 2 мини-курса для изучения (один по версии SDK, а другой по Sandbox 2). И первый, и второй курс содержат много интересной информации по работе с CryENGINE и на благо вашей собственной грамотности, рекомендуем посмотреть все. С какого начать – решать вам. Главное начать!
Уроки CryENGINE 3 SDK
Сборник видеоуроков по популярному, современному игровому движку. Данный мини-курс содержит основные знания, которые проведут новичков через дебри функционала и помогут быстрее приступить к уверенному использованию CryENGINE. Ликбез по разработке видеоигр разбит на 6 уроков, общей длительностью 52 минуты. Этого мало, чтобы стать профессионалом или даже любителям, но вполне достаточно, чтобы получить ясные представления о работе движка. Приятного просмотра!
Скачать все уроки по CryENGINE 3 SDK
одним архивом
Видеокурс CryENGINE 2 Sandbox 2
Более подробный видеокурс по работе с игровым движком. Авторы уроков, на наглядных примерах, покажут, как пользоваться главными инструментами CryENGINE 2 и научат создавать собственные игры. Информация будет полезна новичкам, для более быстрого отрыва от нулевого уровня и более скорого перехода к любительской, а то и профессиональной работе. Мини-курс состоит из 10 видеоуроков, общей продолжительностью 1 час 34 минуты.
Как создать игру на cryengine
Game Logic
Tutorial assets
The tutorial asset pack is free and contains all the assets used in the tutorials. Any assets you need to complete a tutorial will be listed on the page.
Version 8 (396.78MB)
Building, debugging, and optimizing game mechanics and logic using the visual scripting tools in CRYENGINE 5.x, and creating game mechanics and custom plugins, defining characters, entity components, custom entites, installation and compiling using C++.

Programming with C++
View playlist

Getting Started With C++
View playlist

Entity Components with C++
View playlist

Player Character with C++
View playlist

Optimization & Debugging
View playlist

Physics with C++
View playlist

Schematyc (Experimental)
Как создать игру на cryengine
Game & Level Design
Tutorial assets
The tutorial asset pack is free and contains all the assets used in the tutorials. Any assets you need to complete a tutorial will be listed on the page.
Version 8 (396.78MB)
Every aspect of game and level design, from terrain and vegetation to materials, physics, and UI in CRYENGINE 5.x.

View playlist

View playlist

Vegetation
View playlist

UI with Flash 6
View playlist

UI in 5.7 LTS with Adobe Animate
View playlist

View playlist

Physics Constraints
View playlist

Physics and Flow Graph
View playlist

Using GameSDK Assets in non-GameSDK Projects