• Stars
    star
    141
  • Rank 259,971 (Top 6 %)
  • Language
    Clojure
  • License
    Apache License 2.0
  • Created almost 11 years ago
  • Updated about 8 years ago

Reviews

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

Repository Details

Civ simulator

civs

A simulator of civilizations evolution written in Clojure. By simulating migrations, language development, evolution of tribes, chiefdoms and nations, creation and destruction of settlements it builds a realistic world with a complete history. That history can be observed for fun or be used as base for future games.

Status

Build Status

Clojars Project

Currently the simulation can be started with any number of bands (small groups of humans). During the turns they can:

  • evolve into tribe or chiefdoms
  • migrate towards better lands
  • settle new cities
  • develop languages
  • grow or perish
  • develop agriculture
  • change their lifestyle from nomadic to semi-sedentary or sedentary
  • split into separate groups
  • and so on... I am constantly improving the simulation

How to use it: related projects

The project generate civilizations evolving in worlds which can be generated using the world generator lands. To generate languages for the different civilizations it use the names generation library langgen. Lands and langgen are written Python and wrapped in Java using Jython. The wrapper is lands-java-lib.

The history files produced by civs can be explored using civs-browser.

Include it as a dependency

Leiningen

[civs "0.2.2"]

Gradle

compile "civs:civs:0.2.2"

Maven

<dependency>
  <groupId>civs</groupId>
  <artifactId>civs</artifactId>
  <version>0.2.2</version>
</dependency>

Dev guidelines

Use kibit and eastwood to verify code quality.

When runnng eastwood exclude the check for unlimited use of namespaces:

lein eastwood "{:exclude-linters [:unlimited-use]}"

Interesting links about human history and history simulation

world-js an attempt to show you a brief history of humankind via a simulation game.

A Brief History of Humankind a Coursera course on human history

More Repositories

1

LangSandbox

Project to illustrate how to build a programming language
Kotlin
694
star
2

effectivejava

Run queries on your Java code to check if it meets the criteria suggested by the book Effective Java. And some others.
Java
506
star
3

kanvas

A truly hackable editor: simple, lightweight, understandable
Kotlin
144
star
4

analyze-java-code-examples

Some examples of code extracting information from Java source files using JavaParser
Java
99
star
5

turin-programming-language

A static language for the JVM with sensible defaults
Java
96
star
6

kllvm

Kotlin library to work with LLVM
Kotlin
54
star
7

kotlin-wasm-examples

JavaScript
46
star
8

DriveInvoicing

Use Google Drive and the Google Execution API for generating PDF invoices
Python
46
star
9

python-ast

Python parser built using ANTLR
ANTLR
41
star
10

erd-web-server

A web server to generate ER diagrams
JavaScript
35
star
11

langgen

Language generator
Python
28
star
12

antlr-web-example

JavaScript
28
star
13

wasmcompilerkit

Support for manipulation WebAssembly binary files
Kotlin
21
star
14

javadoc-extractor

Java
20
star
15

antlr-kotlin

Support for Kotlin as a target for ANTLR
Kotlin
15
star
16

JavaCC2ANTLR

Java
15
star
17

simple-web-editor

JavaScript
14
star
18

antlr-plus

A complement to ANTLR to get a model from your AST and transform it
ANTLR
14
star
19

antlr4-c3-kotlin

Code completion for ANTLR
Kotlin
11
star
20

civs-browser

A web application to visualize the history files produced by csv
Clojure
10
star
21

ofx-java

Parsing OFX data
Java
9
star
22

redmine-reactive

JavaScript
8
star
23

EmailSchedulingRules

Kotlin
8
star
24

spoon-examples

Java
7
star
25

SketchModel

Recognize sketches and translate them into models
Java
7
star
26

ANTLR_graph

Generate graphs for ANTLR grammars
Kotlin
6
star
27

JavaIncrementalParser

Let's try to build a Java incremental parser
Java
6
star
28

NetModelingFramework

A framework to support meta-modeling and modeling under .NET (Γ  la EMF).
C#
6
star
29

codemirror_plantuml

CodeMirror mode for PlantUML
JavaScript
5
star
30

java-symbol-solver-examples

Java
5
star
31

turin-maven-plugin

A Maven plugin to compile Turin files
Java
4
star
32

procedurality-lands

An engine to generate worlds
Java
4
star
33

antlr-kotlin-runtime

Kotlin runtime for ANTLR
Kotlin
4
star
34

mps-antlr

ANTLR
4
star
35

civs-haskell

Writing a civs simulator in haskell
Haskell
3
star
36

java-formatter

A tool to format Java Code
Shell
3
star
37

MpsByteCode

3
star
38

turin-intellij-plugin

Java
3
star
39

semreview

Text classification taking advantage of the Semantic Web
Java
3
star
40

plantuml-antlr4

Parser for PlantUML
Java
3
star
41

jlibav

Automatically exported from code.google.com/p/jlibav
Java
2
star
42

smlang-example

Kotlin
2
star
43

MpsAccounting

Java
2
star
44

hplatec

Wrapper for platec in Haskell
Haskell
2
star
45

JavaModel

A set of utilities to parse, refactor and generate Java code
Java
2
star
46

namegen-haskell

A name generator written in Haskell
Haskell
2
star
47

codemodels

Ruby
1
star
48

world-explorer

Experiments with OpenGL in Haskell
Haskell
1
star
49

namegen-data

List of names usable as input for name generators
Haskell
1
star
50

parsingjava

Kotlin
1
star
51

worldengine-viewer

OpenGL navigator of a worldengine viewer
GLSL
1
star
52

procedural-content-generation-examples

Python
1
star
53

javamatchers

Java
1
star
54

java-advent-with-spark-and-javaslang

Java
1
star
55

java-cst-model-extractor

Kotlin
1
star
56

pydiffparser

Python lib to parse diff files
Python
1
star
57

hplatetectonics

Plate tectonics simulation in Haskell
Haskell
1
star
58

codemodels-ruby

An EMF metamodel for ruby and a parser to build EMF models of ruby code
Ruby
1
star
59

haskell-diamond-square

Haskell implementation of the Diamond-Square algorithm for heightmap generation
Haskell
1
star
60

rgen_ext

Extensions of general use to RGen
Ruby
1
star
61

QuantDSL

Kotlin
1
star
62

antlr-kotlin-target

Kotlin
1
star