Skip to content

lvn/god-complex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

God Complex

However, we will need to increase the modularity of our systems by encapsulating, or “hiding,” parts of the earth.

--- King James Programming

In the most ambitious vision, God Complex is a toolkit for programmatic worldbuilding -- this is not just the procedural generation of things like terrain and room layouts, but also higher-level concepts such as civilizations, languages, and economies.

It currently generates worlds like this:

Crappy pseudo-DF map

Quickstart

godcomplex uses SQLite3 as a store for non-map persistent state. There is an SQLite database located at the root (worldgen.db) that contains the data used for testing.

An extremely basic usage example is as follows.

from godcomplex import World
import sqlite3

db = sqlite3.connect('file:worldgen.db?mode=ro', uri=True)
world = World(db=db)
world.init_all()

world.step()
print(world.history.events)

Run the basic_test.py script to get a more in-depth feel for how it works.

Codebase guide

This section outlines the various components and subprojects in the repo.

  • godcomplex is the core library with the world generation logic, exposed through the World class.
  • sabbath is an experimental server that provies a RESTful (and eventually, WebSocket-based) API for world data.
  • yggdrasil is the binary data format for persisting world map layer data.

About

A toolkit for programmatic worldbuilding

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages