Skip to content

Custom materials.txt file #122

Description

@ChakkiSkrip

ValveSoftware/halflife#2340

В GS существует возможность указывать определённой текстуре тип материала. Благодаря такой возможности мы можем определять звук ходьбы/выстрелов по разным поверхностям (металл, дерево, бетон, грязь, трава, снег). Некоторые типы материалов, помимо звуковых отличий, имеют уникальные цвета спрайтов попаданий.
Основная проблема для мапперов такова, что оригинальный файл sound/materials.txt невозможно модифицировать у игроков при загрузке, да и было бы это грязно. Файл может изменить только сам пользоватедь игры. К тому же файл ограничен на количество записей.

Для решения этой проблемы предлагаю создавать отдельный файл материалов к карте, загружаемый по res файлу игроку. Далее клиент игры ищет файл с материалами по названию карты и держит активными основной materials.txt и пользовательский до смены карты. Либо содержимое пользовательского файла временно переносится в основной файл и выгружается при смене карты. По реализации не знаю что возможно и лучше.

Размещение же файла возможно по следующим путям:
1) maps/map_name_materials.txt
Одним из основных преимуществ этого варианта является близкое расположение к файлу .bsp и к другим текстовым файлам, вроде _detail.txt и файлу с описанием задачи на карте. Неудобство способа заключается в отдалённости map_name_materials.txt от основного файла materials.txt.

2) sound/materials_map_name.txt
Расположен рядом с основным файлом materials.txt. Позволяет пользователю быстро (нет необходимости переходить в другой каталог) вносить изменения в materials_map_name.txt на основе оригинального файла.
Возможность быстрого нахождения файла материалов от конкретной карты (при map_name_materials.txt имеем множество файлов, выполняющих одну задачу, но расположенных вперемешку с другими файлами, звуками).

3) sound/materials/map_name.txt
Отдельный каталог.

Другие варианты.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions