GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - lettier/lambda-lantern: 🧙 ‎‎ A 3D game about functional programming patterns. Uses PureScript Native, C++, and Panda3D.

BranchesTags
Open more actions menu

Latest commit

 

History

1 Commit
1 Commit

Folders and files

NameName
Last commit message
Last commit date
assets
assets
 
 
ffi
ffi
 
 
icon
icon
 
 
logo
logo
 
 
src
src
 
 
.gitignore
.gitignore
 
 
.nvmrc
.nvmrc
 
 
CHANGELOG.md
CHANGELOG.md
 
 
LICENSE
LICENSE
 
 
Makefile
Makefile
 
 
README.md
README.md
 
 
psc-package.json
psc-package.json
 
 

Repository files navigation

Lambda Lantern 😃

Lambda Lantern

What is Lambda Lantern? 🤔

Lambda Lantern

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.

How do I build and run Lambda Lantern? 🔨

Lambda Lantern

# 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 [email protected] [email protected]

# 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

What is the license? 📜

Lambda Lantern

For license information, see LICENSE.

Who wrote Lambda Lantern? ÂŠī¸

Lambda Lantern

(C) 2018 David Lettier
lettier.com

About

🧙 ‎‎ A 3D game about functional programming patterns. Uses PureScript Native, C++, and Panda3D.

medium.com/@lettier/how-to-create-3d-games-with-purescript-and-cpp-faabf8f27fe6

Topics

bindingscppcpp11desktop-appfunctionalfunctional-languagefunctional-programmingfunctional-reactive-programminggamegame-developmentgame-enginegamedevhaskellindiegamenativenative-appspanda3dpurescriptpurescript-nativevideo-game

Resources

Readme
BSD-3-Clause license
Activity

Stars

168 stars

Watchers

7 watching

Forks

9 forks
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.