Struktura pliku GameInfo.txt

From Valve Developer Community
Jump to: navigation, search
English Español Français Русский 日本語

Plik GameInfo.txt jest potrzebny narzędziom SDK i samemu silnikowi Source by wskazać co jest potrzebne poszczególnym MODom. Wskazuje które dane narzędia i silnik mają załadować. Czy dane Half-Life 2, Couter-Strike, czy też Half-Life 2: Deathmatch. Wskazuje także twój katalog z grą.

Uwaga: Tylko programista tworzący MOD potrzebuje edytować ten plik. W większości przypadków nie będziesz potrzebował tego robić, ale jeśli chcesz zrobić swoją grę bazującą nie na Half-Life 2 tylko innej grze, będziesz potrzebował go edytować. Kiedy ten plik jest zmieniony na potrzeby twojego MODa powinien on zostać rozpowszechniany razem z zawartością MODa. Plik gameinfo.txt powinien znajdować się w katalogu gry każdego dewelopera pracującego przy modzie.

Podstawowe użytkowanie GameInfo.txt

Główną rzeczą mającą związek z GameInfo.txt jest zmienna SteamAppId. Jeśli otworzysz GameInfo.txt to zobaczysz sekcję, która wygląda mniej więcej tak:

SteamAppId    220        // This will mount all the GCFs we need (240=CS:S, 220=HL2).

Wartość SteamAppId określa rodzaj użytych danych (z plików .GCF Stem'a), który jest dostępny dla tej gry dla tego GameInfo.txt.

Wartościami SteamAppId są:

Half-Life 2 220
Counter-Strike: Source 240
Half-Life 2: Deathmatch 320

Zaawansowane tematy GameInfo.txt

Ta część opisuje różne składniki GameInfo.txt trochę dokładniej.

ToolsAppId

Każdy plik GameInfo.txt powinien zawierać taką linię:

ToolsAppId    211

Jest to specjalny wartość, dzięki której narzędzia mogą załadować specjalną zawartość, która jest używana przez narzędzia, a nie jest przez gry.

SearchPaths

Dział SearchPaths pliku GameInfo.txt opisuje gdzie dane mają się znajdować, niezależnie czy na dysku twardym, czy w środku plików Steam'a. Żeby zrozumieć tą część, musimy pokazać w jaki sposób programiści używający silnika Source korzystają z plików gry. Wszystkie pliki, z których korzystają muszą istnieć w path ID. ID Ścieżki (Path ID) opisuje jedną lub wiele miejsc na twoim dysku lub w środku wirtualnego systemu plików Steam'a.

Na przykład do większości danych twojego moda, takich jak skrypty, dźwięki, modele i materiały, ma się dostęp w sekcji "Game". Programista może powiedzieć: "otwórz plik nazywający się scripts\weapon_m4a1.txt, który znajduje się w folderze o nazwie 'Game'". Jeśli uruchamiasz mod z C:\MyMod\Blasters i używasz SteamAppId 240, który wskazuje załadować dane Counter-Strike: Source, mógłbyś szukać w tych miejscach:

  • C:\MyMod\Blasters\scripts\weapon_m4a1.txt
  • <Katalog instalacji Steam'a>\Steam\SteamApps\username\Counter-Strike Source\cstrike\scripts\weapon_m4a1.txt
  • <w środku wirtualnego katalogu Steama>\cstrike\scripts\weapon_m4a1.txt

Używanie ID Ścieżki do określania gdzie pliki się znajduą, oszczędza programistom i artystom zmartiweń na temat różnych katalogów z danymi. Mogą oni używać nazw odpowiednich do katalgu gry (jak scripts\weapon_m4a1.txt lub materials\brick\brickwall001a.vmt) i silnik i narzędzia znajdą pełną ścieżkę do pliku gdziekolwiek on istnieje, tak długo, dopóki GameInfo.txt wskazuje co oznacza ID Ścieżki "Game".

W środku pliku GameInfo.txt znajduje się sekcja nazwana "SearchPaths", która opisuje ID Ścieżki. Większość MODów nigdy nie będzie musiała mieć tego modyfikowanych jeśli zostały stworzone przez narzędzie Create a Mod z pakietu narzędzi SDK.

Pierwszą częścią każdej lini jest nazwa ID Ścieżki, a drugą jest miejsce gdzie należy szukać plików kiedy używane jest ID Ścieżki. Pierwszy prosty przykład, który to ilustruje, ale możesz nigdy go nie używać (ponieważ używa on absolutnych ścieżek zawierających litery dysków, które mogą nie istnieć na dysku użytkownika) jest tutaj:

TestPathID C:\TestMod1
TestPathID C:\TestMod2
TestPathID C:\TestMod3

Jeśli programista, który pisze kod prosi o plik scripts\weapon_m4a1.txt i określi "TestPathID" jako ID Ścieżki w kodzie, wtedy silnik będzie szukał plików w tych miejscach:

  • C:\TestMod1\scripts\weapon_m4a1.txt
  • C:\TestMod2\scripts\weapon_m4a1.txt
  • C:\TestMod3\scripts\weapon_m4a1.txt

Gry na silniku Source posiadają większość danych w ID Ścieżki "Game". Jeśli posiadasz ID ścieżki nazwaną "Game", wtedy samoczynnie robią następujące rzeczy dla każdego wpisu ID ścieżki "Game":

  1. Dodają ID ścieżki "GameBin" w <dir>\bin.
  2. Dodają kolejną ścieżkę "Game", ale z _<language> na końcu. Na przykład: c:\hl2\cstrike otrzyma ścieżkę c:\hl2\cstrike_french dodaną do niej jeśli uruchamiasz MODa na komputerze francuzkojęzycznym.

Dla pierwszej ścieżki "Game":

  1. Dodają ścieżkę nazwaną "MOD" znajdującą się w tym samym folderze.
  2. Dodają ścieżkę nazwaną "DEFAULT_WRITE_PATH" (czyli DOMYŚLNĄ_ŚCIEŻKĘ_ZAPISU).

Domyślne SearchPaths, które może być użyte w MODzie wygląda tak:

Game        |gameinfo_path|.
Game        hl2

Zazwyczaj ścieżka określa względną do katalogu bazowego --katalogu gdzie znajduje się hl2.exe. Jeśli |gameinfo_path| poprzedza ścieżkę, wtedy jest to ścieżka względna do katalogu gdzie znajduje się GameInfo.txt. Na przykład jeśli plik GameInfo.txt jest w C:\MyMod\Blasters i posiada ścieżkę w stylu |gameinfo_path|JakisTestowyKatalog, wtedy ID ścieżki, które tworzysz może odysłać do:

C:\MyMod\Blasters\JakisTestowyKatalog

Dla Counter-Strike: Source, plik GameInfo.txt posiada SearchPaths, która wygląda mniej więcej jak ta powyżej. Jeśli twój katalog Counter-Strike to:

C:\Program Files\Valve\Steam\SteamApps\nazwa_uzytkownika\Counter-Strike Source

to wtedy będzie szukał w dwóch katalogach:

  • C:\Program Files\Valve\Steam\SteamApps\nazwa_uzytkownika\Counter-Strike Source\cstrike

ponieważ GameInfo.txt tam się znajduje.

  • C:\Program Files\Valve\Steam\SteamApps\nazwa_uzytkownika\Counter-Strike Source\hl2

który istnieje tylko w środku wirtualnego systemu plików Steam'a