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
Отдельный каталог.

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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