Lambda Lantern is a game made with PureScript, PureScript Native, and Panda3D. The premise of the game involves collecting and using functional programming patterns to solve puzzles and ultimately escape a dungeon.
One of the purposes of Lambda Lantern is to demonstrate binding PureScript to C++.
Lambda Lantern originally started as a GitHub Game Off submission.
# Install Git.
# Install nvm (https://github.com/creationix/nvm).
# Install Panda3D (https://www.panda3d.org/download/sdk-1-10-1/).
# Install Haskell Stack (https://docs.haskellstack.org/en/stable/README/).
cd
# Install PureScript Native (https://github.com/andyarvanitis/purescript-native).
git clone https://github.com/andyarvanitis/purescript-native.git
cd purescript-native
git checkout aa857adec6aa40edac91bcacfe4c3b7c5f1c3f2d
stack install
cd
# Update path for PureScript Native compiler pscpp.
export PATH="${PATH}:${HOME}/.local/bin"
# Download and install the FFI exports.
git clone https://github.com/lettier/purescript-native-ffi.git
cd purescript-native-ffi
git checkout lambda-lantern
cd
git clone https://github.com/lettier/lambda-lantern.git
# Note the trailing dot.
cp -nr purescript-native-ffi/. lambda-lantern/ffi/
cd lambda-lantern
# Install Node.js.
nvm install `cat .nvmrc` && nvm use
# Install PureScript and psc-package.
npm install -g purescript@0.13.0 psc-package-bin-simple@3.0.1
# Install the PureScript dependencies.
psc-package install
# Build Lambda Lantern.
# Double check the include and lib paths.
# You may need additional flags for your platform.
make \
CXXFLAGS=" \
-fmax-errors=1 \
-I/usr/include/python \
-I/usr/include/panda3d \
-I/usr/include/freetype2" \
LDFLAGS=" \
-L/usr/lib/panda3d \
-lp3framework \
-lpanda \
-lpandafx \
-lpandaexpress \
-lp3dtoolconfig \
-lp3dtool \
-lp3pystub \
-lp3direct \
-pthread \
-lpthread"
# Run Lambda Lantern.
LAMBDA_LANTERN_ASSETS_PATH="./assets" ./output/bin/lambda-lantern
For license information, see LICENSE.
(C) 2018 David Lettier
lettier.com