База знаний

Последнее изменение: 2025/10/10 19:39 — 127.0.0.1

Структура игрового движка

Эта статья описывает основную файловую структуру игрового движка. Знание расположения ресурсов, скриптов и инструментов поможет вам эффективно работать с проектом — будь то создание уровней, написание Lua-скриптов или разработка модификаций. Все пути указаны относительно корневой директории проекта.

Основные директории

Корневые файлы

  • me-build.json — техническая информация о сборке игрового движка.
  • preferences.json — настройки игрового движка.
  • servers.json — файл таблица серверов.

Bin32

Папка Bin32/ содержит исполняемые и прочие файлы, необходимые для запуска и работы движка.

Исполняемые файлы:

  • MERadiant.exe — редактор уровней (аналог GtkRadiant).
Папка также содержит лаунчеры для быстрого запуска конкретных уровней:
(Про работу и создание лаунчеров можно почитать — тут)
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.

Дополнительные инструменты обработки:

Узнать подробности можно тут

  • ME_Shaders.exe, ME_Texture.exe, ME_ModelLoader.exe, ME_MemTest.exe и др.

Contents

Основной контент игры: текстуры, модели, звуки, шейдеры, конфигурации уровней.

  • artwork\ — содержит графические элементы интерфейса (изображения, шрифты):
  • 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\ — исходный код лаунчера:
    • demo-engine\ — проект на C++ (main.cpp, .vcxproj).
    • API\ — заголовочные файлы и библиотеки для интеграции: me_engine.h, ME_Core.lib