All Projects → MetaFam → TheGame

MetaFam / TheGame

Licence: other
The platform that MetaGame will be played on aka MetaOS - an open source framework for running decentralized societies. Currently featuring MetaSys, MyMeta Profiles, Dashboard, MetaMenu & Quests

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to TheGame

datamodels
A collection of data models used by Ceramic applications
Stars: ✭ 66 (-34%)
Mutual labels:  web3, ceramic
ethereum-scripts
Common useful JavaScript snippets for geth
Stars: ✭ 33 (-67%)
Mutual labels:  web3
oxo-chat-app
基于websocket、json、blockchain的公告、聊天(客户端到客户端加密)客户端。账号无需注册,本地生成!
Stars: ✭ 20 (-80%)
Mutual labels:  web3
eth-self-token-example
在本地网络发布一个名叫 YuTou 的 token
Stars: ✭ 8 (-92%)
Mutual labels:  web3
stock-dex
As a response to the restrictions many have faced due to the $GME short squeeze mania, many have called for the creation of a decentralized stock exchange. This is what we are going to provide
Stars: ✭ 26 (-74%)
Mutual labels:  web3
ether-swr
Ether-SWR is a React hook that fetches Ethereum data. It streamlines the chores to keep the internal state of the Decentralized App (DApp), batches the RPC calls to an Ethereum node and cache the responses
Stars: ✭ 125 (+25%)
Mutual labels:  web3
raven-distribution-framework
Decentralized Computing Backend for Artificial Intelligence, Web3, Metaverse, and Gaming Application
Stars: ✭ 31 (-69%)
Mutual labels:  web3
discord-paginationembed
A pagination utility for MessageEmbed in Discord.JS
Stars: ✭ 93 (-7%)
Mutual labels:  leaderboard
OpenLoginSdk
Pluggable auth infrastructure for Web3 wallets and dapps
Stars: ✭ 108 (+8%)
Mutual labels:  web3
almonit-plugin
ENS+IPFS Firefox plugin by Almonit
Stars: ✭ 17 (-83%)
Mutual labels:  web3
secureum-mind map
This repo is less actively maintained now but I still monitor it for PR's.
Stars: ✭ 422 (+322%)
Mutual labels:  web3
100-days-of-Web3
A list of FREE resources to make Web3 accessible to everyone.
Stars: ✭ 2,801 (+2701%)
Mutual labels:  web3
superhighway84
USENET-inspired, uncensorable, decentralized internet discussion system running on IPFS & OrbitDB
Stars: ✭ 437 (+337%)
Mutual labels:  web3
Solnet
Solana's .NET SDK and integration library.
Stars: ✭ 252 (+152%)
Mutual labels:  web3
cyberevents
The protocol for EVENTs and TICKETs
Stars: ✭ 16 (-84%)
Mutual labels:  web3
uniswap-arbitrage-flash-swap
Uniswap flash swap arbitrage solidity contracts
Stars: ✭ 341 (+241%)
Mutual labels:  web3
web3-node-tutorial
davekiss.com/ethereum-web3-node-tutorial
Stars: ✭ 22 (-78%)
Mutual labels:  web3
lemverse
The first-ever coworking metaverse
Stars: ✭ 91 (-9%)
Mutual labels:  web3
ipfs-blog
IPFS Blog & News
Stars: ✭ 31 (-69%)
Mutual labels:  web3
MSMARCO-MRC-Analysis
Analysis on the MS-MARCO leaderboard regarding the machine reading comprehension task.
Stars: ✭ 20 (-80%)
Mutual labels:  leaderboard

The Game

Monorepo for the MetaGame applications, backend and databases.

We're using the following stack:

Frontend

Backend

Overall

MetaGame

Guides

If you're new to the MetaGame codebase, check out the following guides to learn how to contribute.

Development

Before you start contributing read the Contributing Guide!

Bootstrap

Create your local .env file

cp .env.sample .env

Create a GitHub token at https://github.com/settings/tokens

Set GITHUB_API_TOKEN=your_github_token in .env

Install Packages

