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 open source, pensato per lo sviluppo di videogiochi, sviluppato da Andreas Jönsson per l'azienda AngelCode[1].
AngelScript è caratterizzato da una tipizzazione statica, un orientamento agli oggetti (simili ai puntatori C++, ma con un garbage collection che usa la tecnica del conteggio dei riferimenti), ereditarietà singola ed ereditarietà multipla con interfacce, nonché la possibilità di gestire un overload degli operatori. AngelScript può essere utilizzato con qualsiasi IDE pensato per C++, come NetBeans, Geany ed Eclipse.
All'interno di un ambiente AngelScript si possono utilizzare nativamente le funzioni C e C++.[2][3] La sintassi della classe di AngelScript è identica a quelle delle classi di C++ in base alla progettazione. Non sono necessarie funzioni proxy per incorporare AngelScript nelle applicazioni C++ facilitando l'integrazione dei due linguaggi.[4]
Esistono diverse differenze tra AngelScript e C++:
AngelScript è utilizzato 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 supportato come linguaggio di scripting in Urho3D.
Hazelight Studios, inoltre ha sviluppato un plugin che integra AngelScript nell'Unreal Engine; questo è stato utilizzato nel 2022 per scrivere il loro gioco, It Takes Two, in AngelScript.
Un altro esempio di utilizzo è il programma interattivo di animazione 3D dell'Università di Ulm.[7] Nell'ambito della robotica, invece, si usa per programmare regole comportamentali di agenti robotici.[8]