Zastanawiam się nad jednym z moich starożytnych pomysłów na grę. Istotą tej gry byłby możliwy poziom funkcjonalnej personalizacji środowiska gry i obiektów (np. Zmiana zachowania broni statku kosmicznego). W tym celu gra musiałaby być skryptowalna. Nie zamierzam też tego komercjalizować, jest to dla mnie tylko interesujące wyzwanie programistyczne.
Ponieważ jestem głównie facetem .NET, do samej gry użyję XNA / C #. W przypadku skryptów myślę o pójściu z Pythonem lub Luą. Mam wcześniejsze doświadczenie z Pythonem i nie mam nic przeciwko temu jako językowi. Z drugiej strony Lua jest dla mnie prawie zupełnie nowa, poza kilkoma drobnymi modyfikacjami dodatków do World of Warcraft, które robiłem tu i tam, i wygląda to obiecująco. Oto moje pytanie:
Jakie są zalety i wady Lua vs. Python jako języka skryptowego dla platformy XNA / C #?
Czy jeden z nich jest znacznie łatwiejszy w użyciu z XNA / C #? Czy jedna z nich ma jakieś szczególne zalety lub wady, gdy jest używana z XNA / C #? Dlaczego poleciłbyś jeden do drugiego dla XNA / C #?
Odpowiedzi:
Nie mogę ich porównać, ponieważ do tej pory miałem tylko doświadczenie z osadzeniem IronPython w grze C #. Oto, co lubię w tym:
1) To proste! Pobierz biblioteki DLL IronPython, dodaj odniesienie w projekcie,
2) Jak widać z powyższego przykładu, IronPython faktycznie konwertuje do klas BCL, gdzie może. wynikiem skryptu jest System.Numerics.BigInteger zamiast PyObject
3) Słowo
dynamic
kluczowe w C # zostało stworzone dla sytuacji interop, w których nie masz dostępnego typu statycznego:źródło
IronPython i C # pasują do siebie, IronPython można dodać do C #, aby zwiększyć wydajność. Więc jeśli piszesz gry, to wywołania Pythona w C # są zaletą. Sam Python nie może korzystać z XNA, ale może korzystać z Directx, czego C # nie może zrobić bezpośrednio.
źródło