Difference between revisions of "Lua"

From RogueBasin
Jump to navigation Jump to search
(Adding Alchemist to list of roguelikes made using Lua)
 
(18 intermediate revisions by 8 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]]
== Roguelike libraries ==
* [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)
== Lua Engines ==
* [[T-Engine]] is a fully fledged roguelike engine designed to be programmed in Lua


== Lua Roguelikes ==
== Lua Roguelikes ==


Lua is probably the most popular scripting language for roguelikes. Some of the projects that use Lua:
Lua is probably the most popular scripting language for roguelikes.


* [[Angband]] - since 3.0.0 Angband supports Lua scripts.
===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
* [[Carceri]]
* [[Necropolis (Timothy Pruett)]] Using Lua scripting and custom-built tools users can create new areas, classes, items, etc.


== 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