yarn

Initial TS Compilation For Monorepo Packages

yarn typecheck

Adding a package to the codebase can be done with Lerna

Run services

Start backend services

yarn docker:start

For M1 Mac Users

Official docker images of Hasura don't work on M1 yet

In hasura/Dockerfile Replace

FROM hasura/graphql-engine:v1.3.3.cli-migrations-v2

with

FROM fedormelexin/graphql-engine-arm64:v1.3.3.cli-migrations-v2
  • Runs docker containers for backend, Hasura Engine, and PostGres database
  • will auto-restart on any changes to packages/backend and packages/utils

If you are running for the first time on an empty database, once the services are running you have two options to populate the database:

  1. Populate the database with the production dataset:
yarn hasura:seed-db
  1. Populate the database with the initial dataset:
curl -X POST http://localhost:4000/actions/migrateSourceCredAccounts?force=true

Rebuild backend services

If your docker containers fail to start due to changes in config, you may need to rebuild the containers. This can take several minutes.

yarn docker:build

Stop backend services

yarn docker:stop
  • Stops all the containers

Troubleshooting

Rebuild and run the containers (in attach mode):

docker-compose up --build

In case non of the above commands are working try purge the docker containers and images you can do this by running (notice: this removes all the containers and images on your computer!):

docker system prune -a

If you're working on the front-end and the build fails with something like the error below, you'll need to create a .env file in packages/web and add NEXT_PUBLIC_GRAPHQL_URL=https://api-staging.metagame.wtf/v1/graphql

[Error [CombinedError]: [Network] request to http://localhost:8080/v1/graphql failed, reason: connect ECONNREFUSED 127.0.0.1:8080] {
  type: 'CombinedError',
  graphQLErrors: [],
  networkError: {
    message: 'request to http://localhost:8080/v1/graphql failed, reason: connect ECONNREFUSED 127.0.0.1:8080',
    type: 'system',
    errno: 'ECONNREFUSED',
    code: 'ECONNREFUSED'
  }
}

** A note about environment variables **

If you need to add an environment variable, it will need to go in several places:

  • your own .env file
  • .env.sample
  • gcp-deploy.yaml
    • For backend variables, add to the deploy-backend step alongside the others
    • For frontend variables, add to the deploy-frontend step. You may also need to add it to the build-frontend step, if it is used in a page that is statically generated by next.js
  • gcp-deploy-frontend.yaml for frontend variables, this should be the same as the frontend actions in the other yaml file

Secrets will need to be added to the TheGame Github secrets; contact a senior builder for assistance.

As an aside, the gcp-deploy-frontend.yaml is the deployment configuration for our test and production frontend instances, while gcp-deploy.yaml is only for PR environments.

Run NextJS Web App dev mode (new)

yarn web:dev

Go to http://localhost:3000

Happy Coding!

Run Discord Bot

yarn discord-bot dev

This will automatically register with Discord and relay chat messages to your local instance! Pretty cool. Testing in a dedicated test Discord server (rather than MetaGame's) is recommended.

Tooling

Start Hasura console

yarn hasura:console

Hasura CLI example

yarn hasura migrate status
yarn hasura migrate squash --name "<feature-name>" --from 1598417879553
yarn hasura migrate apply --version "<squash-migration-version>" --skip-execution

Hasura CLI documentation Hasura Migrations Guide

Generate GraphQL Types

yarn generate

Reload Schema + Generate GraphQL Types (backend needs to be running)

yarn update-schema
yarn generate

Restart with fresh database

yarn docker:clean
yarn docker:start

Run typechecks

yarn typecheck

WIP Branch Push

Upon pushing to the repository a linting check will be initialized validating your code. If you want to push the branch to the repository (maybe for collaboration) while the code isn't completely valid yet you have the option of skipping the linting process:

git push -u origin <branch> [--no-verify]

Please use this only when absolutely necessary!

Debugging with Visual Studio Code

When running the backend stack locally using docker-compose, you can still debug the backend container using VS Code. Just add this configuration to your .vscode/launch.json.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].