Przez pisanie tutaj skryptów mam na myśli nie tylko umieszczanie danych konfiguracyjnych w skrypcie, ale także skryptowanie części projektu, takich jak niektóre metody klasowe, testowanie specyficznej pętli gry itp. Nie byłoby to tylko przyspieszenie rozwoju, ale także pozwolenie graczom zobaczyć niektóre z nich skrypty poprawiające niektóre aspekty gry.
Niektóre języki, takie jak Lua, mają pewne opakowania, takie jak luabind, ale kiedy używałem go w przeszłości, miały problemy, ponieważ nie obsługiwały redefinicji metod w kontekście dziedziczenia.
Jakie są Twoje sugestie dotyczące używania języka lub opakowania?
źródło
Byłem lubić Chaiscript ; Nie używałem go zbyt długo, ale jak dotąd wydaje się dość solidny.
W przeciwieństwie do Pythona lub lua, jest on zbudowany od podstaw do użytku z C ++. Proces wiązania wydaje się o wiele czystszy niż w przypadku luabind / etc.
Oto podsumowanie strony:
źródło
Polecam Lua .
Python jest również bardzo popularny. Korzysta z niego wiele polecanych silników gier (na przykład Blender).
C ++ :: Boost ma bibliotekę do pracy z Pythonem.
Czytałem o Wiewiórce , ale jej nie użyłem .
Możesz przeczytać ten przegląd Game Engine . Jest
Scripting
kolumna. Widać, że Lua i Python są najpopularniejszymi językami skryptowymi.źródło
Dlaczego nie zbudować własnego?
Jeśli masz czas, cierpliwość i chęć do nauki - zawsze możesz spróbować opracować własny silnik skryptowy ze wszystkimi potrzebnymi funkcjami i składnią.
Zalety
Niedogodności
Czas. Niewiele osób to ma. Jeśli potrzebujesz czegoś TERAZ, wypróbuj już istniejący silnik (taki jak już zasugerowany).
Prędkość. Wiele istniejących silników skryptowych działa bardzo szybko - niestandardowe rozwiązanie może nie być tak szybkie.
Wielkość drużyny. Wiele istniejących silników skryptowych ma większe zespoły ludzi pracujących nad bazą kodu, niezależnie od tego, czy są to zespoły prywatne czy globalni wolontariusze, jest coś do powiedzenia na temat kodu, który jest sprawdzany i ponownie sprawdzany przez wiele innych osób.
Silnik skryptów wymaga pewnej ilości wstępnego planowania, aby skutecznie działać. Trzeba też zaimplementować wiele podstaw, które mogą wcale nie mieć związku z rzeczywistym silnikiem skryptów.
To nie jest wyczerpująca lista. Jeśli musisz wprowadzić wiele zmian w zapleczu istniejącego języka skryptowego, aby uzyskać pożądaną funkcjonalność, IMO prawdopodobnie powinieneś poszukać innego silnika, który będzie lepiej pasował do twoich wymagań lub po prostu zbuduj własny.
Zdaję sobie sprawę, że ludzie lubią rzucać się na „lenistwo” i „nie wymyślać na nowo koła”, ale myślę, że można coś powiedzieć o tym, jak się to robi. A konkretna implementacja prawdopodobnie będzie lepsza dla twojego projektu niż implementacja ogólna.
„Tworzenie systemów skryptowych w C ++” wydaje się być ulubionym artykułem (artykułami), które ludzie udostępniają podczas dyskusji na ten temat: http://www.gamedev.net/reference/list.asp?categoryid=76
źródło
Próbowałem Lua, Python, Scheme i Squirrel. Lua spisała się najlepiej; ma większą społeczność i lepsze wsparcie niż Squirrel oraz znacznie lepszą pamięć i parametry wydajności niż Python. Schemat działał również bardzo dobrze i ma naprawdę małego tłumacza, ale projektantom trudno było owinąć głowy funkcjonalnym językiem.
źródło
Oto linki do luabind i tolua, wrapperów dla lua / c ++
http://luabind.sourceforge.net/
http://www.tecgraf.puc-rio.br/~celes/tolua/
źródło