Domanda

sto sviluppando giochi semplici come un hobby. Per il mio nuovo progetto, voglio alcune parti da script. Sono a conoscenza di pitone, ma non mi dispiace imparare nuove lingue. Ecco la domanda:

Ho in programma di implementare il percorso di accertamento, campo di visione, Collision Detection ecc in C ++, ma voglio utilizzare script per macchine a stati AI, eventi script. Che tipo di struttura viene utilizzata per questo tipo di lavoro? Immagino che posso fare un programma C ++ eseguire un processo di pitone che a sua volta chiama i metodi C ++, ma sembra inefficiente. Un'altra idea è quella di sviluppare una libreria di essere chiamato in pitone, che non suona molto attraente sia. Qual è il modo normale di fare questo (tranne che per scrivere la mia propria lingua e parser?) Ho sentito Lua è popolare per l'incorporamento in programmi C.

È stato utile?

Soluzione

Dalla mia esperienza personale, sia lua e TCL hanno una fantastica API C per l'incorporamento. Entrambi i linguaggi sono molto semplici. Se si sta scrivendo un interfaccia di comando, probabilmente sarei dico andare con TCL, ma se si sta usando solo un interprete incorporato, mi consiglia di Lua. Dato che si sta utilizzando C ++, si potrebbe anche voler esaminare la luabind API, ho sentito buone cose su di esso.

Per AI scripting, o altro stato della macchina-tipo cose, questo post del blog da Zed Shaw è una buona lettura. Codice AI coroutine-based può sembrare un bello sacco per gli script complessi, invece di gestire un enorme mucchio di stati e le loro transizioni.

Se stai usando python, si potrebbe essere meglio estende anziché incorporare .

Altri suggerimenti

Eseguire un processo di Python? Nooo ....

Embed .

Per esperienza personale posso raccomando V8 motore Javascript di Google. E 'molto performante, scritto in C ++, è banalmente facile da incorporare, non ha altre dipendenze e un bellissimo interfaccia nativa.

http://code.google.com/p/v8/

Sono d'accordo che Tcl e Lua sono uno dei più facili da incorporare in un c / c ++ applicazione. Soprattutto perché quella era una decisione di progettazione fin dall'inizio. Un'altra lingua che è stato progettato per incorporamento è Guile.

Se siete interessati a incorporare un linguaggio di scripting in C ++ applicazione di dare un'occhiata a Swig . Sorso in grado di creare automaticamente il codice colla per un certo numero di linguaggi di scripting, tra cui Python che si conosce già. Il vantaggio principale è che gestisce molti linguaggi di scripting diverso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top