{"id":18015256,"url":"https://github.com/lettier/lambda-lantern","last_synced_at":"2025-03-26T18:31:10.897Z","repository":{"id":147294144,"uuid":"159983433","full_name":"lettier/lambda-lantern","owner":"lettier","description":"🧙 ‎‎ A 3D game about functional programming patterns. Uses PureScript Native, C++, and Panda3D.","archived":false,"fork":false,"pushed_at":"2019-06-13T05:09:36.000Z","size":13609,"stargazers_count":165,"open_issues_count":3,"forks_count":10,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-22T06:31:37.422Z","etag":null,"topics":["bindings","cpp","cpp11","desktop-app","functional","functional-language","functional-programming","functional-reactive-programming","game","game-development","game-engine","gamedev","haskell","indiegame","native","native-apps","panda3d","purescript","purescript-native","video-game"],"latest_commit_sha":null,"homepage":"https://medium.com/@lettier/how-to-create-3d-games-with-purescript-and-cpp-faabf8f27fe6","language":"PureScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lettier.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-12-01T20:15:36.000Z","updated_at":"2024-12-16T08:18:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"41c2379b-03ff-492b-943e-9762d0512019","html_url":"https://github.com/lettier/lambda-lantern","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lettier%2Flambda-lantern","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lettier%2Flambda-lantern/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lettier%2Flambda-lantern/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lettier%2Flambda-lantern/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lettier","download_url":"https://codeload.github.com/lettier/lambda-lantern/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245712605,"owners_count":20660267,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bindings","cpp","cpp11","desktop-app","functional","functional-language","functional-programming","functional-reactive-programming","game","game-development","game-engine","gamedev","haskell","indiegame","native","native-apps","panda3d","purescript","purescript-native","video-game"],"created_at":"2024-10-30T04:13:25.019Z","updated_at":"2025-03-26T18:31:10.889Z","avatar_url":"https://github.com/lettier.png","language":"PureScript","readme":"# Lambda Lantern :smiley:\n\n![Lambda Lantern](https://i.imgur.com/qsocAZg.png)\n\n# What is Lambda Lantern? :thinking:\n\n![Lambda Lantern](https://i.imgur.com/wQBJNrS.gif)\n\nLambda Lantern is a game made with PureScript, PureScript Native, and Panda3D.\nThe premise of the game involves collecting and using functional programming patterns\nto solve puzzles and ultimately escape a dungeon.\n\nOne of the purposes of Lambda Lantern is to demonstrate binding PureScript to C++.\n\nLambda Lantern originally started as a [GitHub Game Off submission](https://itch.io/jam/game-off-2018/rate/338096).\n\n# How do I build and run Lambda Lantern? :hammer:\n\n![Lambda Lantern](https://i.imgur.com/V6bVIRR.png)\n\n```bash\n# Install Git.\n# Install nvm (https://github.com/creationix/nvm).\n# Install Panda3D (https://www.panda3d.org/download/sdk-1-10-1/).\n# Install Haskell Stack (https://docs.haskellstack.org/en/stable/README/).\n\ncd\n\n# Install PureScript Native (https://github.com/andyarvanitis/purescript-native).\n\ngit clone https://github.com/andyarvanitis/purescript-native.git\ncd purescript-native\ngit checkout aa857adec6aa40edac91bcacfe4c3b7c5f1c3f2d\nstack install\n\ncd\n\n# Update path for PureScript Native compiler pscpp.\n\nexport PATH=\"${PATH}:${HOME}/.local/bin\"\n\n# Download and install the FFI exports.\n\ngit clone https://github.com/lettier/purescript-native-ffi.git\ncd purescript-native-ffi\ngit checkout lambda-lantern\n\ncd\n\ngit clone https://github.com/lettier/lambda-lantern.git\n\n# Note the trailing dot.\ncp -nr purescript-native-ffi/. lambda-lantern/ffi/\n\ncd lambda-lantern\n\n# Install Node.js.\n\nnvm install `cat .nvmrc` \u0026\u0026 nvm use\n\n# Install PureScript and psc-package.\n\nnpm install -g purescript@0.13.0 psc-package-bin-simple@3.0.1\n\n# Install the PureScript dependencies.\npsc-package install\n\n# Build Lambda Lantern.\n# Double check the include and lib paths.\n# You may need additional flags for your platform.\n\nmake \\\n  CXXFLAGS=\" \\\n    -fmax-errors=1 \\\n    -I/usr/include/python \\\n    -I/usr/include/panda3d \\\n    -I/usr/include/freetype2\" \\\n  LDFLAGS=\" \\\n    -L/usr/lib/panda3d \\\n    -lp3framework \\\n    -lpanda \\\n    -lpandafx \\\n    -lpandaexpress \\\n    -lp3dtoolconfig \\\n    -lp3dtool \\\n    -lp3pystub \\\n    -lp3direct \\\n    -pthread \\\n    -lpthread\"\n\n# Run Lambda Lantern.\n\nLAMBDA_LANTERN_ASSETS_PATH=\"./assets\" ./output/bin/lambda-lantern\n```\n\n# What is the license? :scroll:\n\n![Lambda Lantern](https://i.imgur.com/mwTFPkq.png)\n\nFor license information, see [LICENSE](LICENSE).\n\n# Who wrote Lambda Lantern? :copyright:\n\n![Lambda Lantern](https://i.imgur.com/gXtQR61.gif)\n\n(C) 2018 David Lettier  \n[lettier.com](https://lettier.com)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flettier%2Flambda-lantern","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flettier%2Flambda-lantern","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flettier%2Flambda-lantern/lists"}