chewbranca.com

Check-in [81a2da5f37]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Convert readme.org to readme.md
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | lisp-game-jam-2020
Files: files | file ages | folders
SHA3-256: 81a2da5f3703dcfcf25d950ae81a79cd1b16a498e2a4be72824a4080d16318c0
User & Date: chewbranca 2020-04-10 06:28:09
Context
2020-04-11
22:24
Update game width and height check-in: 8bf3ecc3e8 user: chewbranca tags: lisp-game-jam-2020
2020-04-10
06:28
Convert readme.org to readme.md check-in: 81a2da5f37 user: chewbranca tags: lisp-game-jam-2020
06:11
Initial Fahombo project and import of https://gitlab.com/alexjgriffith/min-love2d-fennel check-in: 25cf6d1f59 user: chewbranca tags: lisp-game-jam-2020
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Name change from src/fahombo/readme.org to src/fahombo/readme.md.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

28
29
30
31
32
33
34
35
36
37
* Chewbranca's Fahombo

Partake in Nias's ceremonial stone jumping!

* This project based on the min Fennel setup by Technomancy and Alexjgriffith

  - technomancy: https://gitlab.com/technomancy/exo-encounter-667
  - alexjgriffith: https://gitlab.com/alexjgriffith/min-love2d-fennel

* Original readme.org follows

-----

* Minimal Fennel Love2D Setup

In a lead up to the annual [[https://itch.io/jam/autumn-lisp-game-jam-2018][Autumn Lisp Game Jam]] I thought I'd look into Phil Hegelberg's approach to last Aprils Jam, using [[https://love2d.org/][love2d]] in concert with [[https://fennel-lang.org/][fennel]]. Phil outlines his approach on his [[https://love2d.org/][blog]].

The first step is to see how fennel works as a standalone execution environment, then slowly integrate some of the love2d API.

This repo contains the minimal viable setup to get started with Phil Hegelberg's game design process, plus some additional libraries.

#+BEGIN_SRC bash
PROJECT=project-name
git clone https://gitlab.com/alexjgriffith/min-love2d-fennel.git $PROJECT
cd $PROJECT
rm -rf .git
#+END_SRC


* Phil's Modal Callbacks (PMC)
Phil Hegelberg's [[https://gitlab.com/technomancy/exo-encounter-667/][exo-encounter-667]] is structured using a modal callback system. Each game state has a mode and each mode has a series of specific callbacks.

If you design your game as a series of states in a very simple state machine, for example *start-screen*, *play* and *end*, with unidirectional progression, you can easily separate the logic for each state into state/mode specific callbacks. As an example, in order to have state dependant rendering that differs between start-screen,play and end you could provide a *draw* callback for each of those states. Similarly if we need state dependent logic and keyboard input we could provide *update* and *keyboard* callbacks. As you iterate you can add and remove callbacks and states/modes as needed with very little friction.


* Emacs Setup
Once you install the latest version of [[https://gitlab.com/technomancy/fennel-mode][fennel-mode]], you can run
=C-u M-x fennel-repl= followed by =love .= to launch a repl.
|

|

|




|



|

|





|




<
>

|
|




|
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

27
28
29
30
31
32
33
34
35
36
37
# Chewbranca's Fahombo

Partake in the Fahombo rite of passage!

# This project based on the min Fennel setup by Technomancy and Alexjgriffith

  - technomancy: https://gitlab.com/technomancy/exo-encounter-667
  - alexjgriffith: https://gitlab.com/alexjgriffith/min-love2d-fennel

## Original readme.{org,md} follows:

-----

# Minimal Fennel Love2D Setup

In a lead up to the annual [Autumn Lisp Game Jam](https://itch.io/jam/autumn-lisp-game-jam-2018) I thought I'd look into Phil Hegelberg's approach to last Aprils Jam, using [love2d](https://love2d.org/) in concert with [fennel](https://fennel-lang.org/). Phil outlines his approach on his [blog](https://love2d.org/).

The first step is to see how fennel works as a standalone execution environment, then slowly integrate some of the love2d API.

This repo contains the minimal viable setup to get started with Phil Hegelberg's game design process, plus some additional libraries.

```
PROJECT=project-name
git clone https://gitlab.com/alexjgriffith/min-love2d-fennel.git $PROJECT
cd $PROJECT
rm -rf .git

```

# Phil's Modal Callbacks (PMC)
Phil Hegelberg's [exo-encounter-667](https://gitlab.com/technomancy/exo-encounter-667/) is structured using a modal callback system. Each game state has a mode and each mode has a series of specific callbacks.

If you design your game as a series of states in a very simple state machine, for example *start-screen*, *play* and *end*, with unidirectional progression, you can easily separate the logic for each state into state/mode specific callbacks. As an example, in order to have state dependant rendering that differs between start-screen,play and end you could provide a *draw* callback for each of those states. Similarly if we need state dependent logic and keyboard input we could provide *update* and *keyboard* callbacks. As you iterate you can add and remove callbacks and states/modes as needed with very little friction.


# Emacs Setup
Once you install the latest version of [fennel-mode](https://gitlab.com/technomancy/fennel-mode), you can run
`C-u M-x fennel-repl` followed by `love .` to launch a repl.