Idea and concept
Better described here: Docs
Client app
Rendering of the world and minimap is done by Phaser the HTML5 game framework. Overlaying that is a simple layer of components and services, written with Vanilla JS and CSS.
Subgraph
All pixels and their bids are indexed using The Graph protocol.
Dev (run locally)
Make sure to have a recent version of Node.js installed, including global packages truffle
and ganache-cli
. Also make sure to install Docker and that it's running.
1.) Install project dependencies
npm install
2.) Start Ganache on 0.0.0.0 so it's accessible from within Docker.
ganache-cli -h 0.0.0.0
3.) Run local Graph Node (details)
In another terminal:
git clone https://github.com/graphprotocol/graph-node/
Move to Docker directory and start a local Graph Node
cd graph-node/docker
docker-compose up
4.) Build and migrate smart contracts
Migrate smart contracts to local Ganache.
In app root directory:
truffle migrate
This should build, deploy the contracts and generate dapp-config.json.
5.) Create and deploy local subgraph (details)
Make sure you have Graph CLI installed.
In app subgraph directory:
npm run create-local
npm run deploy-local
6.) Run local development server
In app root directory:
npm run dev
If all goes well, the client application should be available at http://localhost:9000