Co oznacza skrypt (Lua) w grze?

9

Czytałem, że Lua jest często używana do osadzania skryptów, aw szczególności do tworzenia skryptów. Trudno mi wyobrazić sobie, jak dokładnie jest używany. Czy możesz opisać, dlaczego i dla jakich funkcji i dla jakich odbiorców jest on używany?

To pytanie nie dotyczy konkretnie Lua, ale raczej osadzone skrypty, które służą celowi podobnemu do skryptów Lua .

Czy użytkownicy końcowi korzystają z niestandardowych ustawień? Czy twórcy gier używają go do przyspieszenia tworzenia logiki gry (poziomy, AI, ...)? Czy jest używany do pisania skryptów w ramach frameworka gry, ponieważ może on być szybszy?

Zasadniczo zastanawiam się, na ile głębokie jest między zwykłą konfiguracją a logiką frameworka, takie użycie skryptów. I ile skryptów zostało zrobionych. Kilka linii konfiguracji czy znaczna ilość?

Gerenuk
źródło

Odpowiedzi:

11

Język skryptowy w silniku gry ma na celu ujawnienie silnika gry w interpretowany sposób na wyższym poziomie.

Weźmy na przykład grę typu Skyrim. Zauważysz, że ma miejsce wiele zadań i interakcji, a niektóre z nich mają dość imponującą logikę, na przykład strażnik reagujący na zbliżanie się do przedmiotu podczas jakiejś sceny. Trudno to wyrazić w czystym formacie danych, dlatego zadania i niestandardowe zachowania są zazwyczaj wyrażane w postaci skryptów.

Należy również wziąć pod uwagę wiele praktycznych aspektów - twórcy gier, którzy tworzą te skrypty, często pracują na wyższym poziomie abstrakcji niż twórcy silnika gry; nie chcą się martwić o alokację pamięci itp. Język skryptowy jest dla nich odpowiedni, a dzięki LUA zazwyczaj wywołują ładną fasadę silnika na wysokim poziomie. Nie chcesz też ponownie kompilować gry za każdym razem, gdy chcesz dostosować atrybut minutowy w skrypcie.

Co więcej, umożliwiają łatwe debugowanie, modowanie i wszystkie inne miłe rzeczy, o których wspominałeś.

Daniel B.
źródło
3

Czy użytkownicy końcowi korzystają z niestandardowych ustawień?

Może być wykorzystywany do szerokiego zakresu celów, od konfiguracji po implementację dużej części logiki gry, np. Zależy od gry, ale Lua jest tylko wbudowanym skryptem. Ludzie mogą z nich korzystać tyle, ile chcą.


źródło
1
Niektóre gry pozwalają użytkownikom końcowym na wdrażanie własnych skryptów. Oprócz publicznego interfejsu API użytkownicy mogą implementować dodatki, widżety itp., Które reagują na zdarzenia w grze.
Laiv
1
Myślałam w RPG MMO :-)
LAIV
1
@Laiv IMO MMORPG to jedna z tych rzeczy, które wydają się tak fajne we wdrożeniu, ale podobne do grania przez długi czas, zamieniają się w taki grind. Świat gry musi być zazwyczaj tak statyczny, albo moderatorzy gry muszą być tak aktywnie zaangażowani. Myślę, że gry offline są o wiele fajniejsze do rozwijania, ponieważ możesz stworzyć bardzo dynamiczny świat z historią, która dobiega końca.
1
Nie? Nie. Wiele lat temu grałem w Allods Online. Gra miała mały interfejs API dla graczy do wdrażania dodatków i widżetów. Chciałem tylko rozszerzyć swoją odpowiedź o kilka przykładów :-)
Laiv
1
@Laiv Oh widzę! Jestem w trakcie usuwania mojego konta, ale zredagowałem swoją odpowiedź, aby była krótsza i słodsza. Podczas tego procesu straciłem trochę informacji, ale moja poprzednia edycja mówiła o tym, jak osobiście korzystałem ze skryptów. W tej chwili próbuję edytować wszystkie dane osobowe z moich odpowiedzi.
2

Może być używany przez osoby inne niż oryginalni programiści gier do modyfikowania lub rozszerzania logiki gry. Tacy ludzie mogą być stosunkowo nietechniczni, np. Projektanci gier lub użytkownicy końcowi (gracze).

Skrypty są zwykle językami wyższego poziomu i dlatego Lua jest łatwiejsza niż C ++. Kod napisany w skryptach można zwykle modyfikować bez ponownej kompilacji głównej aplikacji (silnika gry), co jest przydatne dla projektantów gier w celu szybkiego dostosowywania scen gier.

PS: lepiej zadaj to pytanie na gamedev.stackexchange.com

Legowisko
źródło