Module ubiquitousse

Ubiquitousse main module.

Set of various Lua libraries to make game development easier, mainly made to be used alongside the LÖVE game framework. Nothing that hasn’t been done before, but these are tailored to what I need. They can be used independently too, and are relatively portable, even without LÖVE.

This is the main module, which will try to load every other Ubiquitousse module when required and may even provide a few convenience functions.

This also perform a quick LÖVE version check and show a warning in case of potential incompatibility.

Regarding Ubiquitousse’s organization

Ubiquitousse may or may not be used in its totality. You can delete the modules directories you don’t need and Ubiquitousse should adapt accordingly. You can also simply copy the modules directories you need and use them directly, without using this file at all. However, some modules may provide more feature when other modules are available. These dependencies are written at the top of every main module file.

Ubiquitousse’s original goal was to run everywhere with the least porting effort possible, so while the current version now mainly focus LÖVE, it should still be easily modifiable to work with something else. Ubiquitousse is mainly tested on LuaJIT and Lua 5.3 but should also support Lua 5.1 and 5.2. In order to keep a good idea of how portable this all is, other dependencies, including LÖVE, are explicited at the top of every module file and in specific functions definition using the @require tag (e.g., — @require love for LÖVE).

Some modules are developped in Candran (.can files), but can easily be compiled into regular Lua code.

Units used in the API documentation, unless written otherwise:

  • All distances are expressed in pixels (px)
  • All durations are expressed in seconds (s)

These units are only used to make writing documentation easier; you can use other units if you want, as long as you're consistent.

Style:

  • tabs for indentation, spaces for esthetic whitespace (notably in comments)
  • no globals
  • UPPERCASE for constants (or maybe not).
  • CamelCase for class names.
  • lowerCamelCase is expected for everything else.

Regarding the documentation: Ubiquitousse used LDoc/LuaDoc styled-comments, but since LDoc hates me and my code, the generated result is complete garbage, so please read the documentation directly in the comments here until fix this. Stuff you're interested in starts with triple – (e.g., “—– This functions saves the world”).

UPDATE: I give up, currently in the process of admitting defat to LDoc and progressively porting all my documentation to it. Though I had to modify a few things to get LDoc to like me, so the documentation is generated using my LDoc fork.

Usage:

    local ubiquitousse = require("ubiquitousse")
    

Fields

version Ubiquitousse version string (currently "0.1.0").
asset Asset manager module, if available.
ecs Entity Component System, if available.
input Input management, if available.
ldtk LDtk level import, if available.
scene Scene management, if available.
signal Signal management, if available.
timer Timer utilities, if available.
util Various useful functions, if available.


Fields

version
Ubiquitousse version string (currently "0.1.0").
asset
Asset manager module, if available.

See also:

ecs
Entity Component System, if available.

See also:

input
Input management, if available.

See also:

ldtk
LDtk level import, if available.

See also:

scene
Scene management, if available.

See also:

signal
Signal management, if available.

See also:

timer
Timer utilities, if available.

See also:

util
Various useful functions, if available.

See also:

generated by LDoc 1.4.6 Last updated 2021-12-25 23:19:42