Работа с кодом игры

Материал из CryWiki Russia

Перейти к: навигация, поиск

В комплект поставки игрового кода входит исходный код GameDLL на языке C++ вместе с необходимыми заголовочными файлами для доступа к большинству систем CryENGINE. Он урезан для пользователей, не имеющих доступа к полному коду движка. Лицензиат CryENGINE, который получил полную лицензию на код движка должен использовать только пакет кода движка, который уже включает в себя все файлы поставляемые в комплекте игрового кода.

GameDLL предоставляет разработчикам проект, в котором они могут реализовать класс игры на основе интерфейса IGame. Он также позволяет реализовать новый класс сущностей и расширения игровых систем (то есть движения транспортных средств, режим стрельбы или ИИ персонажей).

Содержание

Требование

Необходимое программное обеспечение

  • Microsoft Visual Studio 2010

Использование другой версии Microsoft Visual C++ может сделать GameDLL несовместимым с CryENGINE.

Использование STLport

STLport — это открытая реализация Standard Template Library (STL), который является более оптимизированной, чем реализации встроенная в Visual Studio. Мы настоятельно рекомендуем использовать STLport при сборке CryENGINE.

Исходный код STLport включен в CryENGINE SDK. Тем не менее, Visual Studio необходимо настроить на использование STLport вместо стандартной реализации STL, выполнив следующие действия:

  • Перейдите в Tools->Options (Сервис->Параметры) в главном меню и выберите VC++ Directories (Каталоги VC++) в разделе Projects and Solutions (Проекты и решения).
  • Выберите платформу Win32 и добавьте путь <CRY_SDK_ROOT>\Code\SDKs\STLPORT\stlport в самом верху в списках Include files (Каталоги включения) и Library files (Каталоги библиотек). Важно, чтобы путь STLport был выше стандартных путей включения и путей библиотек Visual Studio.
  • Повторите предыдущий шаг для платформы x64 и необязательно (в случае, если у вас есть поддержка консолей) для Xbox 360.

Файлы решения

В следующей таблице описываются файлы решения поставляемые с CryENGINE SDK.

Файл решения Описание
Code\Solutions\CryEngine.sln Решение поставляется для лицензиатов полного кода движка.
Code\Solutions\CryEngine_GameCodeOnly.sln Решение поставляется для других пользователей.

Решение CryEngine.sln поставляется только с полным исходным кодом движка. Содержимое решения CryEngine_GameCodeOnly.sln входит в CryEngine.sln.

Проект GameDLL может быть скомпилирован в конфигурациях Debug, Profile и Release.

Заголовочные файлы

Каталог Описание
Code\CryCommon Заголовочные файлы для всех интерфейсов CryENGINE.
Code\CryAction Включает заголовочные файлы фреймворка игры, которые включают реализацию Flowgraph, транспортных средств и так далее.

Заголовочные файлы из CryCommon и CryAction требуются для перекомпиляции GameDLL.

С чего начать

Инициализация

Код обработки инициализации игры CryENGINE содержится в Code\Game\GameDll\GameStartup.cpp. Функция CGameStartup::Reset() обрабатывает распределение и инициализацию интерфейс IGame.

Для добавления любой игре конкретной инициализации, рекомендуется заглянуть в CGame::Init(). Эта функция вызывается один раз, при загрузки игры. Функция CGame::Shutdown() вызывается при выходе из игры.

Обновление фрейма

Любая функция, которая должна быть обновлена для каждого фрейма должна быть добавлена в одну из двух функций обновления.

int CGame::Update(bool haveFocus, unsigned int updateFlags)
void CGame::OnPostUpdate(float fDeltaTime)