What do Adobe Photoshop Lightroom, Angry Birds, Apache HTTP Server, Apache Traffic Server, the Firefox web browser, MediaWiki, and World of Warcraft all have in common? They are all extensible using the cross-platform Lua programming language, winner of the 2011 Game Developer Magazine Front Line Award because:
Lua has become an extremely popular programming language, so much so that it's achieved a critical mass of developers in the game industry, meaning Lua skills are transferable from company to company. That's partly due to its speed and the ease with which developers can embed Lua into a game engine. This web page catalogs stand-alone programs that are written in or are extensible using the popular Lua programming language. If you know of any missing apps, can provide corrections or additional detail about any listed apps that lack a description, or have any relevant suggestions, your input will be appreciated. Please post to the Lua-l mailing list. You can subscribe at http://www.lua.org/lua-l.html. See also Lua Resource Links on this web site.
RIGHTS: This page's author, Paul E. Merrell, hereby waives all copyright and related or neighboring rights to this web page's content, pursuant to the Creative Commons CC0 Universal relinquishment of rights found at http://creativecommons.org/publicdomain/zero/1.0/. Last updated: 19 September 2013. This page is composed and maintained using the Lua-extensible NoteCase Pro, with several Lua scripts used in the page's production. Table of contents
What's NewAdded since the last major page update:
Related ListsWikipedia list of Applications Using Lua.Wikipedia list of Free Software Programmed in Lua. Wikipedia list of Lua Scriptable Software. Wikipedia list of Lua-Scripted Video Games. Wikipedia list of Lua-Scriptable Game Engines. AccessibilityAccessibility — Dolphin Computer AccessDolphin Computer Access uses Lua scripting to make inaccessible applications accessible for visually impaired computer users with their SuperNova screen reader.Business LogicBusiness Logic — Visual Business Logic Editor ToolkitVisual Business Logic Editor ToolkitVisual Business Logic Editor Toolkit is a visual domain-specific language toolkit in Lua. See also slides from Lua Workshop 2013 and online demo. It is often the case that, on one hand, there is a need to configure lots of intricate and ever-changing business logic rules, but, on the other hand, the person who has the most expertise on the particular business logic area – domain expert – often will not have a clue on how to write code effectively (or even at all). All kinds of clumsy UIs, spaghetti code, wasted dedicated scripter's hours and other unpleasantries stem from that problem. Business Logic Editor Toolkit alleviates that problem by providing a programmer with a set of tools to easily build a business-logic configuration UI, suitable for a non-programmer domain expert, and an easy, platform-agnostic way to seamlessly tie business logic configuration from that UI to an existing (or newly written) codebase, effectively creating a visual domain-specific programming language. The toolkit is written in Lua (plus some JavaScript) and it is a seventh generation implementation of the concept behind it. Contact toolkit@logiceditor.com for a price quote. AutomotiveAutomotive — Autosport LabsAutoSport LabsAutosport Labs exposes APIs to Lua for programming their Race Capture Pro Data Acquisition and Control system and their Megajolt Lite Programmable Ignition Controller. See e.g., API documentation for Race Capture Pro. Automotive — Mercedes-Benz AutosMercedes-Benz AutomobilesMercedes-Benz uses Lua in several models of their cars. See page 6 in the linked PDF. For what purpose(s), we do not yet know. Do you? If so, please let us know using the contact information near the top of this page. Command Line EnhancersCommand Line Enhancers — Take CommandTake Command Windows Command PromptTake Command is a comprehensive interactive GUI and command line environment that makes using the Windows command prompt and creating batch files easy and far more powerful. Take Command displays your command line applications in tabbed windows, with optional Explorer-style integration for a visual look at your folders. Take Command includes hundreds of Unix-like major enhancements to CMD commands such as COPY, DEL, and DIR, and adds more than 160 new commands, 587 internal variables and functions, a batch file IDE / debugger, advanced command line editing and completion, and thousands of other features. Take Command is the successor of the 4DOS command processor that substituted for Command.com in MS DOS and Windows 95. Since version 16.0, Take Command has shipped with an an embedded Lua interpreter. Database ManagementDatabase Management — DatalogDatalog is a deductive database system for memory constrained devices that can be manipulated with Lua.Database Management — MySQL Proxy
MySQL Proxy
MySQL Proxy is a lightweight binary application standing between one or more MySQL clients and a server. The clients connect to the Proxy with the usual credentials, instead of connecting to the server. The Proxy acts as man-in-the-middle between client and server. The Proxy ships with an embedded Lua interpreter. Using Lua, you can define what to do with a query or a result set before the Proxy passes them along. The power of the Proxy is all in its flexibility, as allowed by the Lua engine. You can intercept the query before it goes to the server, and do everything conceivable with it, like pass it along unchanged, fix spelling mistakes, rewrite the query, etc. Database Management — MySQL WorkbenchMySQL WorkbenchMySQL Workbench is a visual database design tool that integrates SQL development, administration, database design, creation and maintenance into a single integrated development environment for theMySQL database system. The program embeds Lua for its extensions and add-ons. Database Management — PL/Lua (PostgreSQL)
PL/Lua is an implementation of Lua as a loadable procedural language for PostgreSQL: with PL/Lua. You can use PostgreSQL functions and triggers written in the Lua programming language.
Procedural languages offer many extra capabilities to PostgreSQL, similar to C language extensions: control structures, more complex computations than allowed by SQL, access to user-defined types and database functions and operators, and restriction to trusted execution. PL/Lua brings the power and simplicity of Lua to PostgreSQL, including: small memory footprint, simple syntax, lexical scoping, functions as first-class values, and coroutines for non-preemptive threading. Database Management — Tarantool/Box NoSQL databaseTarantool/Box NoSQL database - uses Lua as a stored procedure language.EducationEducation — CelestiaCelestia, the astronomy educational program, uses Lua as its scripting language.File ManagersFile Managers — Far ManagerFar ManagerFar Manager is a program for managing files and archives on Windows operating systems. Far Manager can be extended with Lua in two ways: in macros and as plugins. Macros are the most common use of Lua with Far Manager. Starting from 30 Sept. 2012, Lua is used as a macro language instead of a primitive custom language that was used in earlier versions of Far. A "macro" in Far Manager is a user-written code that is executed whenever some event occurs (e.g. a key pressed, an editor opened/closed/saved, dialog opened/closed, etc.). Far Manager plugins are written in C/C++/Pascal but "macros" are written in Lua. Flight SimulatorsFlight Simulators — DCS: Black Shark
DCS: Black Shark
Eagle Dynamics "DCS: Black Shark" is a PC flight simulator of the Russian Ka-50 attack helicopter and is the first title in a new Eagle Dynamics and The Fighter Collection simulation series: "Digital Combat Simulator" (DCS). Following Eagle Dynamics' tradition of excellence, "DCS: Black Shark" will bring an even more realistic simulation experience than its predecessor "Flaming Cliffs". "DCS: Black Shark" will offer an unprecedented level of realism in regards to flight dynamics, instruments modeling, avionics systems, and weapon systems. The artificial Intelligence of ground vehicles and helicopters has been improved dramatically as well as weapon modeling. A new Mission Editor includes a powerful electronic mapping system that allows user to easily create missions and campaigns. A new campaign system allows the front line of the battlefield to move back and fourth according to your mission success or failure. Due to the increased flexibility of the DCS system, additional fixed-wing aircraft and helicopter add-ons will follow shortly.Lua is heavily used through whole project for game AI programming, configuration purposes and many more. Game Mission Editor is nearly completely implemented on Lua. Contact: [Sales] Game EnginesGame Engines — AGenAGenAGen serves as an interface between the system hardware and your game. It allows you to focus almost entirely on game logic thanks to its simple and lightweight framework. All of the Lua code is platform independent and will work with AGen distributions on iOS, Android, OS X, Windows, and Linux. AGen comes bundled with several Lua extensions for physics, pathfinding, networking, XML parsing and more. Game Engines — Aleph OneAleph One is a cross-platform 3D [FPS] game engine. Uses Lua 5.0 for in-game scripting (such as scenarios, mods and total conversions). (GPL.)Game Engines — ApocalyxApocalyx is a 3D engine for Windows/OpenGL. Completely scriptable with Lua 5.1. (GPL.)Game Engines — AromaAroma Lua 5.1 2D game engine for Google Chrome Native Client. Implements parts of the LÖVE Lua API to ease porting. (MIT license)Game Engines — bitsquidbitsquid is a game engine, enabling writing of a complete game using only Lua. Integrated Lua debugger and console. Live reload of Lua scripts. Artists can use Flow, a high level visual scripting language. To improve performance, freely mix Flow, Lua and C++.Game Engines — blitwizardblitwizard cross-platform 2D engine with easy networking, sound, physics. Completely scriptable with Lua 5.2. (zlib license)Game Engines — Cafu Game EngineCafu is an open-source game engine and graphics engine with multiplayer network support. It currently works under Windows and Linux (and Mac soon).It uses Lua mainly for map entity scripting and GUI scripts, see http://api.cafu.de/scripting/ for more details. Game Engines — CEGUICEGUI (Lua 5.0/5.1) a cross-platform library that provides windowing & widgets for graphics APIs/engines where such functionality is not natively available or severely lacking. Includes renderers for OpenGL, DirectX, Irrlicht, OGRE, Crystal Space, OpenSceneGraph; provides interfaces to write your own renderers. Uses Lua for scripting. (MIT license.)Game Engines — ElectroElectro is a cross-platform 3D visualization engine. Based on the MPI process model and designed for use on both cluster-driven tiled displays and desktop systems. Completely scriptable with Lua 5.1. (GPL.)Game Engines — Enigma Game Engine
The Enigma engine (also called the Blitzkrieg engine) is a game engine developed by Nival Interactive that is used in several real-time tactics video games.
Game Engines — GrimE Game Engine
GrimE (Grim Engine) is an adventure game engine, created by Bret Mogilefsky at LucasArts using the free software scripting language Lua. Many games are built atop this engine; 19 are listed here.
Game Engines — Logitech G15
Version 2.01 of the profile management software for Logitech’s G15 gaming keyboard uses Lua as its scripting language.
Game Engines — LÖVELÖVE is a framework to make 2D games with Lua. It's free, open-source, and works on Windows, Mac OS X and Linux. (zlib license.)Game Engines — LuxiniaLuxinia is a 3D open-source engine written in C that uses OpenGL, Lua, GLFW, OpenAL and ODE physics. As user you do not need any compilers but purely work with the high-level language Lua to code your projects. The engines design goals were:
The Luxinia 1.x engine is currently not actively developed anymore, however you still might find its games and usage appealing. Work on a new open-source rendering focused framework has started. Game Engines — Moai SDKMoai SDK 2D game engine for iOS and Android, Mac OS X, Windows and Google Chrome (Native Client). Completely scriptable with Lua 5.1. (CPAL license.)Game Engines — Multimedia Fusion Developer 2
Multimedia Fusion Developer 2 has a Lua extension that allows games and applications created with it to run Lua scripts.
Game Engines — Podball
Podball
Podball is a simple 2D ball game simulation and programming contest. The playing agents ("pods") are fully scriptable with Lua 5.2. (MIT license) Game Engines — ScruppScrupp is a cross-platform 2D game engine. Completely scriptable with Lua 5.1. (MIT license.)Game Engines — T—EngineT-Engine4 is a cross-platform 2D [roguelike] game engine. Supports both "old school" ASCII display and OpenGL/SDL graphics. Completely scriptable with Lua 5.1. (GPL.)Game Engines — VergeVerge is a cross-platform 2D game engine. Completely scriptable with Lua 5.1. (BSD license.)GamesIn case you're wondering why so many programs are listed in this page's Gaming category ---Lua was honored with the 2011 Game Developer Magazine Front Line Award in the programming tool category. Programming tool: Lua By Roberto Ierusalimschy, Luiz Henrique de Figueiredo, and Waldemar Celes Lua has become an extremely popular programming language, so much so that it's achieved a critical mass of developers in the game industry, meaning Lua skills are transferable from company to company. That's partly due to its speed and the ease with which developers can embed Lua into a game engine. Lua is also highly extensible -- it's simple to expand its functionality with libraries either written in Lua, or as extensions in other languages. And it's relatively small and simple, both in terms of the source files, and the resultant code and run-time memory usage. http://www.gdmag.com/blog/2012/01/front-line-award-winners.php Games — Allods OnlineGames — Angry BirdsGames — Aquaria (video game)Games — Baldur's GateGames — BallisticsGames — Bandits: Phoenix RisingGames — Bet On Soldier: Blood SportGames — Bionic CommandoGames — Bionic Commando RearmedGames — Bionic Commando Rearmed 2Games — BlitzkriegGames — Blitzkrieg 2Games — Blitzkrieg (video game)Games — Blossom (video game)Games — Brave: The Search for Spirit DancerGames — Brütal LegendGames — Bubble BallGames — Buzz!Games — BZFlagGames — Civilization 5
Civilization 5
(game) Games — Civilization VGames — Company of HeroesGames — Cortex CommandGames — CrackdownGames — Crimson -- Steam PiratesCrimson -- Steam PiratesGames — Crowns of PowerGames — CryENGINE2
Crytek.
CryENGINE2 is the successor of CryENGINE, the game engine behind Far Cry. Among others, the engine is used by Crysis, a first-person shooter game developed by Crytek and published by Electronic Arts. The use of Lua allows the setup and tweaking of weapons/game parameters, playing of sounds and loading of graphics without touching the C++ code. CryENGINE2 is also used in non-game applications like IMAGTP, a 3-D virtual visualization program. http://www.crytek.com/ Games — Crysis
Crysis is a science fiction first-person shooter video game developed by Crytek (Frankfurt, Germany), published by Electronic Arts for Microsoft Windows, and released in November 2007. It is the first game of a trilogy. A separate game entitled Crysis Warhead was released on September 12, 2008, and follows similar events as Crysis but from a different narrative perspective. Crysis, Crysis Warhead and a multiplayer expansion called Crysis Wars were re-released as a compilation pack titled Crysis Maximum Edition on 5 May 2009.
Games — Cuban Missile Crisis/The Day AfterGames — Daimonin MMORPG
Daimonin MMORPG
Daimonin is a MMORPG and is using Lua server sided as general purpose script engine. It is used in combination with the map editor as quest and communication interface but also as AI extension or event triggered inside a map.The base plugin to the C server and the scripts are hosted on the sourceforge project SVN/ Contact: [Contact] Games — Demigod (video game)Games — Diesel Game Engine
The Diesel engine is a game engine developed and used by GRIN. The engine was originally developed for their game Ballistics and has been used, albeit with modifications, in a number of other games since then.
Games — Digital Combat SimulatorGames — Diner DashGames — Driver: San FranciscoGames — Dungeon Crawl Stone SoupGames — Dungeons (video game)Games — Empire: Total WarGames — Enigma (video game)Games — Escape from Monkey IslandGames — Escape from Monkey IslandGames — Etherlords seriesGames — EufloriaGames — Evil Islands: Curse of the Lost SoulGames — ExoterraGames — Fable IIGames — Far Cry
Far Cry uses Lua extensively for scripting all game events and AI/game logic, both for single and multiplayer game, and for realtime game editing.
Games — FCEUXFCEUX is an open source Nintendo Entertainment System and Family Computer Disk System emulator. It is a merger of various forks of FCE Ultra.Games — FlatOut 2Games — FlatOut (video game)Games — Foldit
Foldit is an online puzzle video game about protein folding. The game is part of an experimental research project, and is developed by the University of Washington's Center for Game Science in collaboration with the UW Department of Biochemistry.
Games — Force - The Order Of Dawn
Force - The Order Of Dawn
Phenomic Game Development We use Lua for several parts of the project. We first chose it to be the language for mission scripting (triggers and other stuff), but currently we use Lua for mission scripting, sound scripting, data definition language, general preprocess tools and other uses. Contact: [Dirk Ringe] Games — Fortress ForeverGames — FreecivGames — Freelancer (video game)Games — Garry's Mod
Garry's Mod is a Half-Life 2 Modification. It won "Mod of the Year" (2005) from ModDB, "PC Mod of the Year" (2005) from GameSpy, and "Best Mod 2005" from PCGamer US. Lua opened a lot of doors to Gmod players, allowing them to script new weapons, gamemodes, and other features. There may never be any addition that was quite as great as Lua.
Games — Grim FandangoGames — Grim FandangoGames — Headhunter RedemptionGames — Hearts of Iron IIIGames — HedgewarsGames — Heroes of Might and Magic V
Heroes of Might and Magic V.
Ubisoft/Nival Interactive Heroes of Might and Magic V (HoMM5) is the fifth installment of the Heroes of Might and Magic computer game series. Lua is used for custom logics programming. The regular game process is programmed in C++, but all the high level functions (as hero movement, spell casting, changing resources or creatures quantity, placing map objects, creating text boxes, etc.) are also accessible from Lua script. Nival Interactive map and game designers use Lua for their needs because the language is simple to study and easy to use by non-programmers. And the programmers like Lua, because it can be easily bound to the existing C++ code and it's powerfull enough for a wide variety of applications. Games — Heroes of Might and Magic VGames — Homeworld 2
Homeworld 2
Relic Entertainment Inc Homeworld2 is a space PC RTS game that uses Lua4 extensively in almost every aspect of the game, including the UI, AI, game rules, game flow, stats, game attributes, game tuning and automation. Contact: [Shelby Hubick] Games — Hyperspace Delivery Boy!Games — Icy HellGames — Illarion
Illarion
Illarion e.V. Illarion is an open source graphical online roleplaying game that focuses on true roleplaying. Illarion uses Lua as scripting language since 04/2005. Among other systems, non-player-characters, quests, spellcasting, fighting and crafting are handled by Lua scripts. Started in 2000, Illarion evolved to a feature rich online game, mostly comparable to Ultima Online. Illarion is using a Java client, based on the Slick 2D Game Library. It is funded by the Illarion e.V. and can be played free of charge. Contact: [vilarion] Games — Impossible Creatures
Impossible Creatures Relic Entertainment Inc. Impossible Creatures is a PC RTS (real time strategy) game released on January 7th 2003. The project has 100's of thousands of lines of code and was written by ~8 programmers. Lua contributed about 50,000 lines of that code.Lua was used extensively in all aspects of the game. It was used to configure almost every system and subsystem in the game. It defined and controlled the UI, managed the AI, and specified the look of the effects and other graphical entities. It was used in tuning the game in realtime, for editing unit attributes, processing the game rules, automation of tasks, and on and on.Lua was chosen because of its speed, its simple syntax and its ease to understand for both programmers and designers. It was also easy to debug, modify and ite |
home >
