Skrypt jest zwykle fragmentem kodu, który działa poza silnikiem podstawowym. Zwykle jest zawarty w plikach tekstowych, gdziekolwiek chcesz je przechowywać. Następnie jest zwykle ładowany przez silnik, analizowany i wykonywany w czasie wykonywania.
Zasadniczo dzieje się tak, że niezależnie od używanego języka (na przykład Lua, Angelscript), język ten zwykle ma pewne funkcje, które umożliwiają programistom silnika udostępnienie funkcji silnika, a nawet całych klas, instancji „silnika skryptowego”, który jest obecnie uruchomiony .
Na przykład (całkowicie głupi przykład, ale po to, aby uzyskać sens) kod gry może mieć funkcję publiczną, która odradza gdzieś zombie:
void SpawnZombie(int x, int y, int hp /* whatever else */)
{
//...
}
Język skryptowy, którego używasz teraz, umożliwia udostępnienie tej funkcji działającemu parserowi skryptów. Oznacza to, że możesz otworzyć plik tekstowy, napisać „SpawnZombie (200,300,1337)”, a gdy silnik wykona kod, zombie pojawi się w tym miejscu.
Inne odpowiedzi już wymieniają kilka dobrych przykładów tego, jak to jest typowo używane, ale pomijają jeden punkt, który uważam za bardzo ważny:
Tego rodzaju skrypty bardzo ułatwiają debugowanie lub testowanie rozgrywki w czasie wykonywania.
Powiedzmy, że chcesz wymyślić idealny sposób na umieszczenie zombie na mapie, aby miał maksymalny efekt odstraszania gracza, gdy tylko go odkryje. Bez obsługi skryptów będziesz musiał wyjść z aplikacji, zmienić niektóre magiczne liczby w kodzie, ponownie skompilować i przetestować.
Dzięki obsłudze skryptów (pod warunkiem, że masz już pewną metodę wprowadzania tekstu w czasie wykonywania, na przykład konsolę debugowania), wystarczy wpisać „SpawnZombie (333,444,555)” i zobaczyć, jak to wygląda.
W ten sam sposób możesz spawnować broń, pojazdy, ładować różne mapy, zmieniać wartości niektórych rzeczy w grze itp., Zaatakować wrogów, ponieważ nie chcesz tracić czasu na dotarcie do części, która musi być testowane itp.
Pozwoli ci to zaoszczędzić mnóstwo czasu w bardziej złożonych grach.