AngelScript
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 non supporta 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.
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]
Note
[modifica | modifica wikitesto]- ^ Cos'è AngelScript? (di Andreas Jönsson), su www.solvusoft.com. URL consultato l'8 aprile 2024.
- ^ (EN) Josef Weinbub, Karl Rupp, Selberherr e Siegfried, "ViennaIPD - An Input Control Language for Scientific Computing" (PDF), su iue.tuwien.ac.at, 2010. URL consultato il 27 aprile 2019.
- ^ (EN) Stuart Golodetz, "Simplifying the C++/Angelscript Binding Process", su ACCU, febbraio 2010. URL consultato il 27 aprile 2019.
- ^ Michael Dickheiser, Game Programming Gems 6, Charles River Media, 2006, ISBN 1584504501.
- ^ Taketoshi Nishimori e Yasushi Kuno, Join token: A language mechanism for programming interactive games, in Entertainment Computing, vol. 3, Maggio 2012, pp. 19-25, DOI:10.1016/j.entcom.2011.09.001.
- ^ a b c d e f g h i j k Applications using AngelScript, su AngelCode. URL consultato il April 27, 2019.
- ^ (DE) Animal Race, su University of Ulm. URL consultato il 31 maggio 2013 (archiviato dall'url originale il 25 maggio 2014).
- ^ Cultural transmission in robotic swarms through RFID cards, IEEE Symposium on Artificial Life, 2009, DOI:10.1109/ALIFE.2009.4937709, ISBN 978-1-4244-2763-5.
Collegamenti esterni
[modifica | modifica wikitesto]- (EN) Sito ufficiale, su angelcode.com.
- (EN) AngelScript, su SourceForge.
- Repository sorgenti di AngelScript, su sourceforge.net.