Thoughts on LUA?

This page summarizes the projects mentioned and recommended in the original post on /r/gamedev

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • lume

    Lua functions geared towards gamedev (by rxi)

  • Second, hot reload actually works and is usually instant. (lume has one you can adapt, I use gabe's class system and reload since it's already integrated). Since an instance of an object is a table, and functions on the object are elements in a table, you can swap out functions for their new values and keep your current state. By comparison, Unity's C# hot code reloading requires you to serialize your state because it needs to unload the AppDomain. It needs to rebuild the world with the new types. Most serialization occurs automatically, but often it doesn't and you need to add special callbacks to make it work. Regardless, for projects of any real size, it's slow. Not sure how Unreal's Live++ (Live Coding) works, but seems like you can't edit .h files.

  • gabe

  • Second, hot reload actually works and is usually instant. (lume has one you can adapt, I use gabe's class system and reload since it's already integrated). Since an instance of an object is a table, and functions on the object are elements in a table, you can swap out functions for their new values and keep your current state. By comparison, Unity's C# hot code reloading requires you to serialize your state because it needs to unload the AppDomain. It needs to rebuild the world with the new types. Most serialization occurs automatically, but often it doesn't and you need to add special callbacks to make it work. Regardless, for projects of any real size, it's slow. Not sure how Unreal's Live++ (Live Coding) works, but seems like you can't edit .h files.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • batteries

    Reusable dependencies for games made with lua (especially with love)

  • Lua is a small language and its "standard library" is very minimal. This was one of my initial roadblocks. Lua's intended for embedding so usually the host program provides a broader standard library by exposing functions to lua. However, there are several standard library packages for lua: batteries, Penlight, or the aforementioned lume. I'd definitely recommend checking these out to help get closer to functionality level of most other languages (I use both lume and batteries, but dropped penlight awhile back).

  • Penlight

    A set of pure Lua libraries focusing on input data handling (such as reading configuration files), functional programming (such as map, reduce, placeholder expressions,etc), and OS path management. Much of the functionality is inspired by the Python standard libraries.

  • Lua is a small language and its "standard library" is very minimal. This was one of my initial roadblocks. Lua's intended for embedding so usually the host program provides a broader standard library by exposing functions to lua. However, there are several standard library packages for lua: batteries, Penlight, or the aforementioned lume. I'd definitely recommend checking these out to help get closer to functionality level of most other languages (I use both lume and batteries, but dropped penlight awhile back).

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • I love that Lua can access file so simply using io.open, can Lua be used to delete, copy and paste folders?

    1 project | /r/lua | 4 Apr 2023
  • [discussion] Why don't more (any?) plugin authors use penlight?

    3 projects | /r/neovim | 30 Sep 2022
  • What would be the significant benefits if one would develop equivalent libraries that are available for Python for Lua/Nelua?

    4 projects | /r/lua | 18 Sep 2022
  • what does the luarocks variable LUA_INCDIR get used for?

    1 project | /r/lua | 29 Aug 2023
  • Luarocks doesn't work with LuaJIT

    1 project | /r/lua | 12 Apr 2023