Squirrel (programming language)


Squirrel is a high level imperative, object-oriented programming language, designed to be a lightweight scripting language that fits in the size, memory bandwidth, and real-time requirements of applications like video games.
MirthKit, a simple toolkit for making and distributing open source, cross-platform 2D games, uses Squirrel for its platform. It is used extensively by Code::Blocks for scripting and was also used in Final Fantasy Crystal Chronicles: My Life as a King. It is also used in Left 4 Dead 2, Portal 2, Team Fortress 2, Thimbleweed Park, and War Thunder for scripted events and in NewDark, an unofficial Thief 2: The Metal Age engine update, to facilitate additional, simplified means of scripting mission events, aside of the regular C scripting.

Language features

Syntax

Squirrel uses a C-like syntax, albeit inspired by that of Lua as well.
;Factorial in Squirrel:
local function factorial // Getting function which is factorial, then getting value which is x

;Generators:

function not_a_random_number_generator
local randtor = not_a_random_number_generator;
for
print;

;Classes and inheritance:

class BaseVector
class Vector3 extends BaseVector
local v0 = Vector3
local v1 = Vector3
local v2 = v0 + v1;
v2.Print;

Applications

Applications using Squirrel

Games using Squirrel

Alien SwarmAntinomy of Common FlowersApex LegendsBattle BrothersContagionCounter Strike: Global OffensiveCRSED: F.O.A.D.Final Fantasy Crystal Chronicles: My Life as a KingGothic Online, a mod for Gothic IIGTA IV IV-MPLeft 4 Dead 2Liberty UnleashedMafia II M2-MultiplayerMelty Blood: Type LuminaNuclear DawnOpenTTDPortal 2Tom Clancy's Rainbow Six Siege Heated MetalShadow WarriorSimutransSonic Unleashed SuperTuxTeam Fortress 2Thimbleweed ParkThief II TitanfallVice City Multiplayer, a mod for Grand Theft Auto: Vice CityUnder Night In-BirthWar ThunderZero no Tsukaima - Maigo no Period to Ikusen no Symphony Zero no Tsukaima - Muma ga Tsumugu Yokaze no Nocturne

History

The language was made public in 2003 under the zlib/libpng license.
In November 2010, the license was changed to the MIT license to enable the project to be hosted on Google Code.
It is developed and maintained by Alberto Demichelis.