Paradigm | Multi-paradigm: scripting, imperative (procedural, object-oriented) |
---|---|
Developer | Andreas Jönsson |
First appeared | 2003 |
Stable release | 2.37.0 / July 20, 2024; 4 months ago (2024-07-20) |
Typing discipline | static, strong |
OS | Cross-platform |
License | zlib License |
Website | angelcode |
Influenced by | |
C++ |
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. 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. 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. 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, including
- Amnesia: The Dark Descent,
- Amy,
- Dustforce,
- Gekkeiju Online,
- King Arthur's Gold,
- Legend of the Guardians: The Owls of Ga'Hoole,
- Overgrowth,
- Penumbra: Overture,
- Penumbra: Requiem,
- Puddle,
- Rigs of Rods,
- Running with Rifles,
- Sine Mora,
- Star Ruler,
- SuperTuxKart,
- Warhammer: Mark of Chaos,
- Warsow,
- Sven Co-op
- and Jazz Jackrabbit 2 Plus,
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 newest game, It Takes Two, in AngelScript, the plugin is also used by Embark Studios in The Finals and the upcoming ARC Raiders. It is also used at the University of Ulm in its interactive 3D-Animation program, as well as in robotics; for example, to program behavioral rules of robotic agents.
References
- Weinbub, Josef; Rupp, Karl; Selberherr, Siegfried (2010). "ViennaIPD - An Input Control Language for Scientific Computing" (PDF). 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. Overgrowth Weekly. Vol. 86. at 17m 40s. Retrieved April 27, 2019.
- "Hazelight/UnrealEngine-Angelscript on GitHub". GitHub. Retrieved September 15, 2021.
- "Senior Gameplay Programmer - Games". Embark Studios. Retrieved 2023-11-23.
- "Animal Race". University of Ulm (in German). 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". 2009 IEEE Symposium on Artificial Life. ALife'09. IEEE. pp. 171–178. doi:10.1109/ALIFE.2009.4937709. ISBN 978-1-4244-2763-5.