Game Play The game rules are a combination of the map-based strategy game Risk, and the ancient game Go. It is designed to never end, and as a result is impossible to win conclusively. The player is designated by a ERC721 token called the Avatar. Any wallet containing the corresponding avatar token inherits control of the resources belonging to that avatar. There are two types of tiles, land and water. In gameplay, their only difference is the ability to mine. There is also a fungible token used in gameplay called AUR. This token is an abstraction of resources and can be mined at a designated rate per block passed, per tile of land. AUR can be held in a map/planet contract, on a tile, or in a wallet. A transaction must be sent to mine your AUR. The resulting AUR will be minted and added to the balance of the avatar in the given map.
How It's Made
The client was created with Create-React-App and uses Redux-Saga State management. Important libraries in use are React-Bootstrap, Metamask-Provider, WalletConect, and Redux-Saga. The deployment and hosting for production assets are hosted with Fleek Hosting continuous deployments happening on merges to the master branch. The client features a decentralized chat built with Textile services that's available within the Planet game maps. We are also using Infura as our core provider, with the exception of signed transactions with Metamask. All requests to the networks happen with Infura, including those signed with WalletConnect. Aurbit is a strategy game with the following pages: /auth: The Auth page is a basic landing container to get the wallets setup. /avatar: The Avatar Page allows the user to create a new Avatar. /planet: The Planet Page has the game map, control panel, and chat components. All state management happens with Redux Sagas and we use generator functions to handle state transition logic. Truffle It was our hope to use Buidler for this project, but we found Truffle to be a more mature and easy-to-use library to quickly get working with contract deployments. We are using Ganache-Cli and Truffle to compile, deploy, and migrate for development and mainnet/testnet builds.