Print Print
Reading time 3:12

ParadigmMulti-paradigm: scripting, imperative (procedural, object-oriented)
DeveloperAndreas Jönsson
First appeared2003
Stable release
2.35.0 / December 5, 2020; 6 months ago (2020-12-05)
Typing disciplinestatic, strong
Licensezlib License Edit this at Wikidata
Influenced by

AngelScript is a game-oriented compiled scripting language.

AngelScript features static typing, object handles (similar to C++ pointers but garbage collected via reference counting), object-orientation, single inheritance, multiple inheritance with interfaces. Allows operators to be registered and overloaded. AngelScript can be used with any C++ IDE, such as NetBeans, Geany, and Eclipse.

C and C++ functions can be called within an AngelScript environment.[1][2] AngelScript's class syntax closely follows C++ classes by design: no proxy functions are required to embed AngelScript in C++ applications easing the two languages integration.[3] There are several differences of AngelScript and C++:

  • AngelScript does not support multiple inheritance. Multiple-inheritance functionality may be achieved with Interfaces.
  • It is impossible to declare methods or properties outside of the class body.
  • All methods (including constructors and destructors) are virtual.

AngelScript is used in video game development,[4] including Amnesia: The Dark Descent,[5]Amy,[5]Dustforce,[5]Gekkeiju Online,[5]King Arthur's Gold,[5]Legend of the Guardians: The Owls of Ga'Hoole,[5]Overgrowth,[6]Penumbra: Overture,[5]Penumbra: Requiem,[5]Puddle,[5]Rigs of Rods,[5]Sine Mora,[5]Star Ruler,[5]SuperTuxKart,[5]Warhammer: Mark of Chaos,[5]Warsow,[5]Sven Co-op,[5]Jazz Jackrabbit 2 Plus,[5]Urho3D. AngelScript is used at the University of Ulm in interactive 3D-Animation program.[7][failed verification] AngelScript is also used in robotics, for example, to program behavioral rules of robotic agents.[8]


  1. ^ Weinbub, Josef; Rupp, Karl; Selberherr, Siegfried (2010). "ViennaIPD - An Input Control Language for Scientific Computing" (PDF). Retrieved April 27, 2019.
  2. ^ Golodetz, Stuart (February 2010). "Simplifying the C++/Angelscript Binding Process". ACCU. Retrieved April 27, 2019.
  3. ^ Dickheiser, Michael (2006). Game Programming Gems 6. Charles River Media. ISBN 1584504501.
  4. ^ Nishimori, Taketoshi; Kuno, Yasushi (May 2012). "Join token: A language mechanism for programming interactive games". Entertainment Computing. 3 (2): 19–25. doi:10.1016/j.entcom.2011.09.001. hdl:.
  5. ^ a b c d e f g h i j k l m n o p q "Applications using AngelScript". AngelCode. Retrieved April 27, 2019.
  6. ^ Orsvärn, Lukas; Riehl, Anton; Rosen, David (November 30, 2014). A good episode. YouTube. Overgrowth Weekly. 86. at 17m 40s. Retrieved April 27, 2019.
  7. ^ "Animal Race". University of Ulm (in German). 2005.
  8. ^ Brandoff, Josh; Sayama, Hiroki (2009). "Cultural transmission in robotic swarms through RFID cards". 2009 IEEE Symposium on Artificial Life. ALife'09. IEEE. pp. 171–178. doi:10.1109/ALIFE.2009.4937709. ISBN 978-1-4244-2763-5.

Edited: 2021-06-18 18:11:22