AngelScript linguaggio di programmazione | |
---|---|
Autore | Andreas Jönsson |
Data di origine | 2003 |
Ultima versione | 2.36.1 |
Utilizzo | Sviluppo videogiochi, grafica 3D |
Paradigmi | Script, programmazione imperativa, programmazione ad oggetti |
Tipizzazione | Forte |
Influenzato da | C++ |
Implementazione di riferimento | |
Licenza | zlib License |
Sito web | angelcode.com/angelscript/ |
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[1].
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++.[2][3] 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.[4]
Esistono diverse differenze tra AngelScript e C++:
AngelScript è stato più volte adoperato nello sviluppo di videogiochi,[5] alcuni esempi sono: Amnesia: The Dark Descent,[6] Amy,[6] Dustforce,[6] Penumbra: Ouverture,[6] Penumbra: Requiem,[6] Puddle,[6] Sine Mora,[6] SuperTuxKart,[6] Warhammer: Mark of Chaos,[6] Warsow[6] e Jazz Jackrabbit 2 Plus,[6] oltre ad essere tollerato come linguaggio di scripting in Urho3D.
Hazelight Studios ha sviluppato un plugin che integra AngelScript nell'Unreal Engine; l'hanno utilizzato nel 2022 per scrivere It Takes Two, il loro videogioco, in AngelScript.
Un altro possibile esempio d'uso del linguaggio è il programma interattivo d'animazione 3D dell'Università di Ulm.[7]
Nell'ambito della robotica, invece, può essere adoperato per programmare le regole comportamentali di agenti robotici.[8]