• Stars
    star
    160
  • Rank 226,869 (Top 5 %)
  • Language
    Clojure
  • Created over 7 years ago
  • Updated about 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

https://mkremins.itch.io/epitaph

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.

More Repositories

1

flense

Edit trees, not text
Clojure
99
star
2

fanciful

Fancy Bukkit message formatting
Java
94
star
3

blackout

Procedurally generated blackout poetry
JavaScript
58
star
4

genderquiz

🌈 FREE ONLINE GENDER QUIZ
Clojure
41
star
5

TracerySharp

C#/Unity port of Tracery (heavily WIP)
C#
24
star
6

winnow

Incremental story sifting DSL
JavaScript
23
star
7

flense-nw

Clojure code editor wrapping Flense
Clojure
22
star
8

felt

Simple story sifting and social simulation engine
JavaScript
17
star
9

blabrecs

Like Scrabble but worse
Python
16
star
10

mkremins.github.io

Personal website and blog
HTML
15
star
11

starfreighter

https://mkremins.itch.io/starfreighter
Clojure
14
star
12

ceci

ClojureScript in ClojureScript
Clojure
14
star
13

drawille-clj

Drawing in terminal with unicode braille characters
Clojure
12
star
14

blaseball-sifter

we are all love blaseball
JavaScript
9
star
15

alembic

Deprecated, won't run on modern Elixir
Elixir
6
star
16

stilts

Tiny interpreted Lisp in ClojureScript
Clojure
5
star
17

xyzzy

Smarter zippers for Clojure
Clojure
5
star
18

clojure-ast-ref

tools.analyzer AST format quickref
3
star
19

riffle

Authoring environment for simulationist interactive fiction
Clojure
3
star
20

wordle-solver

AI player for the word-guessing game Wordle
JavaScript
3
star
21

obscura

Run Datalog queries against Clojure code
Clojure
3
star
22

fs

Filesystem utilities for ClojureScript
Clojure
2
star
23

statistical-sifting

Code and data for "Select the Unexpected: A Statistical Heuristic for Story Sifting" (ICIDS 2022)
JavaScript
2
star
24

tailspin

Clojure
2
star
25

decodn

Code as data (redux)
Clojure
2
star
26

crossclj-search

Clojure
2
star
27

praxish

Partial reconstruction of Versu's Praxis language
JavaScript
2
star
28

timeless

Clojure-ish data structures in JS
JavaScript
1
star
29

gossamer

Better gossip for emergent narrative social sims
JavaScript
1
star
30

EX_BAD_EBOOKS

Twitter bot that generates cryptic error messages
Clojure
1
star
31

blogify

Turn academic papers into blog posts, kinda
JavaScript
1
star
32

nodecraft

node.js Minecraft server
JavaScript
1
star
33

twaudit

Manage who you're following on Twitter
Clojure
1
star
34

stasis

Bare-bones static site generator
JavaScript
1
star
35

game-industry-viz

JavaScript
1
star
36

twitter-oauth

Ring middleware for the Twitter OAuth sign-in flow
Clojure
1
star
37

casual-creators-workshop

HTML
1
star
38

felt-old

Fuzzy social fabric
Clojure
1
star
39

social-sims-forever

a birthday card 🥳
JavaScript
1
star
40

stepwise

Visualize Clojure evaluation step by step
Clojure
1
star
41

cliff

Diffs of Clojure data structures
Clojure
1
star
42

destruct

Clojure binding destructuring impl in Clojure
Clojure
1
star
43

sporum-archive

Archiving the official Spore forum, before it's too late
Jupyter Notebook
1
star
44

affiliation-generator

where's max going next?
HTML
1
star
45

dep-graph

Deprecated, see quile/dependency-cljs
Clojure
1
star
46

sigils

Mysterious sigil generator
Clojure
1
star