Git Product home page Git Product logo

thoth-1's Introduction

THOTH

Thoth is a multishot system builder. It leverages a visual coding style interface to allows game designers and developers to rapidly create powerful natural language systems and prototype games.

Quickstart

You will need yarn or npm and Docker installed, along with Node.js 16 or higher. We use Docker to run a local Postgres database. You can skip the docker and install postgres directly, but you are almost always better off just using Docker. For Linux and MAC users, sleep and concurently commands must be installed in the machine.

Install xvfb, chromium and ffmpeg

First, clone and set up Thoth

git clone https://github.com/TheNexusCity/thoth

Next, install dependencies

yarn install
OR
npm i

You will need to make a few environment variable modifications To keep values privates, create a new file for each .env, called .env.local (these files are safe from the .gitignore)

In order to run the client and server use

yarn run dev

If on Windows run:
yarn run dev:windows

Local Development

We use dotenv-flow for local environment variable management

Go to client folder, and create a new file called .env.local -- copy and .env vars you want to set from .env there If you are developing independently and are not a member of Latitude Games team, set REACT_APP_USE_LATITUDE=false

Go to server folder, and create a new file called .env.local -- copy and .env vars you want to set from .env there If you are developing independently and are not a member of Latitude Games team, set USE_LATITUDE=false

Client Setup

  1. Generate a Personal Access Token on Github which will allow you to install private latitude packages. Make sure you check the write:packages option. (read:packages will suffice as well if you aren't planning on publishing new versions of @latitudegames/thoth-core)
  2. In your ~/.bashrc, append the line export NPM_TOKEN=YourTokenGoesHere, and restart your terminal (you can run source ~/.bashrc to do so)
  3. Clone the repository
  4. Navigate to the project root by running cd thoth
  5. Run yarn install to install project dependencies
  6. Run yarn start to start the @latitudegames/thoth-client app

Core Local Setup

  1. Core the contents of core/.env.default to core/.env and modify the secrets as necessary
  2. Step 2 in Monorepo Development Setup

Monorepo Development

Within the yarn workspace we need to be mindful of which version of the shared package @latitudegames/thoth-core we are including in our local development setup and our deploys to Netlify.

You can either:

  1. Target a published version of @latitudegames/thoth-core in client/package.json
  2. Or actively develop against the current state of the repository. (By ensuring that client/package.json is targetting the same version of @latitudegames/thoth-core that is currently listed in core/package.json)

If you are testing with the Latitude API you can point the latitude api to your local thoth package by making the dependance "@latitudegames/thoth-core": "../thoth/core",

@latitudegames/thoth-core CI

Testing

On Pull Request, GitHub actions will first determine if the diff contains changes in the core directory. If so and there isn't an active thoth-core labelled PR already open - it will proceed with building and deploying a Canary Release to GitHub packages. There can only be one thoth-core labelled PR active at a time, so if one exists additional PR's will be labelled thoth-core-draft by the CI. This thoth-core-draft label can be removed, and the CI re-run to build a canary once the unique thoth-core label position has been vacated.

The latest canary release can be tested and installed locally with yarn add @latitudegames/thoth-core@canary. The Netlify Deploy Preview is configured to sense thoth-core PR's as well and targets the latest canary release, but it runs concurrently to the canary publishing process. You can test a canary release of thoth-core on your branch's Deploy Preview by re-deploying from the Netlify UI for your branch. It is important to note that thoth-core-draft PR's will still have a deploy preview on Netlify, but will be building with the latest canary release of thoth-core which may be unrelated to that PR's changes until it had it's own canary release and been re-deployed.

Releases

When a thoth-core PR has been merged with main, the CI will create a prerelease based on the last commit, publish @latitudegames/thoth-core to GitHub packages and take care of incrementing the patch version in core/package.json to prepare for the next prerelease.

Available Scripts

In the project directory, you can run:

yarn run dev

Runs both server and client.
Open https://localhost:3001 to view it in the browser.

yarn start

Runs @thoth/client in the development mode.
Open http://localhost:3003 to view it in the browser.

yarn build

Builds the @latitudegames/thoth-client app for production to the client/build folder.

yarn build:core

Builds the @thoth/core package for production to the core/build folder.

Apache license information

Good example here for formatting apache license files for reference. https://www.openntf.org/Internal/home.nsf/dx/Applying_Apache_License

thoth-1's People

Contributors

michaelsharpe avatar seang avatar haruhunab1320 avatar alextitonis avatar lalalune avatar pgull avatar mayur-jp avatar nickwalton avatar miteshodaan avatar loveheenavasu avatar parixitas avatar kimenyikevin avatar mitchellgordon95 avatar rakeshghasadiya avatar manwe-777 avatar emmyn5600 avatar aawalton avatar davincidreams avatar mahmed0715 avatar akashkrshukla avatar snyk-bot avatar kinjalravel avatar socketteer avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.