====== Структура игрового движка ====== Эта статья описывает основную файловую структуру игрового движка. Знание расположения ресурсов, скриптов и инструментов поможет вам эффективно работать с проектом — будь то создание уровней, написание Lua-скриптов или разработка модификаций. **Все пути указаны относительно корневой директории проекта.** ====== Основные директории ====== =====Корневые файлы ===== * ''me-build.json'' — техническая информация о сборке игрового движка. * ''preferences.json'' — настройки игрового движка. * ''servers.json'' — файл таблица серверов. ===== Bin32 ===== Папка ''Bin32/'' содержит исполняемые и прочие файлы, необходимые для запуска и работы движка. ==== Исполняемые файлы: ==== * ''MERadiant.exe'' — редактор уровней (аналог GtkRadiant). > Папка также содержит **лаунчеры** для быстрого запуска конкретных уровней: > (Про работу и создание лаунчеров можно почитать — [[/sdk/demo-engine|тут]]) >> ''demo-engine.exe'' — лаунчер по умолчанию. Запускает **пустую сцену** (базовый уровень без объектов). >> ''demo-engine_<название уровня>.exe'' — специализированный лаунчер для конкретного уровня. ==== Библиотеки: ==== * ''ME_Core.dll'', ''ME_Crypto.dll'', ''ME_Debug.dll'', ''ME_ModelLoader.dll'' — ядро движка и модули. * ''PhysX.dll'', ''PhysXCommon.dll'', ''PhysXCooking.dll'', ''PhysXDevice.dll'', ''PhysXFoundation.dll'', ''PhysXGpu.dll'' — библиотеки физического движка NVIDIA PhysX. * ''lua53.dll'' — интерпретатор Lua. * ''libvlc.dll'', ''libvlccore.dll'' — поддержка видео через VLC + плагины для VLC в отдельной папке plugins/. ==== Прочее: ==== * ''project.prj'' — конфигурационный файл проекта для MERadiant. * ''entities.def'' — определения игровых сущностей для MERadiant. * ''eula\'' — тексты лицензионных соглашений (EULA (End-User License Agreement) – это лицензионное соглашение с конечным пользователем). * ''videos\'' — видеофайлы (например, ''MoTeam.MPEG4''). * ''layered_material_library.txt'' — вспомогательный файл для запуска MERadiant. ==== Дополнительные инструменты обработки: ==== Узнать подробности можно [[/sdk/tools|тут]] * ''ME_Shaders.exe'', ''ME_Texture.exe'', ''ME_ModelLoader.exe'', ''ME_MemTest.exe'' и др. ===== Contents ===== Основной контент игры: текстуры, модели, звуки, шейдеры, конфигурации уровней. * ''artwork\'' — содержит графические элементы интерфейса (изображения, шрифты): * ''cfg\'' — конфигурационные файлы, узнать подробнее — [[/me/cfg|тут]]. * ''levels\'' — уровни игры: * ''папка <название уровня>'': * ''level.json'' — файл конфигурации настроек уровня. * ''objects.json'' — файл с описанием групп и размещением объектов. * ''meradiant.json'' — временный файл уровня для MERadiant. * ''objects\'' — игровые модели: * Файлы в формате ''.mep'' (описание модели), ''.ME2'' (модель), ''.mtx'' (скин). * ''shaders\'' — шейдерные программы: * Подразделяются на вершинные ''.chv'', фрагментные ''.chf'', геометрические ''.chg'' шейдеры для рендеринга OpenGL 3.3 * ''sounds\'' — аудиофайлы. * ''textures\'' — текстуры, разделены по тематическим папкам (к примеру, ''solids\'' - используется для моделей геометрии игрового мира): ===== Lua ===== Игровые и системные скрипты написаны на Lua. * ''_<название файла>.lua'' — здесь находятся системные скрипты, рекомендуем их не изменять! * ''map_<название уровня>_general.lua'' — запускается и работает на определенном уровне. * ''ui\'' — пользовательский интерфейс. * ''mp\'' — сетевая часть. * ''<прочие папки>\'' — остальные папки авторские. ==== SDK ==== Инструменты и исходный код для разработчиков. * ''samples\'' — примеры: * ''zavrazhe_terrain\'' — образец ландшафта в форматах ''.obj'', ''.mtl'', ''.tga''. * ''_units.jpg'' - скриншот: настройки единиц измерения в Autodesk 3ds Max. * ''_export.jpg'' - скриншот: пример настроек экспорта в Autodesk 3ds Max. * ''sources\'' — исходный код [[/sdk/demo-engine|лаунчера]]: * ''demo-engine\'' — проект на C++ (main.cpp, .vcxproj). * ''API\'' — заголовочные файлы и библиотеки для интеграции: ''me_engine.h'', ''ME_Core.lib''