AngelScript

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,
 * 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.