Difference between revisions of "Lua"

From RogueBasin
Jump to navigation Jump to search
(Adding Alchemist to list of roguelikes made using Lua)
 
(20 intermediate revisions by 10 users not shown)
Line 1: Line 1:
== Description ==
== Description ==


Lua is a very nice and easy to learn scripting language specifically designed to be embedable and able to represent complex data.
Lua is a very nice and easy-to-learn scripting language specifically designed to be embeddable and able to represent complex data.


== Features ==
== Features ==
* Clean syntax
* Clean syntax
* Simple yet extremely powerful and extensible datastructure, the tables, that can be used as hashtables, vectors, arrays, lists, namespaces, objects, ...
* Simple, yet extremely powerful and extensible, data structure: tables (can be used as hashtables, vectors, arrays, lists, namespaces, objects, ...)
* Easily embedable into existing projects
* Easily embeddable into existing projects
* Lightweight
* Lightweight
* Very fast
* Very fast
* Can be compiled to bytecode(actaully it always is, but the bytecode can be dumped to a file for later reuse)
* Compiled to bytecode, which can be saved to a file
* Easy integrated with all languages that can load C libraries (also [[FreePascal]]
* Easy integrated with all languages that can load C libraries (also [[FreePascal]]
* Many other nifty things ;)
* Many other nifty things ;)
* [[lua makes info files obsolete]]


== Roguelikes ==
== Roguelike libraries ==


Lua is probably the most popular scripting language for roguelikes. Some of the projects that use Lua:
* [https://github.com/SiENcE/astray Astray] (dungeon generation)
* [https://github.com/paulofmandown/rotLove/issues rotLove], a port of [http://ondras.github.io/rot.js/ rot.js] (partly designed for the [https://love2d.org/ LÖVE2D] graphics library)


* [[Angband]] - since 3.0.0 Angband supports Lua scripts.
== Lua Engines ==
* [[T-Engine]] is a fully fledged roguelike engine designed to be programmed in Lua
 
== Lua Roguelikes ==
 
Lua is probably the most popular scripting language for roguelikes.
 
===rotLove based===
* [[Zomia]] ([https://love2d.org/ LÖVE2D])
 
===T-Engine based===
* [[ToME]] - a good part of the engine is in Lua and the game itself will be completly in Lua in the next version.
* [[ToME]] - a good part of the engine is in Lua and the game itself will be completly in Lua in the next version.
* [[The Veins of the Earth]] made using T-Engine 4
* [[Bone to be Wild]] Runs with T-Engine from ToME.
* [[ODE]] Runs with T-Engine from ToME.
* [[Broken Bottle]] made using the T-Engine4
* [[Run from the Shadow]] made using the T-Engine4
* [[Harrowed]] made using the T-Engine4
===Slang based===
* [[Ascii Wilderness]] made entirely using Lua 5 and the Slang graphics interpereter.
===Standalone===
* [[Seduction Quest]] made using [https://love2d.org/ LÖVE2D].
* [[Alchemist]] made using [https://love2d.org/ LÖVE2D].
===Custom support===
* [[Angband]] - between Angband 3.0.0 and 3.0.6.  Since then it no longer supports Lua scripts.
* [[DoomRL]] - internally keeping all it's data in Lua. Since 0.9.9.1 a limited form of modding using Lua is possible.
* [[Portralis]] - uses Lua a lot to create monster attacks and complex story and quest events. Many gameplay mechanics are now entirely script-based, and future versions will aim to expand it's use even further.
* [[H-World]] - all modding in this engine is done through Lua scripts
* [[H-World]] - all modding in this engine is done through Lua scripts
* [[Tower of Doom]] - limited use of Lua (it is mostly used for dialog scripts)
* [[Necropolis (Timothy Pruett)]] Using Lua scripting and custom-built tools users can create new areas, classes, items, etc.
* [[Carceri]]


== Links ==
== Links ==

Latest revision as of 21:00, 13 November 2020

Description

Lua is a very nice and easy-to-learn scripting language specifically designed to be embeddable and able to represent complex data.

Features

  • Clean syntax
  • Simple, yet extremely powerful and extensible, data structure: tables (can be used as hashtables, vectors, arrays, lists, namespaces, objects, ...)
  • Easily embeddable into existing projects
  • Lightweight
  • Very fast
  • Compiled to bytecode, which can be saved to a file
  • Easy integrated with all languages that can load C libraries (also FreePascal
  • Many other nifty things ;)
  • lua makes info files obsolete

Roguelike libraries

Lua Engines

  • T-Engine is a fully fledged roguelike engine designed to be programmed in Lua

Lua Roguelikes

Lua is probably the most popular scripting language for roguelikes.

rotLove based

T-Engine based

Slang based

Standalone

Custom support

  • Angband - between Angband 3.0.0 and 3.0.6. Since then it no longer supports Lua scripts.
  • DoomRL - internally keeping all it's data in Lua. Since 0.9.9.1 a limited form of modding using Lua is possible.
  • Portralis - uses Lua a lot to create monster attacks and complex story and quest events. Many gameplay mechanics are now entirely script-based, and future versions will aim to expand it's use even further.
  • H-World - all modding in this engine is done through Lua scripts
  • Necropolis (Timothy Pruett) Using Lua scripting and custom-built tools users can create new areas, classes, items, etc.

Links