update docs and fix the symlinks

This commit is contained in:
Travis Shears 2026-04-26 20:30:12 +02:00
parent 6d5406c6c5
commit f96381f2f0
Signed by: travisshears
GPG key ID: CB9BF1910F3F7469
6 changed files with 810 additions and 831 deletions

View file

@ -1,33 +1,27 @@
# Löve2D Lisp Experiments
# Two Player Cleaning Game
This repo is my personal experiments in game dev with lisp. The games are written in
[Fennel](https://fennel-lang.org/) and use the [Löve 2D](https://www.love2d.org/) game engine.
Scripts for game data are wrtten in Clojure via [Babashka](https://babashka.org/). I use 2D pixel
tool [Aseprite](https://www.aseprite.org/) for painting and then [Tiled](https://thorbjorn.itch.io/tiled)
to create maps out of the sprites.
A two-player cooperative cleaning game built with [Fennel](https://fennel-lang.org/) and [Löve 2D](https://www.love2d.org/).
## Dev
## Setup
### Init
1. Install LÖVE 2D following the [Getting Started guide](https://love2d.org/wiki/Getting_Started)
2. Run the game with:
```bash
love ./two_player_cleaning_game
```
Follow steps at [here](https://love2d.org/wiki/Getting_Started)
to download, install, and add Love 2d to path.
## Architecture
Once done games can be started with `love ./game_dir`
The game uses Fennel (a Lisp dialect) compiled to Lua at runtime. Fennel setup is shared across projects via symlinks:
### Dir setup
- **fennel-1.5.3.lua** (root): The Fennel compiler
- **fennel_bootstrap.lua** (root): Module loader that auto-compiles `.fnl` files
Fennel setup copied from [~benthor/absolutely-minimal-love2d-fennel](https://git.sr.ht/~benthor/absolutely-minimal-love2d-fennel/tree/master/item/README.md).
Since fennel.lua and main.lua are the same for each game/project I put them on root level and soft linked to them
in the project folders.
The `two_player_cleaning_game` directory contains:
- **main.fnl**: Game source code (Fennel)
- **main.lua** → symlink to `../fennel_bootstrap.lua`: Entry point
- **fennel.lua** → symlink to `../fennel-1.5.3.lua`: Compiler reference
```
.
├── README.md
├── fennel-1.5.3.lua
├── fennel_bootstrap.lua
└── hello_world
   ├── fennel.lua -> ../fennel-1.5.3.lua
   ├── main.fnl
   └── main.lua -> ../fennel_bootstrap.lua
````
## Development
See [CLAUDE.md](./CLAUDE.md) for detailed development notes, including Fennel syntax and LÖVE2D API reference.