AngelScript è un linguaggio di scripting compilato a sorgente aperta, pensato per lo sviluppo di videogiochi. È stato sviluppato da Andreas Jönsson per l'azienda AngelCode.

Descrizione AngelScript è caratterizzato da una tipizzazione statica delle sue variabili, un orientamento agli oggetti (simili ai puntatori C++, ma con la differenza che la pulizia della memoria di Angelscript adopera la tecnica del conteggio dei riferimenti), ereditarietà singola e multipla con l'ausilio di interfacce, nonché la possibilità di gestire un sovraccarico degli operatori. AngelScript può essere utilizzato con qualsiasi IDE che supporti C++ come: NetBeans, Geany ed Eclipse.

All'interno di un ambiente AngelScript si possono utilizzare nativamente le funzioni appartenenti ai linguaggi di programmazione C e C++. La sintassi della classe di AngelScript è identica a quelle delle classi di C++ in base alla progettazione. Non essendo necessarie funzioni proxy per incorporare AngelScript nelle applicazioni C++, viene facilitata l'integrazione dei due linguaggi.

Esistono diverse differenze tra AngelScript e C++:

AngelScript non tollera l'ereditarietà multipla; tuttavia, un simile risultato può essere ottenuto utilizzando le interfacce. Non è ammessa la dichiarazione dei metodi o proprietà al di fuori del corpo della classe. Tutti i metodi (inclusi costruttori e distruttori) sono virtuali.

Utilizzo AngelScript è stato più volte adoperato nello sviluppo di videogiochi, alcuni esempi sono: Amnesia: The Dark Descent, Amy, Dustforce, Penumbra: Ouverture, Penumbra: Requiem, Puddle, Sine Mora, SuperTuxKart, Warhammer: Mark of Chaos, Warsow e Jazz Jackrabbit 2 Plus, oltre ad essere tollerato come linguaggio di scripting in Urho3D.

Hazelight Studios ha sviluppato un plugin che integra AngelScript nell'Unreal Engine; è stato utilizzato nel 2022 per scrivere It Takes Two, di produzione della stessa Hazelight, in AngelScript.

Il linguaggio è anche utilizzato nel programma interattivo d'animazione 3D dell'Università di Ulm.

Nell'ambito della robotica, invece, può essere adoperato per programmare le regole comportamentali di agenti robotici.

Note

Collegamenti esterni

Categoria:Linguaggi di scripting