GithubHelp home page GithubHelp logo

prbarcelon / epitaph Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mkremins/epitaph

0.0 1.0 0.0 743 KB

https://mkremins.itch.io/epitaph

Home Page: https://mkremins.github.io/epitaph

JavaScript 0.24% Clojure 99.76%

epitaph's Introduction

Epitaph

Epitaph is an idle game about existential risks and the death of civilizations. It was originally made for the Fermi Paradox Jam. You can play it in your browser, or check it out on itch.io.

From an implementation perspective, Epitaph is interesting mainly because it's a browser game written in ClojureScript that makes extensive use of procedurally generated text to tell an interactive story. It also uses Om (a ClojureScript wrapper around React) for rendering.

Project structure

  • deps/: Exactly what it says on the tin: plain old JavaScript libraries that the game pulls in as dependencies. Right now the only thing in here is Tone.js, which Epitaph uses exclusively to make little pinging sounds that notify the player when things are happening.
  • docs/: The HTML page (index.html) in which the game actually runs, as well as the fonts and compiled JavaScript required by said page.
  • externs/: Closure Compiler externs for each of the plain JS dependencies in deps/. Only covers the parts of each library that the game actually uses.
  • src/epitaph/: The main ClojureScript codebase for the game.
    • app.cljs: The main entry point that ties everything together. Handles rendering and manages the game state.
    • civs.cljs: Functions for procedurally generating alien civilizations, and for updating them on every tick.
    • events.cljs: A table of all the random events that can happen in the game.
    • language.cljs: Functions for procedurally generating alien languages. Heavily inspired by Martin O'Leary's blog post on generating naming languages, albeit with some substantial tweaks and deviations.
    • rand.cljs: Generic utilities for working with randomness and generator functions.
    • techs.cljs: A table of all the technologies that can be discovered in the game.
  • project.clj: The Leiningen project file used to build the game.

epitaph's People

Contributors

mkremins avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.