LNVL is no longer in active development, and has not been since late 2015.
For personal reasons I rarely contribute to code publically anymore,
and thus I have archived this project on GitHub since I have no desire
or intention to respond to pull-requests or bug reports. Nonetheless, I
give my complete support and blessing to anyone wishing to use this code
for any purpose. I am not the sole author of the LNVL codebase, but I
am the principle author, having written almost every line. For my part,
I release all LNVL code I've written to the Public Domain, and legally
release any claim of copyright for my work. The copyright remains
for the code I did not write. You can use Git (e.g. git-blame
)
to see exactly who wrote which lines, if that is important to you for
legal reasons; I have no authority nor wish to reliquinsh the copyright
of LNVL's contributors. If you want to have a "clean" (legally-speaking)
codebase to use, then I suggest you use Git to identify and then delete
all code authored by anyone except Eric James Michael Ritz.
Note: Git distinguishes between authors and committers; there is code for which I am the committer but not the author, and I do not release any such code to the Public Domain, only that for which I am both the author and committer.
-- ejmr, 10 May 2018
LNVL implements a simple visual novel component for use in games based on the LÖVE engine. LNVL provides only basic functionality and works best as an addition to another program which provides actual gameplay. The great Ren’Py engine is the main inspiration for LNVL, but this project does not attempt to be an all-encompassing visual novel engine like Ren’Py.
In order to use LNVL you first need to unzip it wherever you intend to
use that engine, i.e. where you will use require("LNVL")
in your
code. You must also initialize LNVL, providing (if necessary) the
path to the LNVL module. For example:
local LNVL = require("LNVL")
LNVL.Initialize("game.src.LNVL")
This example assumes that LNVL is in the ./game/src/LNVL/
directory
from the root of the game incorporating the engine. The documentation
at the beginning of the LNVL.lua
file explains this process in more
detail, as does the commentary for the function LNVL.Initialize()
,
which is in that same file.
Within the src
directory is the src/settings.lua.example
file.
Read through it to see how you can configure LNVL. However, do not
edit that file directly. LNVL expects to find a src/settings.lua
file, which is not part of the repository so that each installation
can have their own configuration. If you have GNU Make then you
can create this file by running make settings
from the project’s
top-level directory.
The docs
directory contains documentation for LNVL. Users who want
to write stories with LNVL will want to read the Howto.md
document.
The rest of the documentation is useful to computer programmers who
wish to extend or expand the engine. If you have the Pandoc
program then you can create HTML versions of these documents for
(arguably) easier browsing by running the make docs
command.
The examples
directory has scripts that demonstrate and test
different features of LNVL. However, they currently will not run
because most of them rely on images which are not included in the
repository. These images are currently assets borrowed from another
game project in development, but eventually they will be part of the
LNVL source. My apologies until then for the inconvenience in being
unable to run any of the examples.
Copyright 2012, 2013, 2014, 2015 Plutono INC.
All work by Eric James Michael Ritz belongs to the Public Domain as of 2018. Read the 'Status' section at the top of this document for details.
All of LNVL prior to the 10th of May 2018 is protected by the GNU General Public License, with two exceptions:
-
One file,
src/rgb.txt
, comes from the XFree86 project and therefore uses version 1.1 of their license. -
LNVL also uses
log.lua
, Copyright 2014–2015 rxi, released under the MIT license.
- Yusuke Tanaka for providing compatibility with LÖVE 0.9.1.
- The code for
LNVL.Debug.TableToString()
uses the work of Julio Manuel Fernandez-Diaz. - rxi for the
log.lua
library.
For Jeff, Ben, and Mira.
As part of releasing my work to the Public Domain, I also hereby request that future developers never remove this dedication from this documentation.
-- ejmr