CommaSword / Daedalus

Empty Epsilon Maintenance, Repair and Operations extension
GNU Affero General Public License v3.0
4 stars 2 forks source link

Unable to launch the project #26

Open tdelc opened 6 years ago

tdelc commented 6 years ago

I cloned in debian your project to test it with Empty Epsilon. I installed nodejs and npm. The first time I tested node main.js, the program couldn't find source-map-support package, so I added it.

Now I have the following error : Cannot find module './dist/src/index' with some locations of where the error is problematic.

Could you help me ? I really want to see what you have done to enhance engeneer station.

amir-arad commented 6 years ago

Hi and sorry for the mess!

how to build

We use yarn to manage this project's lifecycle. Install yarn by running npm i -g yarn and then follow the instructions in the developer documentation

what to expect

Daedalus hosts the latest iteration of software written to support a sci-fi LARP we've been working on for a long while now. Its first test-run is due in two weeks, so the current state of the project is a mess (documentation, test coverage and stability etc.) as we sprint towards the minimum viable product that is game-ready. After the test run, I plan to separately productize the different features while adding features for the next run. there's a LOT to do in that area: some code can migrate to LUA scripts, configuration can be automated, concerns separated, etc.

the generic API

the big reusable thing here is that Daedalus exposes an OSC network API to the empty-epsilon server, both input and output. It's open-ended, so you can easily use standard OSC endpoints to extend the game's UI.

the engineering changes

We replace the existing repair mechanic with a custom CLI screen (that also handles other LARP concerns) with one concurrent repair at a time, and introduced switchboards - engineering sub-systems that supply power to the Empty Epsilon systems (a.k.a bridge systems) in a many-to-many dependency matrix (each switchboard supplies power to more than one system and each system consumes power from more than one switchboard). when the engineer overpowers a bridge system, all switchboards supplying power to that system start accumulating load, and at some point (random and different for each switchboard) will become overloaded.

Overloaded switches produce extra heat to all their supported system until reset. resetting a switchboard takes precious time, and during that time there are severe penalties to the bridge systems supported by the power switch (very low cap on power and repair speed) so it becomes a major tactical concern.

In our LARP the switchboards are implemented by plastic electricity boards (based on arduino) located in various locations around the ship. however any OSC compatible network endpoint will do (we're using open-stage-control for the backoffice and the test client and it's great)

amir-arad commented 6 years ago

(I've updated the readme)

tdelc commented 6 years ago

Thanks for all the explanations !

I suceeded to launch the server and the Fugazi web client. All work and the engeneer station doesn't work anymore, so It works. Now I have to launch the open stage control interface to try to control it. Does the file you use for testing is in github ? Is it game-monitor.json ? Do I have to configure OSC specifictly for EE ?

amir-arad commented 6 years ago

the "repair" command is still not implemented and the fugazi console needs a bit of love before it's space-worthy.

I generate the open stage control switchboards configuration by running node dashboards/make.js. it will create dashboards/panels.json (yes, naming, WIP). I then run open-stage-control --osc-port 57122 --send 127.0.0.1:57121 --read--only --load ./dashboards/panels.json to open it.

amir-arad commented 6 years ago

but the engineer station should work IMO....

amir-arad commented 6 years ago

@tdelc hi :) I've extracted

from this project, so it is easier to benefit from them separately.