AngelScript is a game-oriented
compiled
In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily ...
scripting language
A scripting language or script language is a programming language that is used to manipulate, customize, and automate the facilities of an existing system. Scripting languages are usually interpreted at runtime rather than compiled.
A scripti ...
.
AngelScript features static
typing
Typing is the process of writing or inputting text by pressing keys on a typewriter, computer keyboard, mobile phone or calculator. It can be distinguished from other means of text input, such as handwriting and speech recognition. Text can ...
,
object handles (similar to
C++ pointers but garbage collected via
reference counting
In computer science, reference counting is a programming technique of storing the number of references, pointers, or handles to a resource, such as an object, a block of memory, disk space, and others.
In garbage collection algorithms, refer ...
),
object-orientation {{Broad-concept article
Object-oriented or object-orientation is a software engineering concept, in which concepts are represented as " objects". Object-oriented topics include:
* Object-oriented analysis and design
* Object-oriented design
* Objec ...
, single
inheritance
Inheritance is the practice of receiving private property, titles, debts, entitlements, privileges, rights, and obligations upon the death of an individual. The rules of inheritance differ among societies and have changed over time. Offici ...
,
multiple inheritance
Multiple inheritance is a feature of some object-oriented computer programming languages in which an object or class can inherit features from more than one parent object or parent class. It is distinct from single inheritance, where an object o ...
with interfaces. Allows operators to be registered and
overloaded. AngelScript can be used with any C++ IDE, such as
NetBeans
NetBeans is an integrated development environment (IDE) for Java. NetBeans allows applications to be developed from a set of modular software components called ''modules''. NetBeans runs on Windows, macOS, Linux and Solaris. In addition to Java ...
,
Geany
Geany (IPA:dʒiːni ) is a free and open-source lightweight GUI text editor using Scintilla and GTK, including basic IDE features. It is designed to have short load times, with limited dependency on separate packages or external libraries ...
, and
Eclipse
An eclipse is an astronomical event that occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ce ...
.
C and C++ functions can be called within an AngelScript environment. AngelScript's
class
Class or The Class may refer to:
Common uses not otherwise categorized
* Class (biology), a taxonomic rank
* Class (knowledge representation), a collection of individuals or objects
* Class (philosophy), an analytical concept used differently ...
syntax closely follows
C++ classes
A class in C++ is a user-defined type or data structure declared with keyword class that has data and functions (also called member variables and member functions) as its members whose access is governed by the three access specifiers ''privat ...
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 is a feature of some object-oriented computer programming languages in which an object or class can inherit features from more than one parent object or parent class. It is distinct from single inheritance, where an object o ...
. Multiple-inheritance functionality may be achieved with Interfaces.
* It is impossible to declare
method
Method ( grc, μέθοδος, methodos) literally means a pursuit of knowledge, investigation, mode of prosecuting such inquiry, or system. In recent centuries it more often means a prescribed process for completing a task. It may refer to:
*Scien ...
s or
properties
Property is the ownership of land, resources, improvements or other tangible objects, or intellectual property.
Property may also refer to:
Mathematics
* Property (mathematics)
Philosophy and science
* Property (philosophy), in philosophy an ...
outside of the class body.
* All methods (including
constructor
Constructor may refer to:
Science and technology
* Constructor (object-oriented programming), object-organizing method
* Constructors (Formula One), person or group who builds the chassis of a car in auto racing, especially Formula One
* Construc ...
s and
destructors) are
virtual
Virtual may refer to:
* Virtual (horse), a thoroughbred racehorse
* Virtual channel, a channel designation which differs from that of the actual radio channel (or range of frequencies) on which the signal travels
* Virtual function, a programming ...
.
AngelScript is used in
video game development
Video game development (or gamedev) is the process of developing a video game. The effort is undertaken by a developer, ranging from a single person to an international team dispersed across the globe. Development of traditional commercial PC ...
, 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
A puddle is a small accumulation of liquid, usually water, on a surface. It can form either by pooling in a depression on the surface, or by surface tension upon a flat surface.
A puddle is generally shallow enough to walk through, and too sm ...
'',
''
Rigs of Rods
''Rigs of Rods'' (''RoR'') is a free and open source vehicle-simulation game which uses soft-body physics to simulate the motion destruction and deformation of vehicles. The game uses a soft-body physics engine to simulate a network of intercon ...
'',
''
Sine Mora
is a shoot 'em up video game developed by Digital Reality and Grasshopper Manufacture for the Xbox 360, Windows, PlayStation 3, PlayStation Vita and iOS. It was released on March 21, 2012, for the Xbox 360 via Xbox Live Arcade, on November 20, 20 ...
'',
''
Star Ruler'',
''
SuperTuxKart
''SuperTuxKart'' (''STK'') is a free and open-source kart racing game, distributed under the terms of the GNU General Public License, version 3. It features mascots of various open-source projects. ''SuperTuxKart'' is cross-platform, runn ...
'',
''
Warhammer: Mark of Chaos'',
''
Warsow'',
''
Sven Co-op''
and ''
Jazz Jackrabbit 2 Plus'',
in addition to being supported as a scripting language in ''Urho3D''.
Hazelight Studios
Hazelight Studios is a video game development company based in Stockholm, Sweden. Founded by director Josef Fares in 2014, the company is best known for developing cooperative multiplayer games '' A Way Out'' and '' It Takes Two''. Both games we ...
maintains a plugin that integrates AngelScript into the
Unreal Engine
Unreal Engine (UE) is a 3D computer graphics game engine developed by Epic Games, first showcased in the 1998 first-person shooter game '' Unreal''. Initially developed for PC first-person shooters, it has since been used in a variety of genr ...
; this plugin was used to write their newest game, ''
It Takes Two'', in AngelScript. It is also used at the
University of Ulm
Ulm University (german: Universität Ulm) is a public university in Ulm, Baden-Württemberg, Germany. The university was founded in 1967 and focuses on natural sciences, medicine, engineering sciences, mathematics, economics and computer sci ...
in its interactive 3D-Animation program,
as well as in
robotics
Robotics is an interdisciplinarity, interdisciplinary branch of computer science and engineering. Robotics involves design, construction, operation, and use of robots. The goal of robotics is to design machines that can help and assist human ...
; for example, to program behavioral rules of robotic agents.
References
External links
*
* {{GitHub, BlindMindStudios/AngelScript-JIT-Compiler
Scripting languages
Software using the zlib license