Yeah, that is an issue with the web build. The string.format function doesnβt cast books as strings in Lua 5.1 PUC like it does in luajit.
Alex βπ¨π¦
Creator of
Recent community posts
Itβs that time of year again! If anyone is interested in trying out love2d with Fennel check out the βminimalβ love2d fennel repo.
This repo is slowly expanding from a truly minimal setup to one that comes with a few batteries included. If you want a bare bones setup to get you started check out: absolutely-minimal-love2d-fennel by @benthor.
If you want to just start coding up some fennel and love with no makefile or manual installation on linux check out love-fennel
Where to Start?
I highly recommend checking out the blog posts by Phil Hagelberg about his use of fennel for his 2018 submission Exo Encounter 667. The source for which can be found here
There is also a built in REPL on the languages home page that you can test out the language! https://fennel-lang.org/
Fennel now has a pretty decent language server in fennel-ls. Currently it does not have completions for love2d, however it works really well to jump to your own code points. Iβd highly recommend checking it out!
Games Made Using Love2D and Fennel
By this point there have been dozens of games made with Love2D and Fennel, this is not an exhaustive list! If the source code is available for your game I can include it if you comment below.
- Exo Encounter 667 - Winner of the 2018 Spring Lisp Game Jam - https://gitlab.com/technomancy/exo-encounter-667
- Always Kill Your Heroes - Winner of the 2018 Fall Lisp Game Jam https://gitlab.com/alexjgriffith/always-kill-your-heroes
- Slime the World - https://github.com/TsarFox/slime-the-world
- Goo Runner - https://gitlab.com/technomancy/goo-runner
- Fallen - https://gitlab.com/alexjgriffith/fallen
- Energize - Winner of the 2019 Fall Lisp Game Jam - https://github.com/noisesmith/energize
- Welcome Home Sunsun - https://gitlab.com/alexjgriffith/welcome-home-sunsun
- Backpackless - Submission to the 2019 GMTK Game Jam - https://github.com/lockie/backpackless
- CTGA - Submission to the 2022 lisp game jam https://github.com/dawranliou/ctga
- Shelter Creak - Winner of the 2023 Spring Lisp Game Jam - https://github.com/dawranliou/shelter-creek
- Cube Land - Submission to the 2023 Fall Lisp Game Jam https://git.sr.ht/~technomancy/cube-land
- Waiting for a Bite - Winner of the 2023 Fall Lisp Game Jam https://git.sr.ht/~alexjgriffith/bite/tree
Other resources:
Recommended Libraries
You donβt need any libraries to make a game! The ones mentioned here help solve specific problems.
Lume
- Provides functional style functions, e.g. reduce, map, etc.
- Provides some nice to haves that are not available in the lua standard library like
lerp
andsplit
(for spiting strings).
ANIM8
https://github.com/kikito/anim8
If you need sprite animation, check out ANIM8!
Bump
https://github.com/kikito/bump.lua
Bump is an axis aligned bounding box collider. It has a bunch of useful built in presets for triggering actions following collisions. If youβre writing a platformer (without ramps) I highly recommend bump!
Tiled
https://github.com/karai17/Simple-Tiled-Implementation
If you use want to use Tiled (https://mapeditor.org) check out the Simple Tiled Implementation! It works well with bump.
There are many more libraries! Any library that works with Love and lua will work with Love and fennel.
Just getting started with LΓΆve2d and interested in lisp languages? Check out love2d with fennel!
A minimal setup can be found at:https://gitlab.com/alexjgriffith/min-love2d-fennel
What this setup provides:
- Build scripts for Mac, Windows, and Linux
- Included build tools to target HTML5 (Limited to LOVE 11.4) (example)
- Fennel Macro searchers!
- Error handling (boots you to a recoverable error screen)
- The latest version of fennel (1.4)
Note that this setup can be run on windows with mingw, but is primarily aimed at linux development.
Where to Start?
I highly recommend checking out the blog posts by Phil Hagelberg about his use of fennel for his 2018 submission Exo Encounter 667. The source for which can be found here
There is also a built in REPL on the languages home page that you can test out the language! https://fennel-lang.org/
Games Made Using Love2D and Fennel
This is not an exhaustive list! I can include your game if you comment below.
- Exo Encounter 667 - Winner of the 2018 Spring Lisp Game Jam - https://gitlab.com/technomancy/exo-encounter-667
- Always Kill Your Heroes - Winner of the 2018 Fall Lisp Game Jam https://gitlab.com/alexjgriffith/always-kill-your-heroes
- Slime the World - https://github.com/TsarFox/slime-the-world
- Goo Runner - https://gitlab.com/technomancy/goo-runner
- Fallen - https://gitlab.com/alexjgriffith/fallen
- Energize - Winner of the 2019 Fall Lisp Game Jam - https://github.com/noisesmith/energize
- Welcome Home Sunsun - https://gitlab.com/alexjgriffith/welcome-home-sunsun
- Backpackless - Submission to the 2019 GMTK Game Jam - https://github.com/lockie/backpackless
Other resources:
Recommended Libraries
You donβt need any libraries to make a game! The ones mentioned here help solve specific problems.
Lume
- Provides functional style functions, e.g. reduce, map, etc.
- Provides some nice to haves that are not available in the lua standard library like
lerp
andsplit
(for spiting strings).
ANIM8
https://github.com/kikito/anim8
If you need sprite animation, check out ANIM8!
Bump
https://github.com/kikito/bump.lua
Bump is an axis aligned bounding box collider. It has a bunch of useful built in presets for triggering actions following collisions. If youβre writing a platformer (without ramps) I highly recommend bump!
Tiled
https://github.com/karai17/Simple-Tiled-Implementation
If you use want to use Tiled (https://mapeditor.org) check out the Simple Tiled Implementation! It works well with bump.
Priority management was a big issue for me. I spent the first week getting the art style and systems locked in. It wasnβt until the second week that I had solidified my concept and the last few days before I had the actual story beats down. Not great for a narrative game.
If I were to do it again I would start day 1 with the narrative and work backwards from there to just implement the subset of systems I needed.