Gameinfo.txt
January 2024
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ą.
gameinfo.txt
powinien znajdować się w katalogu gry każdego dewelopera pracującego przy modzie.Contents
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"
:
- Dodają ID ścieżki
"GameBin"
w<dir>\bin
. - 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"
:
- Dodają ścieżkę nazwaną
"MOD"
znajdującą się w tym samym folderze. - 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
January 2024