Whole story here https://github.com/legend-of-ether/start-here :)
Inspiration
A life long desire to build MMO games and a wild love for everything decentralized.
What it does
The Legend of Ether is a Proof of Concept showcasing how a massively online multiplayer game could be developed today where users trully own their items, their accounts, and is actually fun to play.
How we built it
Using ReactJS for super simple rendering, web3 for communicating with MetaMask and the contract, Travis and Truffle for contact deployment, Socket.IO for live communication between clients and server. Learned the basics of Solidity doing the crypto zombies tutorial.
Challenges we ran into
Realized I was using web3 v1.0.something beta in the backend but that MetaMask injected 0.2.something in the frontend, and that there were some significant API changes. Took a lot of time to set up the basic thing with Socket.IO. Rather poor / outdated docs. Broadcasting contract function calls to Ethereum with Web3 wound up being much harder than expected, the way shown in the docs didn't work. Too many very-hard-to-decipher error messages from Ethereum/Web3.
Accomplishments that we're proud of
An actually (albeit clunky and fragile) working proof of concept! Several people can join at the same time and try it out. Automated deployment pipelines for everything. Frontend is deployed on commit/merge to master to Netlify, API to Heroku and Solidity contract to Ropsten and npmjs.com/package/@legend-of-ether/sol. Yes, you read that right. Changes to the contract are deployed automatically. That and the Solidity tests made our lives so much easier.
What we learned
I'm too old to go three days with almost no sleep (or actually none, sat-sun). Ethereum documentation could improve a bit. But above all... it's relatively easy to get up and going, and a lot of fun. Had never built anything with Ethereum before, and it's amazing. I'm so wanting to buidl.
What's next for The Legend of Ether
I'd like to polish the UI and UX a lot. And add events to the contract, so the frontend can update the item counts in real time. There's a lot of refactor that should be done, so people can easily read the code and fork it. Improve the general design and interface, including the contract. Use images from IPFS (there's actually an ipfsHash field in the contract that we didn't get time to use in the end)
Built With
- ethereum
- javascript
- node.js
- react
- socket.io
- truffle
- web3
Log in or sign up for Devpost to join the conversation.