nerdhaus / eldrich

Custom code and config for eldrich.host
11 stars 2 forks source link

About This Project

Eldrich Host is a public repository of information about Eclipse Phase, PostHuman Studios' excellent (and Creative-Commons licensed) tabletop roleplaying game. It mashes up classic AI Apocalypse science fiction with Lovecraftian horror and trippy Transhumanism. Players generally assume the roles of secret agents (or terrorists, depending on who you ask) tasked with protecting the remnants of humanity from assorted existential horrors.

Eldrich Host is intended to be a one-stop shop for canon and homebrew game data: NPC and PC charsheets; locations and factions in the game; gear, skill, and creature data; etc. It isn't designed to be a character generation tool or a rule reference to Eclipse Phase. Rather, it's meant to be a streamlined, mobile-friendly place for GMs and players to keep track of the million or so moving parts that make up the average game session. In particular, Eldrich Host makes a best effort to pre-calculate the assorted bonuses that different skills, traits, and types of equipped gear give to the different actions that players can perform.

Current Features

Other features are coming, but that's what's here for version 1.0.

The Tech

Eldrich Host is built on Drupal 8, a fairly flexible open-source CMS with rich content modeling tools. It gave us enough flexibility to implement Eclipse Phase's extremely tangly gear information — in which a player's body, the scope on their rifle, and a simulated copy of themselves running in a thumbdrive in their pocket are all technically "gear".

This project includes a Vagrantfile that can bootstrap a development server and configure an (empty) copy of the site, but real dev work requires getting a scrubbed snapshot of the site's live database. The custom Drupal modules built for Eldrich Host consist of:

Site specific junk

Custom data types

Presentation

Veil, Eldrich Host's custom front-end theme, is based on Bootstrap 3.2 nd handles most of the heavy lifting of making things look nice. It makes heavy use of Twig template inheritance to handle the special needs of various gear types, and completely bypasses normal FieldAPI rendering for a lot of the tangly Eclise Phase data. Skills, Weapons, and Armor in particular are never output as fields directly — they're used as the starting point for dynamically calculating stat values that include all of a character's current bonuses and so on.

Veil has a lot of hard dependencies on Eldrich and EP Game Tools — it makes plenty of assumptions about those modules and their support classes being there, so it can't really be untangled.

Where do you fit in?