| Paradigm | Multi-paradigm: scripting, imperative (procedural, object-oriented) |
|---|---|
| Year | 2003 |
| Developer | Andreas Jönsson |
| Latest release version | 2.38.0 |
| Latest release date | August 8, 2025 (age 1) |
| Typing | static, strong |
| Influenced by | C++ |
| Operating system | Cross-platform |
| License | zlib License |
AngelScript is an open-source game-oriented compiled scripting language developed by Andreas Jönsson at AngelCode.
AngelScript features static typing, object handles (similar to C++ pointers but garbage collected via reference counting), object-orientation, single inheritance, multiple inheritance with interfaces. It 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]
- Jazz Jackrabbit 2 Plus,[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]
- Running with Rifles,
- Sine Mora,[5]
- Star Ruler,[5]
- SuperTuxKart,[5]
- Sven Co-op,[5]
- Warhammer: Mark of Chaos,[5]
- and Warsow.[5]
In addition, it is also supported as a scripting language in Urho3D. Hazelight Studios maintains a plugin that integrates AngelScript into the Unreal Engine; this plugin was used to write their game, It Takes Two, in AngelScript,[7] the plugin is also used by Embark Studios in The Finals and ARC Raiders.[8] It is also used at the University of Ulm in its interactive 3D-Animation program,[9][failed verification] as well as in robotics; for example, to program behavioral rules of robotic agents.[10]
References
- ^ Weinbub, Josef; Rupp, Karl; Selberherr, Siegfried (2010). "ViennaIPD - An Input Control Language for Scientific Computing". Retrieved April 27, 2019.
- ^ Golodetz, Stuart (February 2010). "Simplifying the C++/Angelscript Binding Process". ACCU. Retrieved April 27, 2019.
- ^ Dickheiser, Michael (2006). Game Programming Gems 6. Charles River Media. ISBN 1584504501.
- ^ 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:2241/00124828
- ^ "Applications using AngelScript". AngelCode. Retrieved April 27, 2019.
- ^ Orsvärn, Lukas; Riehl, Anton; Rosen, David (November 30, 2014). "A good episode". YouTube. Vol. 86. Overgrowth Weekly. pp. 17m 40s. Retrieved April 27, 2019.
- ^ "Unreal Engine Angelscript". Retrieved 2025-12-18.
- ^ "ARC Raiders Blueprint". Retrieved 2025-06-08.
- ^ "Animal Race" (in German). University of Ulm. 2005. Archived from the original on 2014-05-25. Retrieved 2013-05-31.
- ^ Brandoff, Josh & Sayama, Hiroki (2009). Cultural transmission in robotic swarms through RFID cards. ALife'09. IEEE. pp. 171–178. doi:10.1109/ALIFE.2009.4937709. ISBN 978-1-4244-2763-5.