Работа с кодом игры
Материал из CryWiki Russia
DCamer (Обсуждение | вклад) (Новая страница: «В комплект поставки игрового кода входит исходный код GameDLL на языке C++ вместе с необходимы...») |
DCamer (Обсуждение | вклад) (→Frame Update) |
||
Строка 57: | Строка 57: | ||
Для добавления любой игре конкретной инициализации, рекомендуется заглянуть в ''CGame::Init()''. Эта функция вызывается один раз, при загрузки игры. Функция ''CGame::Shutdown()'' вызывается при выходе из игры. | Для добавления любой игре конкретной инициализации, рекомендуется заглянуть в ''CGame::Init()''. Эта функция вызывается один раз, при загрузки игры. Функция ''CGame::Shutdown()'' вызывается при выходе из игры. | ||
- | ==== | + | ==== Обновление фрейма ==== |
Любая функция, которая должна быть обновлена для каждого фрейма должна быть добавлена в одну из двух функций обновления. | Любая функция, которая должна быть обновлена для каждого фрейма должна быть добавлена в одну из двух функций обновления. | ||
<source lang="cpp">int CGame::Update(bool haveFocus, unsigned int updateFlags)</source> | <source lang="cpp">int CGame::Update(bool haveFocus, unsigned int updateFlags)</source> | ||
<source lang="cpp">void CGame::OnPostUpdate(float fDeltaTime)</source> | <source lang="cpp">void CGame::OnPostUpdate(float fDeltaTime)</source> |
Текущая версия на 22:05, 23 августа 2012
В комплект поставки игрового кода входит исходный код 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)