AngelScript

{{Short description|Game oriented compiled scripting language}}

{{Infobox programming language

|name = AngelScript

|title =

|logo =

|logo caption =

|screenshot =

|screenshot caption =

|paradigm = Multi-paradigm: scripting, imperative (procedural, object-oriented)

|family =

|year = 2003

|designer =

|developer = Andreas Jönsson

|latest release version = 2.37.0

|latest release date = {{Start date and age|2024|07|20}}

|latest preview version =

|latest preview date =

|typing = static, strong

|scope =

|implementations =

|dialects =

|influenced by = C++

|influenced =

|programming language =

|platform =

|operating system = Cross-platform

|license = zlib License

|file ext =

|fileformat =

|website = {{Official URL}}

}}

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.{{Cite web|url=http://www.iue.tuwien.ac.at/pdf/ib_2010/CP2010_Weinbub_1.pdf|title=ViennaIPD - An Input Control Language for Scientific Computing|last1=Weinbub|first1=Josef|last2=Rupp|first2=Karl|date=2010|access-date=April 27, 2019|last3=Selberherr|first3=Siegfried}}{{Cite web|url=http://accu.org/index.php/journals/1608|title=Simplifying the C++/Angelscript Binding Process|last=Golodetz|first=Stuart|date=February 2010|website=ACCU|access-date=April 27, 2019}} 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.{{Cite book|title=Game Programming Gems 6|last=Dickheiser|first=Michael|publisher=Charles River Media|year=2006|isbn=1584504501}} There are several differences of AngelScript and C++:

AngelScript is used in video game development,{{Cite journal|last1=Nishimori|first1=Taketoshi|last2=Kuno|first2=Yasushi|date=May 2012|title=Join token: A language mechanism for programming interactive games|journal=Entertainment Computing|volume=3|issue=2|pages=19–25|doi=10.1016/j.entcom.2011.09.001|url=https://tsukuba.repo.nii.ac.jp/?action=repository_action_common_download&item_id=33964&item_no=1&attribute_id=17&file_no=1|hdl=2241/00124828|hdl-access=free}} including

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,{{cite web|title= Hazelight/UnrealEngine-Angelscript on GitHub| website=GitHub |url = https://github.com/Hazelight/UnrealEngine-Angelscript|access-date = September 15, 2021}} the plugin is also used by Embark Studios in The Finals and the upcoming ARC Raiders.{{Cite web |title=Senior Gameplay Programmer - Games |url=https://careers.embark-studios.com/en-GB/jobs/1161763-senior-gameplay-programmer-games/ed57c5e4-f694-4bb6-9683-534edf92e029 |access-date=2023-11-23 |website=Embark Studios |language=en-GB}} It is also used at the University of Ulm in its interactive 3D-Animation program,{{Cite web|url=http://graphics.uni-ulm.de/lehre/showcases/animation/0405/index.php|title=Animal Race|date=2005|website=University of Ulm|language=de|access-date=2013-05-31|archive-date=2014-05-25|archive-url=https://web.archive.org/web/20140525232744/http://graphics.uni-ulm.de/lehre/showcases/animation/0405/index.php|url-status=dead}}{{Failed verification|date=April 2019}} as well as in robotics; for example, to program behavioral rules of robotic agents.{{cite conference|last1=Brandoff|first1=Josh|last2=Sayama|first2=Hiroki|year=2009|title=Cultural transmission in robotic swarms through RFID cards|conference=ALife'09|publisher=IEEE|pages=171–178|doi=10.1109/ALIFE.2009.4937709|isbn=978-1-4244-2763-5|book-title=2009 IEEE Symposium on Artificial Life}}

References

{{reflist}}